]> Cypherpunks.ru repositories - nncp.git/blobdiff - doc/cmds.texi
AEAD encryption mode and new encrypted packet format
[nncp.git] / doc / cmds.texi
index ce0855a972db3c43334c86f44e7422a0f864de53..9628fa0b2f2a7a41d62afce76acc35f4c30ee076 100644 (file)
@@ -17,12 +17,13 @@ Nearly all commands have the following common options:
     will be 4 KiB (containing file itself and some junk).
 @item -nice
     Set desired outgoing packet @ref{Niceness, niceness level}.
-    1-255 values are allowed.
-@item -node
-    Process only single specified node.
+@item -replynice
+    Set desired reply packet @ref{Niceness, niceness level}. Only freq
+    and exec packets look at that niceness level.
 @item -via
     Override @ref{CfgVia, via} configuration option for destination node.
     Specified nodes must be separated with comma: @verb{|NODE1,NODE2|}.
+    With @verb{|-via -|} you can disable relaying at all.
 @item -spool
     Override path to spool directory. May be specified by
     @env{NNCPSPOOL} environment variable.
@@ -82,7 +83,7 @@ spool if everything is good. So it is advisable to recheck your streams:
 % dd if=/dev/cd0 bs=2048 | nncp-bundle -rx -delete
 @end verbatim
 
-@option{-dryrun} option prevents any writing to the spool. This is
+@option{-dryrun} option prevents any writes to the spool. This is
 useful when you need to see what packets will pass by and possibly check
 their integrity.
 
@@ -90,8 +91,13 @@ their integrity.
 @section nncp-call
 
 @verbatim
-% nncp-call [options] [-onlinedeadline INT] [-maxonlinetime INT] [-rx|-tx]
-                      NODE[:ADDR] [FORCEADDR]
+% nncp-call [options]
+    [-onlinedeadline INT]
+    [-maxonlinetime INT]
+    [-rx|-tx]
+    [-rxrate INT]
+    [-txrate INT]
+    NODE[:ADDR] [FORCEADDR]
 @end verbatim
 
 Call (connect to) specified @option{NODE} and run @ref{Sync,
@@ -106,7 +112,8 @@ transmission is performed. If @option{-tx} option is specified, then
 only outbound transmission is performed. @option{-onlinedeadline}
 overrides @ref{CfgOnlineDeadline, @emph{onlinedeadline}}.
 @option{-maxonlinetime} overrides @ref{CfgMaxOnlineTime,
-@emph{maxonlinetime}}.
+@emph{maxonlinetime}}. @option{-rxrate}/@option{-txrate} override
+@ref{CfgXxRate, rxrate/txrate}.
 
 @node nncp-caller
 @section nncp-caller
@@ -221,7 +228,7 @@ not used often in practice, if ever.
 @section nncp-daemon
 
 @verbatim
-% nncp-daemon [options] [-maxconn INT] [-bind ADDR]
+% nncp-daemon [options] [-maxconn INT] [-bind ADDR] [-inetd]
 @end verbatim
 
 Start listening TCP daemon, wait for incoming connections and run
@@ -233,6 +240,46 @@ time to time.
 can handle. @option{-bind} option specifies @option{addr:port} it must
 bind to and listen.
 
+It could be run as @command{inetd} service, by specifying
+@option{-inetd} option. Example inetd-entry:
+
+@verbatim
+uucp   stream  tcp6    nowait  nncpuser        /usr/local/bin/nncp-daemon      nncp-daemon -inetd
+@end verbatim
+
+@node nncp-exec
+@section nncp-exec
+
+@verbatim
+% nncp-exec [options] NODE HANDLE [ARG0 ARG1 ...]
+@end verbatim
+
+Send execution command to @option{NODE} for specified @option{HANDLE}.
+Body is read from stdin and compressed. After receiving, remote side
+will execute specified @ref{CfgExec, handle} command with @option{ARG*}
+appended and decompressed body fed to command's stdin.
+
+For example, if remote side has following configuration file for your
+node:
+
+@verbatim
+exec:
+  sendmail: [/usr/sbin/sendmail, "-t"]
+  appender: ["/bin/sh", "-c", "cat >> /append"]
+@end verbatim
+
+then executing @verb{|echo My message | nncp-exec -replynice 123 REMOTE
+sendmail root@localhost|} will lead to executing of:
+
+@verbatim
+echo My message |
+    NNCP_SELF=REMOTE \
+    NNCP_SENDER=OurNodeId \
+    NNCP_NICE=123 \
+    /usr/sbin/sendmail -t root@localhost
+@end verbatim
+
+
 @node nncp-file
 @section nncp-file
 
