FreeBSD Manual Pages
net_discover(3) Arcan Lua API net_discover(3) NAME net_discover - Probe or monitor for compatible hosts or clients on the net- work SYNOPSIS nil net_discover( function:callback ) net_discover( int:mode, int:trust, function:callback ) net_discover( int:mode, int:trust, string:description, function:han- dler(source, status) ) DESCRIPTION this function is used to find other sources or sinks on the network which implement the a12 protocol. Each time a connection is discovered, the call- back function is invoked with whatever that could be discerned. The short argument form uses whatever implementation defined default detec- tion mechanism that is available, with the TRUST_KNOWN level of trust. For more refined control, the mode argument can be set to one of the follow- ing: DISCOVER_PASSIVE , DISCOVER_SWEEP , DISCOVER_BROADCAST , DISCOVER_DI- RECTORY or DISCOVER_TEST . DISCOVER_PASSIVE silently listens on available network interfaces (or ones specified through the description argument) for broadcasting clients. DISCOVER_BROADCAST periodically announces its presence in a privacy pre- serving way, assuming that the trust model is set to TRUST_KNOWN . DISCOVER_SWEEP cycles through the set of trusted keys, looking for the first possible host for each keyset. The description arguments accepts a delay=n:period=m form where the delay is a number in seconds between each attempted keyset, and period delay in seconds between sweeps. DISCOVER_DIRECTORY uses a directory server to discover which devices are currently available. This mode can punch through NAT ed networks and is suitable for wide-area network use where you have access to a remote trusted server. The description argument is used to reference the direc- tory server to open. DISCOVER_TEST generates fake discovery/lost events, both valid and in- valid, at increasingly longer intervals in order to provide testing and au- tomation without causing any network traffic. the trust argment changes how the discover modes based on a specified trust model, which can be one of the following: TRUST_KNOWN , TRUST_PER- MIT_UNKNOWN , TRUST_TRANSITIVE . TRUST_KNOWN will only forward and reply to messages that comes from previ- ously known and trusted sources. Known sources are managed through an ex- ternal keystore, see the arcan-net tool. TRUST_PERMIT_UNKNOWN (for broadcast, passive and directory) allows inter- active verification whether a certain connection should be trusted or not. TRUST_TRANSITIVE (for directory) allows viewing and temporary or permanen- tily trusting connections that comes from an intermediary dictionary server. The callback handler provides the source vid as well as a status table. This behaves similar to other launch_target style callbacks. The set of useful events is reduced to kind=terminated, and kind=state as the ones of relevance. NOTES 1 Due to the asynchronous nature of discovery requests, it is possible to receive lost=true without first having discovered the name in question. 2 3 specifying an invalid value for trust or mode is a terminal state transition. EXAMPLE function net_discover0() net_discover( function(source, status) if status.kind == "terminated" then delete_image(source) return shutdown() elseif status.kind ~= "state" then return end for k,v in pairs(status) do print(k, v) end end ) end SEE ALSO: network August 2026 net_discover(3)
NAME | SYNOPSIS | DESCRIPTION | NOTES | EXAMPLE | SEE ALSO:
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=net_discover&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>
