@node nncp-daemon
+@pindex nncp-daemon
@section nncp-daemon
@example
$ nncp-daemon [options]
- [-maxconn INT] [-bind ADDR] [-inetd]
+ [-maxconn INT] [-bind ADDR] [-ucspi]
[-autotoss*] [-nock] [-mcd-once]
+ [-yggdrasil yggdrasils://PRV[:PORT]?[bind=BIND][&pub=PUB][&peer=PEER][&mcast=REGEX[:PORT]]]
@end example
Start listening TCP daemon, wait for incoming connections and run
@option{-maxconn} option specifies how many simultaneous clients daemon
can handle. @option{-bind} option specifies @option{addr:port} it must
-bind to and listen.
+bind to and listen (empty string means no listening on TCP port).
-It could be run as @command{inetd} service, by specifying
-@option{-inetd} option. Pay attention that because it uses
-@code{stdin}/@code{stdout}, it can not effectively work with IO timeouts
-and connection closing can propagate up to 5 minutes in practice.
-Example inetd-entry:
+It could be run as @url{http://cr.yp.to/ucspi-tcp.html, UCSPI-TCP}
+service, by specifying @option{-ucspi} option. Pay attention that
+because it uses @code{stdin}/@code{stdout}, it can not effectively work
+with IO timeouts and connection closing can propagate up to 5 minutes in
+practice. Example startup command:
@verbatim
-uucp stream tcp6 nowait nncpuser /usr/local/bin/nncp-daemon nncp-daemon -quiet -inetd
+tcpserver -DHR -l 0 ::0 uucp nncp-daemon -quiet -ucspi
+@end verbatim
+
+Also it is some kind of backward compatible with @command{inetd}
+interface, just lacking knowledge or remote's address:
+
+@verbatim
+uucp stream tcp6 nowait nncpuser /usr/local/bin/nncp-daemon nncp-daemon -quiet -ucspi
@end verbatim
@option{-autotoss} option runs tosser on node's spool every second
@option{-mcd-once} option sends @ref{MCD} announcements once and quits.
Could be useful with inetd-based setup, where daemons are not running.
+
+With @option{-yggdrasil} option daemon also acts as a @ref{Yggdrasil}
+listener daemon.