@@ -252,12 +299,13 @@ This command queues file in @ref{Spool, spool} directory immediately
 If @file{SRC} equals to @file{-}, then create an encrypted temporary
 file and copy everything taken from stdin to it and use for outbound
 packet creation. Pay attention that if you want to send 1 GiB of data
-taken from stdin, then you have to have 2 GiB of disk space for that
-temporary file and resulting encrypted packet. You can control where
-temporary file will be stored using @env{TMPDIR} environment variable.
-Encryption is performed with @url{https://cr.yp.to/chacha.html,
-ChaCha20} algorithm. Data is splitted on 128 KiB blocks. Each block is
-encrypted with increasing nonce counter.
+taken from stdin, then you have to have more than 2 GiB of disk space
+for that temporary file and resulting encrypted packet. You can control
+where temporary file will be stored using @env{TMPDIR} environment
+variable. Encryption is performed in AEAD mode with
+@url{https://cr.yp.to/chacha.html, ChaCha20}-@url{https://en.wikipedia.org/wiki/Poly1305, Poly1305}
+algorithms. Data is splitted on 128 KiB blocks. Each block is encrypted
+with increasing nonce counter.
 
 If @option{-chunked} is specified, then source file will be split
 @ref{Chunked, on chunks}. @option{INT} is the desired chunk size in
@@ -295,25 +343,13 @@ queuing.
 
 Parse @ref{Log, log} file and print out its records in human-readable form.
 
-@node nncp-mail
-@section nncp-mail
-
-@verbatim
-% nncp-mail [options] NODE USER ...
-@end verbatim
-
-Send mail, that is read from stdin, to @option{NODE} and specified
-@option{USER}s. Mail message will be compressed. After receiving, remote
-side will execute specified @ref{CfgSendmail, sendmail} command with
-@option{USER}s appended as a command line argument and feed decompressed
-mail body to that command's stdin.
-
 @node nncp-pkt
 @section nncp-pkt
 
 @verbatim
 % nncp-pkt [options] < pkt
 % nncp-pkt [options] [-decompress] -dump < pkt > payload
+% nncp-pkt -overheads
 @end verbatim
 
 Low level packet parser. Normally it should not be used, but can help in
@@ -346,6 +382,8 @@ And with the @option{-dump} option it will give you the actual payload
 tries to zlib-decompress the data from plain packet (useful for mail
 packets).
 
+@option{-overheads} options print encrypted, plain and size header overheads.
+
 @node nncp-reass
 @section nncp-reass
 
@@ -439,19 +477,27 @@ ones. If @option{-seen} option is specified, then delete only
 @section nncp-stat
 
 @verbatim
-% nncp-stat [options]
+% nncp-stat [options] [-node NODE]
 @end verbatim
 
 Print current @ref{Spool, spool} statistics about unsent and unprocessed
-packets. For each node and each niceness level there will be printed how
-many packets (with the total size) are in inbound (Rx) and outbound (Tx)
-queues.
+packets. For each node (unless @option{-node} specified) and each
+niceness level there will be printed how many packets (with the total
+size) are in inbound (Rx) and outbound (Tx) queues.
 
 @node nncp-toss
 @section nncp-toss
 
 @verbatim
-% nncp-toss [options] [-dryrun] [-cycle INT] [-seen]
+% nncp-toss [options]
+    [-node NODE]
+    [-dryrun]
+    [-cycle INT]
+    [-seen]
+    [-nofile]
+    [-nofreq]
+    [-noexec]
+    [-notrns]
 @end verbatim
 
 Perform "tossing" operation on all inbound packets. This is the tool
@@ -467,15 +513,19 @@ tells what it will do.
 running this command as a daemon.
 
 @option{-seen} option creates empty @file{XXX.seen} file after
-successful tossing of @file{XXX} packet. @ref{nncp-xfer} and
-@ref{nncp-bundle} commands skip inbound packets that has been already
-seen, processed and tossed. This is helpful to defeat duplicates.
+successful tossing of @file{XXX} packet. @ref{nncp-xfer},
+@ref{nncp-bundle}, @ref{nncp-daemon} and @ref{nncp-call} commands skip
+inbound packets that has been already seen, processed and tossed. This
+is helpful to prevent duplicates.
+
+@option{-nofile}, @option{-nofreq}, @option{-noexec}, @option{-notrns}
+options allow to disable any kind of packet types processing.
 
 @node nncp-xfer
 @section nncp-xfer
 
 @verbatim
-% nncp-xfer [options] [-mkdir] [-keep] [-rx|-tx] DIR
+% nncp-xfer [options] [-node NODE] [-mkdir] [-keep] [-rx|-tx] DIR
 @end verbatim
 
 Search for directory in @file{DIR} containing inbound packets for us and