]> Cypherpunks.ru repositories - nncp.git/blobdiff - doc/cfg.texi
stdin/stdout formatting
[nncp.git] / doc / cfg.texi
index c16c2b1c025c2d4f56d7bf2065873d96101fc762..3e0b882b0582f7c16792b9ed057e18d1b4c46d07 100644 (file)
@@ -8,6 +8,7 @@ Example @url{https://hjson.org/, Hjson} configuration file:
   spool: /var/spool/nncp
   log: /var/spool/nncp/log
   umask: "022"
+  noprogress: true
 
   notify: {
     file: {
@@ -18,6 +19,16 @@ Example @url{https://hjson.org/, Hjson} configuration file:
       from: nncp@localhost
       to: user+freq@example.com
     }
+    exec: {
+      "*.warcer": {
+        from: nncp@localhost
+        to: user+warcer@example.com
+      }
+      "eve.warcer": {
+        from: nncp@localhost
+        to: user+warcer-overriden@example.com
+      }
+    }
   }
 
   self: {
@@ -88,14 +99,24 @@ Non-empty optional @strong{umask} will force all invoked commands to
 override their umask to specified octal mask. Useful for using with
 @ref{Shared spool, shared spool directories}.
 
+Enabled @strong{noprogress} option disabled progress showing for many
+commands by default. You can always force its showing with
+@option{-progress} command line option anyway.
+
 @anchor{CfgNotify}
 @strong{notify} section contains notification settings for successfully
-tossed file and freq packets. Corresponding @strong{from} and
+tossed file, freq and exec packets. Corresponding @strong{from} and
 @strong{to} fields will be substituted in notification email message.
-@emph{neigh/self/exec/sendmail} will be used as a local mailer. You can
-omit either of those two @emph{from}/@emph{to} sections to omit
+@code{neigh.self.exec.sendmail} will be used as a local mailer. You can
+omit either of those two @code{from}/@code{to} sections to omit
 corresponding notifications, or the whole section at once.
 
+@code{notify.exec} section is a mapping of exec handles and
+corresponding @code{from}/@code{to} sections. Each handle has either
+@code{NODE.HANDLE} or @code{*.HANDLE} syntax. You can override
+notification options for some node with the first type of name.
+Handle command's output will be included in notification messages.
+
 @strong{self} section contains our node's private keypairs.
 @strong{exch*} and @strong{sign*} are used during @ref{Encrypted,
 encrypted} packet creation. @strong{noise*} are used during @ref{Sync,
@@ -106,7 +127,7 @@ always has @strong{self} neighbour that is copy of our node's public
 data (public keys). It is useful for copy-paste sharing with your
 friends. Each section's key is a human-readable name of the neighbour.
 
-Except for @emph{id}, @emph{exchpub} and @emph{signpub} each neighbour
+Except for @code{id}, @code{exchpub} and @code{signpub} each neighbour
 node has the following fields:
 
 @table @strong
@@ -121,18 +142,18 @@ Dictionary consisting of handles and corresponding command line
 arguments. In example above there are @command{sendmail} handles,
 @command{warcer}, @command{wgeter} and @command{flag} one. Remote node
 can queue some handle execution with providing additional command line
-arguments and the body fed to command's stdin.
+arguments and the body fed to command's @code{stdin}.
 
 @verb{|sendmail: ["/usr/sbin/sendmail", "-t"]|} handle, when called by
 @verb{|echo hello world | nncp-exec OURNODE sendmail ARG0 ARG1 ARG2|}
 command, will execute:
 
-@verbatim
+@example
 NNCP_SELF=OURNODE \
 NNCP_SENDER=REMOTE \
 NNCP_NICE=64 \
 /usr/sbin/sendmail -t ARG0 ARG1 ARG2
-@end verbatim
+@end example
 
 feeding @verb{|hello world\n|} to that started @command{sendmail}
 process.
@@ -158,9 +179,9 @@ transmission.
 @anchor{CfgVia}
 @item via
 An array of node identifiers that will be used as a relay to that node.
-For example @verb{|[foo,bar]|} means that packet can reach current node
-by transitioning through @emph{foo} and then @emph{bar} nodes. May be
-omitted if direct connection exists and no relaying is required.
+For example @verb{|["foo","bar"]|} means that packet can reach current
+node by transitioning through @code{foo} and then @code{bar} nodes. May
+be omitted if direct connection exists and no relaying is required.
 
 @anchor{CfgAddrs}
 @item addrs
@@ -169,9 +190,9 @@ human-readable name of the address. For direct TCP connections use
 @verb{|host:port|} format, pointing to @ref{nncp-daemon}'s listening
 instance. Also you can pipe connection through the external command
 using @verb{#|some command#} format. @code{/bin/sh -c "some command"}
-will start and its stdin/stdout used as a connection. May be omitted if
-either no direct connection exists, or @ref{nncp-call} is used with
-forced address specifying.
+will start and its @code{stdin}/@code{stdout} used as a connection. May
+be omitted if either no direct connection exists, or @ref{nncp-call} is
+used with forced address specifying.
 
 @anchor{CfgXxRate}
 @item rxrate/txrate
@@ -182,18 +203,18 @@ omitted at all -- no rate limits.
 
 @anchor{CfgOnlineDeadline}
 @item onlinedeadline
-Online connection deadline of node inactivity in seconds. It is the time
-connection considered dead after not receiving/sending any packets and
-node must disconnect. By default it is set to 10 seconds -- that means
-disconnecting after 10 seconds when no packets received and transmitted.
-This can be set to rather high values to keep connection alive (to
-reduce handshake overhead and delays), wait for appearing packets ready
-to send and notifying remote side about their appearance.
+Online connection deadline of nodes inactivity in seconds. It is the
+time connection considered dead after not receiving/sending any packets
+(except for PINGs) and connection must be terminated. By default it is
+set to 10 seconds. This can be set to rather high values to keep
+connection alive (to reduce handshake overhead and delays), wait for
+appearing packets ready to send and notifying remote side about their
+appearance.
 
 @anchor{CfgMaxOnlineTime}
 @item maxonlinetime
-If greater than zero, then it is maximal amount of time connect could be
-alive. Forcefully disconnect if it is exceeded.
+If greater than zero, then it is maximal time of single connection.
+Forcefully disconnect if it is exceeded.
 
 @anchor{CfgCalls}
 @item calls
@@ -201,22 +222,3 @@ List of @ref{Call, call configuration}s. Can be omitted if
 @ref{nncp-caller} won't be used to call that node.
 
 @end table
-
-@menu
-* Shared spool directory: Shared spool.
-@end menu
-
-@node Shared spool
-@section Shared spool directory
-
-If you want to share single spool directory with multiple grouped Unix
-users, then you can @command{setgid} it and assure that umask is group
-friendly. For convenience you can set @option{umask} globally for
-invoked NNCP commands in the configuration file. For example:
-
-@verbatim
-$ chgrp nncp /usr/local/etc/nncp.hjson /var/spool/nncp
-$ chmod g+r /usr/local/etc/nncp.hjson
-$ chmod g+rwxs /var/spool/nncp
-$ echo 'umask: "007"' >> /usr/local/etc/nncp.hjson
-@end verbatim