]> Cypherpunks.ru repositories - nncp.git/commitdiff
Add various documentation indices
authorSergey Matveev <stargrave@stargrave.org>
Sun, 27 Feb 2022 17:22:28 +0000 (20:22 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Wed, 2 Mar 2022 08:10:59 +0000 (11:10 +0300)
80 files changed:
doc/about.texi
doc/admin.texi
doc/building.texi
doc/bundles.texi
doc/call.texi
doc/cfg/areas.texi
doc/cfg/dir.texi
doc/cfg/general.texi
doc/cfg/index.texi
doc/cfg/neigh.texi
doc/cfg/notify.texi
doc/cfg/self.texi
doc/chunked.texi
doc/cmd/index.texi
doc/cmd/nncp-bundle.texi
doc/cmd/nncp-call.texi
doc/cmd/nncp-caller.texi
doc/cmd/nncp-cfgdir.texi
doc/cmd/nncp-cfgenc.texi
doc/cmd/nncp-cfgmin.texi
doc/cmd/nncp-cfgnew.texi
doc/cmd/nncp-check.texi
doc/cmd/nncp-cronexpr.texi
doc/cmd/nncp-daemon.texi
doc/cmd/nncp-exec.texi
doc/cmd/nncp-file.texi
doc/cmd/nncp-freq.texi
doc/cmd/nncp-hash.texi
doc/cmd/nncp-log.texi
doc/cmd/nncp-pkt.texi
doc/cmd/nncp-reass.texi
doc/cmd/nncp-rm.texi
doc/cmd/nncp-stat.texi
doc/cmd/nncp-toss.texi
doc/cmd/nncp-trns.texi
doc/cmd/nncp-xfer.texi
doc/comparison.texi
doc/contacts.texi
doc/cronexpr.texi
doc/download.texi
doc/eblob.texi
doc/index.texi
doc/indices.texi [new file with mode: 0644]
doc/install.texi
doc/integration/bittorrent.texi
doc/integration/download.texi
doc/integration/exim.texi
doc/integration/feeds.texi
doc/integration/freqindex.texi
doc/integration/git.texi
doc/integration/index.texi
doc/integration/multimedia.texi
doc/integration/postfix.texi
doc/integration/ppp.texi
doc/integration/warc.texi
doc/integrity.texi
doc/log.texi
doc/mcd.texi
doc/mirrors.texi
doc/mth.texi
doc/multicast.texi
doc/news.texi
doc/niceness.texi
doc/pkt/area.texi
doc/pkt/encrypted.texi
doc/pkt/index.texi
doc/pkt/plain.texi
doc/sources.texi
doc/sp.texi
doc/spool.texi
doc/thanks.texi
doc/usecases/airgap.texi
doc/usecases/index.texi
doc/usecases/nolink.texi
doc/usecases/pop.texi
doc/usecases/qos.texi
doc/usecases/satellite.texi
doc/usecases/spy.texi
doc/usecases/unreliable.texi
doc/yggdrasil.texi

index f75293131d348410301f8e01290aa82277e20b7a..09f245c68410b853aef87975a7beb0368fad322f 100644 (file)
@@ -1,8 +1,18 @@
+@cindex about
 @strong{NNCP} (Node to Node copy) is a collection of utilities
 simplifying secure store-and-forward files, mail and command exchanging.
 
 See also this page @ref{Об утилитах, on russian}.
 
+@cindex F2F
+@cindex friend-to-friend
+@cindex E2E
+@cindex end-to-end
+@cindex darknet
+@cindex DTN
+@cindex delay tolerant
+@cindex dead drop
+@cindex onion encryption
 This utilities are intended to help build up small size (dozens of
 nodes) ad-hoc @url{https://en.wikipedia.org/wiki/Friend-to-friend,
 friend-to-friend} (F2F) statically routed
@@ -28,6 +38,9 @@ transmission exists.
 
 Look for possible @ref{Use cases, use cases}!
 
+@cindex GPL
+@cindex free software
+@cindex licence
 NNCP is @url{https://www.gnu.org/philosophy/pragmatic.html, copylefted}
 @url{https://www.gnu.org/philosophy/free-sw.html, free software}
 licenced under @url{https://www.gnu.org/licenses/gpl-3.0.html, GNU GPLv3}.
index 11c26ecd570b8c42dd0fdd5855eab68c3603bebc..e17c136644bd8e68868a1d3751bd183e15cc70eb 100644 (file)
@@ -1,4 +1,5 @@
 @node Administration
+@cindex administration
 @unnumbered Administration
 
 NNCP uses following files/directories you should be aware of:
@@ -29,6 +30,9 @@ NNCP uses following files/directories you should be aware of:
 
     All of that cleaning tasks can be done with @ref{nncp-rm} utility.
 
+    @cindex shared spool
+    @cindex setgid
+    @pindex umask
     @anchor{Shared spool}
     If you want to share single spool directory with multiple grouped
     Unix users, then you can @command{setgid} it and assure that umask
@@ -47,6 +51,7 @@ $ echo 'umask: "007"' >> /usr/local/etc/nncp.hjson
     @ref{Log} file, for example @file{/var/spool/nncp/log}. It should be
     rotated. Choose you own preferable way to do it.
 
+    @pindex newsyslog
     Example @url{https://www.newsyslog.org/manual.html, newsyslog}'s entry:
 @example
 /var/spool/nncp/log            644     7       100     *       BCYN
@@ -62,6 +67,9 @@ $ echo 'umask: "007"' >> /usr/local/etc/nncp.hjson
 */1    *       *       *       *       nncp-reass -all -noprogress
 @end example
 
+@pindex daemontools
+@pindex supervise
+@pindex multilog
 @item
     Possibly long running @ref{nncp-daemon}, @ref{nncp-caller},
     @ref{nncp-toss}, @ref{nncp-check} daemons. As all software, they can
@@ -90,6 +98,7 @@ EOF
 # mv /var/service/.nncp-toss /var/service/nncp-toss
 @end example
 
+@pindex inetd
 @item
     @ref{nncp-daemon} can also be run as
     @url{https://en.wikipedia.org/wiki/Inetd, inetd} service on UUCP's port:
@@ -98,6 +107,8 @@ EOF
 uucp   stream  tcp6    nowait  nncpuser        /usr/local/bin/nncp-daemon      nncp-daemon -quiet -ucspi
 @end example
 
+@cindex UCSPI
+@pindex tcpserver
 @item
     Or it can be also run as a @command{daemontools} daemon under
     @url{http://cr.yp.to/ucspi-tcp.html, UCSPI-TCP}. In the example
index 03eda87e2e85d88bc52bc87cecd7bb88c9d5282e..b788da615d1d91921ec1bfa70c27553af45af1cd 100644 (file)
@@ -1,4 +1,5 @@
 @node Build-instructions
+@cindex building
 @section Build instructions
 
 Make sure that Go is installed. For example to install it from packages:
@@ -19,12 +20,19 @@ $ cd nncp-@value{VERSION}
 $ redo all
 @end example
 
+@pindex info
 After that you should get various @command{bin/nncp-*} binaries and
 @command{bin/hjson-cli} command (only for your convenience, not
 necessary installation). For example, documentation for
 @command{nncp-bundle} command can be get with
 @command{info doc/nncp.info -n nncp-bundle}.
 
+@pindex redo
+@pindex apenwarr/redo
+@pindex apenwarr/do
+@pindex redo-c
+@pindex baredo
+@pindex goredo
 It uses @url{http://cr.yp.to/redo.html, redo} build system for that
 examples. You can use one of its various implementations, or at least
 minimalistic POSIX shell @command{contrib/do} (just replace
@@ -35,13 +43,46 @@ in tarball. Following ones are tested to work with:
 from that project), @url{https://github.com/leahneukirchen/redo-c, redo-c},
 @url{https://github.com/gotroyb127/baredo, baredo}.
 
-There is @command{install} target respecting @env{$DESTDIR}. It will
-install binaries and info-documentation:
+@vindex PREFIX
+@vindex DESTDIR
+@vindex GO
+@vindex MAKEINFO
+@vindex PLANTUML
+@vindex PREFIX
+@vindex SENDMAIL
+@vindex CFGPATH
+@vindex SPOOLPATH
+@vindex LOGPATH
+@vindex BINDIR
+@vindex INFODIR
+@vindex DOCDIR
+@file{config} file contains some environment variables that are
+respected during installation:
+@env{$PREFIX},
+@env{$DESTDIR},
+@env{$GO},
+@env{$MAKEINFO},
+@env{$PLANTUML},
+@env{$PREFIX},
+@env{$SENDMAIL},
+@env{$CFGPATH},
+@env{$SPOOLPATH},
+@env{$LOGPATH},
+@env{$BINDIR},
+@env{$INFODIR},
+@env{$DOCDIR}.
+
+There is @command{install} target for binaries and info-documentation
+installation:
 
 @example
 # PREFIX=/usr/local redo install
 @end example
 
+@vindex nofsnotify
+@cindex kqueue
+@cindex epoll
+@vindex GO_CFLAGS
 NNCP depends on @code{github.com/fsnotify/fsnotify} library, that is
 solely relies on OS-specific mechanisms. There is possibility that you
 have either broken or unsupported ones. You can still build NNCP with
@@ -52,4 +93,5 @@ usage at all:
 $ GO_CFLAGS="-tags nofsnotify" redo ...
 @end example
 
+@vindex noyggdrasil
 You can also disable Yggdrasil support with @code{-tags noyggdrasil}.
index 7bbc85a274d7480156383c87f18c5546475d9f07..6e3e92e233573111ea5bcfc6d6a60a1e7771cd77 100644 (file)
@@ -1,4 +1,7 @@
 @node Bundles
+@cindex bundles
+@cindex tapes
+@cindex streaming media
 @unnumbered Bundles
 
 Usual @ref{nncp-xfer} command requires filesystem it can operate on.
@@ -48,6 +51,8 @@ can contain mix of various recipients.
 
 @end itemize
 
+@pindex pax
+@pindex tar
 Technically bundle is valid POSIX.1-2001
 @url{https://pubs.opengroup.org/onlinepubs/9699919799/utilities/pax.html#tag_20_92_13_01, pax archive}
 with directory/files hierarchy identical to that is used in
index d1e5d993489d5f2fcbcd95ffce3eeb900c53283a..388f041a553fd483da7111a8350d221bcbf10e8f 100644 (file)
@@ -1,4 +1,6 @@
 @node Call
+@cindex call
+@vindex calls
 @unnumbered Call configuration
 
 Call is a rule when and how node can be called by @ref{nncp-caller}.
@@ -51,17 +53,23 @@ It contains the following fields (only @emph{cron} is required):
 
 @table @emph
 
+@vindex cron
 @item cron
 @include cronexpr.texi
 
+@vindex nice
 @item nice
 Optional. Use that @ref{Niceness, niceness} during the call (255 is used
 otherwise).
 
+@vindex xx
+@vindex rx
+@vindex tx
 @item xx
 Optional. Either @verb{|rx|} or @verb{|tx|}. Tells only to either to
 receive or to transmit data during that call.
 
+@vindex addr
 @item addr
 Optional. Call only that address, instead of trying all from
 @ref{CfgAddrs, @emph{addrs}} configuration option. It can be either key
@@ -79,11 +87,13 @@ configuration option when calling.
 Optional. Override @ref{CfgMaxOnlineTime, @emph{maxonlinetime}}
 configuration option when calling.
 
+@vindex autotoss
 @item autotoss, -doseen, -nofile, -nofreq, -noexec, -notrns
 Optionally enable auto tossing: run tosser on node's spool every second
 during the call. You can control either are @file{seen/} files must be
 created, or skip any kind of packet processing.
 
+@vindex when-tx-exists
 @item when-tx-exists
 Call only if packets for sending exists. The check of outbound packets
 existence is performed @strong{every} time we are going to make a call,
@@ -91,6 +101,7 @@ but @emph{when-tx-exists} does not influence @emph{cron}. When
 @emph{cron} configuration decides that it is time to make a call, with
 @emph{when-tx-exists} option it checks packets existence first.
 
+@vindex nock
 @anchor{CfgNoCK}
 @item nock
 NoCK (no-checksumming) tells not to do checksumming of received files,
@@ -101,6 +112,7 @@ received one, but just sequential writing of the file. Pay attention
 that you have to make a call to remote node after checksumming is done,
 to send notification about successful packet reception.
 
+@vindex mcd-ignore
 @anchor{CfgMCDIgnore}
 @item mcd-ignore
 Ignore @ref{MCD} announcements: do not add MCD addresses for possible
index bc21008df102b3d4c96f9b039227daacc5273b22..95a9f98cfc194fd2981ad00558e2ec90b16c416d 100644 (file)
@@ -1,4 +1,5 @@
 @node CfgAreas
+@vindex areas
 @section Configuration areas options
 
 @ref{Multicast} areas configuration only used with multicast packets.
@@ -36,6 +37,7 @@ Each key is human readable multicast group/area/echo name.
 The only required field is the @code{id}. You can not process multicast
 packets that has unknown area identification.
 
+@vindex subs
 @code{subs} contains a list of recipients you must relay incoming
 multicast packet on.
 
index 82979258746bc278c5bd413e3234e49f856c2e9d..57960860559d20229942430bd12487164425d373 100644 (file)
@@ -1,4 +1,5 @@
 @node Configuration directory
+@cindex configuration directory
 @section Configuration directory
 
 Optionally you can convert configuration file to the directory layout
@@ -97,6 +98,7 @@ instead of @file{.hjson} file. It will be transparently converted to
 internal JSON representation. However it can not be encrypted with the
 @ref{nncp-cfgenc}.
 
+@cindex private keys
 That layout should be much more machine friendly and scriptable. Each
 string parameters is stored as a single line plain text file. String
 arrays are newline-separated plain text files. Dictionaries are
index 2575779de6171bde4c9a803c3c34b79b7a61e10b..a2aed512538a7c1a765def996092b41edd6e76aa 100644 (file)
@@ -1,4 +1,5 @@
 @node CfgGeneral
+@cindex general configuration options
 @section Configuration general options
 
 Those options are in the root of configuration dictionary.
@@ -26,8 +27,13 @@ yggdrasil-aliases: {
 @end verbatim
 
 @table @code
+
+@vindex spool
 @item spool
 Absolute path to the @ref{Spool, spool} directory.
+
+@vindex log
+@vindex FD log file descriptor
 @item log
 Either:
     @itemize
@@ -35,31 +41,43 @@ Either:
     @item @code{FD:XXX}, where @code{XXX} is a decimal file descriptor
         to write records too
     @end itemize
+
+@vindex umask
 @item umask
 Will force all invoked commands to override their umask to specified
 octal mask. Useful for using with @ref{Shared spool, shared spool directories}.
+
+@vindex noprogress
 @item noprogress
 When enabled, disables progress showing for many commands by default.
 You can always force its showing with @option{-progress} command line
 option anyway.
+
+@vindex nohdr
 @anchor{CfgNoHdr}
 @item nohdr
 @strong{nohdr} option disables @ref{HdrFile, @file{hdr/}} files usage.
+
 @end table
 
 And optional @ref{MCD, MultiCast Discovery} options:
 
 @table @code
+
+@vindex mcd-listen
 @anchor{CfgMCDListen}
 @item mcd-listen
 Specifies list of network interfaces regular expression
 @ref{nncp-caller} will listen for incoming @ref{MCD} announcements.
+
+@vindex mcd-send
 @anchor{CfgMCDSend}
 @item mcd-send
 Specifies list of network interfaces regular expressions, and intervals
 in seconds, where @ref{nncp-daemon} will send @ref{MCD} announcements.
 @end table
 
+@cindex yggdrasil aliases
 @anchor{CfgYggdrasilAliases}
 Optional @ref{Yggdrasil}-related aliases are used for convenience and
 keeping private keys away being used directly in command line. Each
index f9844eaff5c962526ec9b496ee128d5a6bb9d16a..1b40823bd6787fe1f42ddc1c1f1c8d2d9c127881 100644 (file)
@@ -1,6 +1,8 @@
 @node Configuration
+@cindex configuration file
 @unnumbered Configuration file
 
+@cindex Hjson
 NNCP uses single file configuration file in @url{https://hjson.org/,
 Hjson} format (see also section about @ref{Configuration directory,
 directory layout}) . Initially it is created with @ref{nncp-cfgnew}
@@ -30,6 +32,10 @@ neigh: {
 }
 @end verbatim
 
+@cindex JSON
+@pindex hjson-cli
+@pindex gojq
+@pindex gjo
 Do not forget that Hjson can be safely converted to JSON and vice versa
 (loosing formatting and comments of course). By default
 @command{hjson-cli} utility from @code{github.com/hjson/hjson-go} is
index a141b771d55cabe00d28a577d01ec1426c521ff2..332c1c7153fb5d366d943fe0ad0e6978527969ee 100644 (file)
@@ -1,6 +1,8 @@
 @node CfgNeigh
+@cindex neighbour configuration options
 @section Configuration neighbour options
 
+@vindex neigh
 @strong{neigh} section contains all known neighbours information. It
 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
@@ -65,8 +67,10 @@ node has the following fields:
     If present, then node can be online called using @ref{Sync,
     synchronization protocol}. Contains authentication public key.
 
+@vindex exec
+@pindex sendmail
 @anchor{CfgExec}
-    @item exec
+@item exec
     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
@@ -87,11 +91,13 @@ NNCP_NICE=64 \
     feeding @verb{|hello world\n|} to that started @command{sendmail}
     process.
 
+@vindex incoming
 @anchor{CfgIncoming}
 @item incoming
     Full path to directory where all file uploads will be saved. May be
     omitted to forbid file uploading on that node.
 
+@vindex freq
 @anchor{CfgFreq}
 @item freq
     @table @code
@@ -108,6 +114,7 @@ NNCP_NICE=64 \
         transmission.
     @end table
 
+@vindex via
 @anchor{CfgVia}
 @item via
     An array of node identifiers that will be used as a relay to that
@@ -116,6 +123,7 @@ NNCP_NICE=64 \
     nodes. May be omitted if direct connection exists and no relaying is
     required.
 
+@vindex addrs
 @anchor{CfgAddrs}
 @item addrs
     Dictionary containing known network addresses of the node. Each key
@@ -134,6 +142,8 @@ NNCP_NICE=64 \
     May be omitted if either no direct connection exists, or
     @ref{nncp-call} is used with forced address specifying.
 
+@vindex rxrate
+@vindex txrate
 @anchor{CfgXxRate}
 @item rxrate/txrate
     If greater than zero, then at most *rate packets per second will be
@@ -141,6 +151,7 @@ NNCP_NICE=64 \
     bandwidth traffic shaper: each packet has at most 64 KiB payload
     size. If omitted -- no rate limits.
 
+@vindex onlinedeadline
 @anchor{CfgOnlineDeadline}
 @item onlinedeadline
     Online connection deadline of nodes inactivity in seconds. It is the
@@ -151,6 +162,7 @@ NNCP_NICE=64 \
     delays), wait for appearing packets ready to send and notifying
     remote side about their appearance.
 
+@vindex maxonlinetime
 @anchor{CfgMaxOnlineTime}
 @item maxonlinetime
     If greater than zero, then it is maximal time of single connection.
index 8badc94c2d0beddf9f0dc0181e0dab6ed3577793..f4f011d30bef0e552c6e93eac35e0df9952c5abc 100644 (file)
@@ -1,4 +1,7 @@
 @node CfgNotify
+@cindex email notification
+@cindex notification configuration options
+@cindex logging handles
 @section Configuration notification options
 
 That section controls what notifications are enabled and how must be
index 0528b5a33f06bc4eb0615ad76574e2944380f9a9..98eb21fb37b599f2de56136362b5bc9a6df364f1 100644 (file)
@@ -1,10 +1,17 @@
 @node CfgSelf
+@cindex self-node configuration keypairs
 @section Configuration self-node keypairs
 
 @strong{self} section contains our node's private keypairs.
 
+@vindex ExchPrv
+@vindex ExchPub
+@vindex SignPrv
+@vindex SignPub
 @strong{exch*} and @strong{sign*} are used during @ref{Encrypted,
 encrypted} packet creation.
 
+@vindex NoisePrv
+@vindex NoisePub
 @strong{noise*} are used during @ref{Sync, synchronization protocol}
 working in @ref{nncp-call}, @ref{nncp-caller}, @ref{nncp-daemon}.
index 67f425919d69f4fe24f6d24e21dccbac2dd986bf..b73eb9223937f9b5f6caac7e85ba3cfecb074f72 100644 (file)
@@ -1,4 +1,5 @@
 @node Chunked
+@cindex chunked
 @unnumbered Chunked files
 
 There is ability to transfer huge files with dividing them into smaller
@@ -13,6 +14,8 @@ on the destination node.
 Splitting is done with @ref{nncp-file, nncp-file -chunked} command and
 reassembling with @ref{nncp-reass} command.
 
+@vindex .nncp.meta
+@vindex .nncp.chunk
 Chunked @file{FILE} produces @file{FILE.nncp.meta},
 @file{FILE.nncp.chunk0}, @file{FILE.nncp.chunk1}, @dots{} files. All
 @file{.nncp.chunkXXX} can be concatenated together to produce original
@@ -44,6 +47,7 @@ size and their hash checksums. This is
     @ref{MTH} checksum of each chunk
 @end multitable
 
+@cindex ZFS recordsize
 @anchor{ChunkedZFS}
 It is strongly advisable to reassemble incoming chunked files on
 @url{https://en.wikipedia.org/wiki/ZFS, ZFS} dataset with deduplication
index 5727db82ba9538656e363d5ab19c4de3fb35aa1f..b042b5c400429eca09a681c8b4ec3a0a054065f6 100644 (file)
@@ -1,9 +1,11 @@
 @node Commands
+@cindex commands
 @unnumbered Commands
 
 Nearly all commands have the following common options:
 
 @table @option
+@vindex NNCPCFG
 @item -cfg
     Path to configuration file. May be overridden by @env{$NNCPCFG}
     environment variable. If file file is an encrypted @ref{EBlob,
@@ -24,9 +26,11 @@ Nearly all commands have the following common options:
     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.
+@vindex NNCPSPOOL
 @item -spool
     Override path to spool directory. May be specified by
     @env{$NNCPSPOOL} environment variable.
+@vindex NNCPLOG
 @item -log
     Override path to logfile. May be specified by @env{$NNCPLOG}
     environment variable.
index 9db031f3420acbfd1f580282e5bc08906ce2a008..26b8563e586403069a17ebf002e9ba32cfa81fb2 100644 (file)
@@ -1,4 +1,5 @@
 @node nncp-bundle
+@pindex nncp-bundle
 @section nncp-bundle
 
 @example
index 6c58b5c152f269e59c72b3d2fe6f3fee4fff5497..28f12f67d97db994aa7a02b019e17157b33bcd80 100644 (file)
@@ -1,4 +1,5 @@
 @node nncp-call
+@pindex nncp-call
 @section nncp-call
 
 @example
index a4d0dc59809d5d5da25fc0999f4b43aabe984859..537f15380cbbf354a46c068d930ad1f85e54852f 100644 (file)
@@ -1,4 +1,5 @@
 @node nncp-caller
+@pindex nncp-caller
 @section nncp-caller
 
 @example
index c4f96e45d7c2926d622f2d66c59f6698523021af..853dd107aa99e0837214af7e55aa73f2d57a7f4d 100644 (file)
@@ -1,4 +1,5 @@
 @node nncp-cfgdir
+@pindex nncp-cfgdir
 @section nncp-cfgdir
 
 @example
index 80fab22f4f706ce4510c33739671a0335ddf5405..02070c352eba65592e434c53c9d2fe17a3c3369a 100644 (file)
@@ -1,4 +1,5 @@
 @node nncp-cfgenc
+@pindex nncp-cfgenc
 @section nncp-cfgenc
 
 @example
index d0125acc3d63636b762af40295fa8cbee782b823..0eadaa430178a1daf812af2c6778bcaa6c2290d1 100644 (file)
@@ -1,4 +1,7 @@
 @node nncp-cfgmin
+@cindex stripped configuration
+@cindex minimized configuration
+@pindex nncp-cfgmin
 @section nncp-cfgmin
 
 @example
index 0f7ab3748342ae97ee2c0d41cf9be9007b3c7d26..ccd47c6ab1e947c4d7cf1d948bb6e114d602b51f 100644 (file)
@@ -1,4 +1,5 @@
 @node nncp-cfgnew
+@pindex nncp-cfgnew
 @section nncp-cfgnew
 
 @example
index 4a257af99ae9c3709f80b75874c79a233892d708..57bb379869f03015e422573fdbadfd86aeeaefe7 100644 (file)
@@ -1,4 +1,5 @@
 @node nncp-check
+@pindex nncp-check
 @section nncp-check
 
 @example
index f06202a61475e5ab75566813838e83c549c04cab..50821d0da9b1fd46918799e9cd9b8b5b617ab135 100644 (file)
@@ -1,4 +1,5 @@
 @node nncp-cronexpr
+@pindex nncp-cronexpr
 @section nncp-cronexpr
 
 @example
index 15e1233aa0b5752bb7f12a647f9360b00daf0c24..b898e7c3b30857f71b8bf2f043d127e43887bd4f 100644 (file)
@@ -1,4 +1,5 @@
 @node nncp-daemon
+@pindex nncp-daemon
 @section nncp-daemon
 
 @example
index eec6a7e5fca4a8b32e163657ca0e483488f5e9f6..8b9c7537c0a4100ab9f8bf48944185a5f6e1bb11 100644 (file)
@@ -1,4 +1,5 @@
 @node nncp-exec
+@pindex nncp-exec
 @section nncp-exec
 
 @example
@@ -22,6 +23,9 @@ exec: {
 }
 @end verbatim
 
+@vindex NNCP_SELF
+@vindex NNCP_SENDER
+@vindex NNCP_NICE
 then executing @verb{|echo My message | nncp-exec -replynice 123 REMOTE
 sendmail root@localhost|} will lead to execution of:
 
index 802e817fb0010121bb03d5f80eaa37ef35d7553f..078a6bab1ff5d3626c8175de6e88b22614c8ce21 100644 (file)
@@ -1,4 +1,5 @@
 @node nncp-file
+@pindex nncp-file
 @section nncp-file
 
 @example
index aa35f998d427acc948c79d94574d602745be348d..049339c03ee5b062795de93cadc2536b790c34ef 100644 (file)
@@ -1,4 +1,5 @@
 @node nncp-freq
+@pindex nncp-freq
 @section nncp-freq
 
 @example
index babd1503a6b942d1a091423f45dea36603b2b5c7..afed745b6c2e07caab82d5ddd7bd6c3b55b882b7 100644 (file)
@@ -1,4 +1,5 @@
 @node nncp-hash
+@pindex nncp-hash
 @section nncp-hash
 
 @example
index 6ac6a7a8d6749fd6fdaf0f2445ff4f613368777b..5cbc281cd105acf05c4abc4689f83620c6fb80a1 100644 (file)
@@ -1,4 +1,5 @@
 @node nncp-log
+@pindex nncp-log
 @section nncp-log
 
 @example
index b3391b4d7de0828090d6459f1fa9af172c4977ad..1e4f6f3a61de319ce715f4e0e03eb3700e659425 100644 (file)
@@ -1,4 +1,5 @@
 @node nncp-pkt
+@pindex nncp-pkt
 @section nncp-pkt
 
 @example
index 7cae84b2fa9af9932ca84e94ac00c814629b1590..625111358a137144d7b0571544ac1cda3a74aa30 100644 (file)
@@ -1,4 +1,5 @@
 @node nncp-reass
+@pindex nncp-reass
 @section nncp-reass
 
 @example
index f36178a045adb19538f3cbc192ff43ee6837181c..d02a5f36a9a3cb34230e05e04e4bf00f72a0c8ef 100644 (file)
@@ -1,4 +1,5 @@
 @node nncp-rm
+@pindex nncp-rm
 @section nncp-rm
 
 @example
index 5759a0183470673d156f51b5a1e65c2d2df51057..ae552fd0f88f47e094c7f7a34dac1c50a4227cdf 100644 (file)
@@ -1,4 +1,5 @@
 @node nncp-stat
+@pindex nncp-stat
 @section nncp-stat
 
 @example
index da4b3bef04923757223a67b314a028640d669de1..513c32266f45cba7bfbf2a99e90a0f40e6edbbff 100644 (file)
@@ -1,4 +1,5 @@
 @node nncp-toss
+@pindex nncp-toss
 @section nncp-toss
 
 @example
index c9b77ccd8741bf82ff27e3db775e89ad69ed9f3d..d1be039e8447bc50fc4b304404aa9aba85c8a6de 100644 (file)
@@ -1,4 +1,5 @@
 @node nncp-trns
+@pindex nncp-trns
 @section nncp-trns
 
 @example
index 70edaf82377c4ea8cd9ae0551e0de0ac7d90d335..ac937bbe1ccd6123bf8c8874c0db965151d2bc31 100644 (file)
@@ -1,4 +1,5 @@
 @node nncp-xfer
+@pindex nncp-xfer
 @section nncp-xfer
 
 @example
index 4b7fd904f4f5bbadf2f7da323361ad29a7aff05b..d3d6fb174a675e0e01fde0af1b8d88a30da787c9 100644 (file)
@@ -1,4 +1,9 @@
 @node Comparison
+@cindex comparison
+@cindex SMTP
+@cindex FTN
+@cindex FidoNet
+@cindex UUCP
 @unnumbered Comparison with existing solutions
 
 Here is comparison with @url{https://en.wikipedia.org/wiki/UUCP, UUCP}
@@ -87,6 +92,7 @@ FidoNet} Technology Networks) and @url{https://en.wikipedia.org/wiki/SMTP, SMTP}
     UUCP and NNCP does not known nothing about routing. You have to
     explicitly tell how to send (what hops to use) packets to each node.
 
+@cindex PSTN
 @item PSTN support
     UUCP and FidoNet always have been working with modems out-of-box.
     Only many years later they gained support for working over TCP/IP
@@ -94,11 +100,15 @@ FidoNet} Technology Networks) and @url{https://en.wikipedia.org/wiki/SMTP, SMTP}
     TCP daemon, but nothing prohibits using of another 8-bit aware
     online transport.
 
+@cindex anonymity
+@cindex Sybil attack
 @item Anonymous peers
     NNCP and FTN are friend-to-friend networks exclusively. This is very
     secure and mitigates many possible man-in-the-middle (MitM) and
     @url{https://en.wikipedia.org/wiki/Sybil_attack, Sybil} attacks.
 
+@cindex sneakernet
+@cindex floppynet
 @item Sneakernet friendliness
     No one, except NNCP, supports data exchanging via removable storages
     likes flash drives, CD-ROMs, tapes and hard drives out-of-box. It
@@ -108,6 +118,7 @@ FidoNet} Technology Networks) and @url{https://en.wikipedia.org/wiki/SMTP, SMTP}
 
 @end table
 
+@cindex UUCP commands
 Also there is
 @url{https://changelog.complete.org/archives/10165-asynchronous-email-exim-over-nncp-or-uucp, copy of}
 comparable commands of UUCP and NNCP, just for the interest:
@@ -115,6 +126,11 @@ comparable commands of UUCP and NNCP, just for the interest:
 @multitable @columnfractions 0.5 0.25 0.25
 @headitem Purpose @tab UUCP @tab NNCP
 
+@pindex uucico
+@pindex uupoll
+@pindex uux
+@pindex uucp
+@pindex uuxqt
 @item Connect to remote system
     @tab @command{uucico -s}, @command{uupoll}
     @tab @command{nncp-call}, @command{nncp-caller}
index 63473b804444005990bfc386632e2af561d40486..01803d009837c4ee16064b4abde9621d8aeb5696 100644 (file)
@@ -1,4 +1,8 @@
 @node Contacts
+@cindex contacts
+@cindex maillist
+@cindex IRC
+@cindex Matrix
 @unnumbered Contacts
 
 Please send questions regarding the use of NNCP, bug reports and patches to
index 8a808b3151aa39229c8fd038ec2c63b35e38e69f..58ce7c8f8a591719ad6aba9a16976d20c3897bb7 100644 (file)
@@ -1,3 +1,4 @@
+@cindex cron
 @anchor{CronExpr}
 This is copy-pasted documentation from
 @code{github.com/gorhill/cronexpr} library used there.
index b3545d9da78ae16a1a80cb7b1fdc539daaaf97cb..f6c259e79b94b927b5073aabcba4b220bbb4f7f7 100644 (file)
@@ -1,4 +1,8 @@
 @node Tarballs
+@cindex tarball
+@cindex dependency
+@cindex licencing
+@cindex download
 @section Prepared tarballs
 
 You can obtain releases source code prepared tarballs from the links below.
index 3a5c08d79659fc858b49217f9d66c3a2a1d55944..a7e9b8f47d43c6cf5d5642950845d8e18955ee87 100644 (file)
@@ -1,4 +1,6 @@
 @node EBlob
+@cindex eblob
+@cindex encrypted configuration
 @unnumbered EBlob format
 
 EBlob is an encrypted blob (binary large object, in the terms of
@@ -20,6 +22,9 @@ is @strong{not} the password. Password is a short string of high entropy
 low-entropy characters. Low-entropy text is much more easier to
 remember, and its length provides pretty enough entropy as a result.
 
+@cindex password
+@cindex balloon
+@cindex Argon2
 Password strengthening function is applied to that passphrase to
 mitigate brute-force and dictionary attacks on it. Here,
 @url{https://crypto.stanford.edu/balloon/, Balloon} memory-hard password
index 829017dd1c269e1d98dfab96a23fa9b691db15bc..37a7ab9faf6dc62331975f1359d367de0d1eec7c 100644 (file)
@@ -17,12 +17,17 @@ A copy of the license is included in the section entitled "Copying conditions".
 @end copying
 
 @node Top
+@c dummy cindex, to pass through the current info's bug, which can skip
+@c the first index entry during searching
+@cindex 0
 @top NNCP
 
+@cindex Pedro
 @verbatiminclude pedro.txt
 
 @include about.texi
 
+@cindex articles
 There are also articles about its usage outside this website:
 
 @itemize
@@ -61,6 +66,7 @@ There are also articles about its usage outside this website:
 * EBlob format: EBlob
 * Mirrors::
 * Thanks::
+* Indices::
 * Contacts and feedback: Contacts
 * Copying conditions: Copying
 @end menu
@@ -90,6 +96,7 @@ There are also articles about its usage outside this website:
 @include eblob.texi
 @include mirrors.texi
 @include thanks.texi
+@include indices.texi
 @include contacts.texi
 
 @node Copying
diff --git a/doc/indices.texi b/doc/indices.texi
new file mode 100644 (file)
index 0000000..542d4ef
--- /dev/null
@@ -0,0 +1,14 @@
+@node Indices
+@unnumbered Indices
+
+@node Concepts Index
+@section Concepts Index
+@printindex cp
+
+@node Programs Index
+@section Programs Index
+@printindex pg
+
+@node Variables Index
+@section Variables Index
+@printindex vr
index 3f893998dc9d2e2524b2a10878fffa40de226efb..e948d811a54bb803d7e112050e57eb58552c9bcb 100644 (file)
@@ -1,22 +1,45 @@
 @node Installation
+@cindex installation
+@cindex packages
+@cindex distributions
 @unnumbered Installation
 
 Possibly NNCP package already exists for your distribution:
 
 @itemize
+
+@cindex Arch Linux
+@cindex AUR
 @item Arch Linux @url{https://aur.archlinux.org/packages/nncp, AUR}
+
+@cindex Debian
 @item @url{https://tracker.debian.org/pkg/nncp, Debian packages}
+
+@cindex DragonFly
 @item @url{https://github.com/DragonFlyBSD/DPorts/tree/master/net/nncp, DragonFly BSD ports}
+
+@cindex FreeBSD
 @item @url{https://www.freshports.org/net/nncp/, FreeBSD ports}
+
+@cindex Guix
 @item GNU @url{https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/uucp.scm, Guix}
+
+@cindex NetBSD
 @item @url{https://pkgsrc.se/wip/nncp, NetBSD package}
+
+@cindex NixOS
 @item @url{https://github.com/NixOS/nixpkgs/tree/master/pkgs/tools/misc/nncp, NixOS packages}
+
+@cindex Void Linux
 @item @url{https://github.com/void-linux/void-packages/blob/master/srcpkgs/nncp/template, Void Linux}
 @end itemize
 
+@cindex POSIX
 NNCP should run on any POSIX-compatible operating system.
 
-NNCP is written on @url{https://do.dev.org/, Go} programming language
+@pindex go
+@pindex texinfo
+NNCP is written on @url{https://go.dev/, Go} programming language
 and you have to install Go compiler 1.13+ version.
 @url{http://cr.yp.to/redo.html, redo} build system is recommended for
 convenience. @url{https://www.gnu.org/software/texinfo/, Texinfo} is
index 841391e5933fab304360d0b611c7885d8ba0b20d..f3136c8ddc664fd1acee2a517f9d79475e498e3e 100644 (file)
@@ -1,4 +1,5 @@
 @node BitTorrent
+@cindex BitTorrent integration
 @section BitTorrent and huge files
 
 If dealing with @ref{Git}, @ref{Feeds, web feeds} and @ref{Multimedia,
@@ -6,6 +7,7 @@ multimedia} goes relatively fast, then BitTorrent and huge files
 consumes much time. You can not wait for downloads finish, but want to
 queue them after.
 
+@pindex aria2
 @url{http://aria2.github.io/, aria2} multi-protocol download utility
 could be used for solving that issue conveniently. It supports HTTP,
 HTTPS, FTP, SFTP and BitTorrent protocols, together with
@@ -15,6 +17,7 @@ URIs, Web-seeding, selective downloads, LPD. @command{aria2} can
 accelerate HTTP*/*FTP downloads by segmented multiple parallel
 connections.
 
+@pindex aria2-downloaded.sh
 You can queue you files after they are completely downloaded.
 @file{aria2-downloaded.sh} contents:
 
index c4ca2acc562db491b0c55a1c59986d2af851dc9c..df88be2539459f4ef4ce65cbbfab34f84f08dfcc 100644 (file)
@@ -1,4 +1,7 @@
 @node DownloadService
+@cindex download service
+@pindex warcer.sh
+@pindex wgeter.sh
 @section Downloading service
 
 Previous sections tell about manual downloading and sending results to
index 26472ea46291ce907881daa971eaa9fac558c088..d1195c43f9c20191065dbefb889bb155c458e8ab 100644 (file)
@@ -1,4 +1,5 @@
 @node Exim
+@cindex Exim integration
 @section Integration with Exim
 
 This section is unaltered copy-paste of
@@ -17,6 +18,8 @@ eventual delivery (over the Internet, LAN, whatever).
 
 This is fairly simple in Exim.
 
+@pindex bsmtp
+@pindex rmail
 We actually have two choices for how to do this: @command{bsmtp} or
 @command{rmail} mode. bsmtp (batch SMTP) is the more modern way, and is
 essentially a derivative of SMTP that explicitly can be queued
@@ -96,6 +99,7 @@ exec: @{
 
 The @option{-bS} option is what tells Exim to receive BSMTP on @code{stdin}.
 
+@vindex MAIN_TRUSTED_USERS
 Now, you need to tell Exim that nncp is a trusted user (able to set From
 headers arbitrarily). Assuming you are running NNCP as the @code{nncp} user,
 then add @code{MAIN_TRUSTED_USERS = nncp} to a file such as
index 2b127e644eecf0798b10b78ee28a9db7842a4c99..97fd3f49ad71083c9f84ed4e1c5ff46480e53d47 100644 (file)
@@ -1,6 +1,10 @@
 @node Feeds
+@cindex Web feeds integration
+@cindex RSS feeds integration
+@cindex Atom feeds integration
 @section Integration with Web feeds
 
+@pindex r2e
 RSS and Atom feeds could be collected using
 @url{https://github.com/wking/rss2email, rss2email} program. It converts
 all incoming feed entries to email messages. Read about how to integrate
index cec8463d5cdd093270bbae44c2078c91ee142e6f..68f5e27ef6f8a14b958d1ba6346a64823e70388c 100644 (file)
@@ -1,4 +1,5 @@
 @node FreqIndex
+@cindex index files
 @section Index files for freqing
 
 In many cases you do not know exact files list on remote machine you
index a159cf885135b772fce9250ea88248d2c21c6cbe..66ae5b43888052153690786220369259fd852a18 100644 (file)
@@ -1,4 +1,6 @@
 @node Git
+@cindex git integration
+@pindex git-bundle
 @section Integration with Git
 
 @url{https://git-scm.com/, Git} version control system already has all
index 315868b75946babbd2f69ce0a4159c74dc0834ee..885bacf9669661da90615ef5d02f6ed476cc0091 100644 (file)
@@ -1,4 +1,5 @@
 @node Integration
+@cindex integration with existing software
 @unnumbered Integration with existing software
 
 Here is some examples of how you can solve popular tasks with NNCP,
index 79cc42d711c7106bf174e53522c95696e4d68248..20ed06c1a549fbcd043a995aa6609db54f4d46d3 100644 (file)
@@ -1,4 +1,8 @@
 @node Multimedia
+@cindex multimedia integration
+@cindex pindex youtube-dl
+@cindex pindex yt-dlp
+@cindex cindex YouTube
 @section Integration with multimedia streaming
 
 Many video and audio streams could be downloaded using
index f02dca088354482a65582909d9a6aa549a30c4b5..259bdf7dc25e360c3731e872ffcb0df648aeead2 100644 (file)
@@ -1,4 +1,6 @@
 @node Postfix
+@cindex Postfix integration
+@pindex postfix
 @section Integration with Postfix
 
 This section is taken from @url{http://www.postfix.org/UUCP_README.html,
@@ -31,6 +33,9 @@ node and after replacing @var{$recipient} by the recipients. The
 command without assistance from the shell, so there are no problems with
 shell meta characters in command-line parameters.
 
+@pindex sendmail.sh
+@vindex Return-Path
+@pindex reformail
 Pay attention to @code{flags}, containing @code{R}, telling Postfix to
 include @code{Return-Path:} header. Otherwise that envelope sender
 information may be lost. Possibly you will also need somehow to
@@ -42,6 +47,9 @@ extract with:
 
 @verbatiminclude sendmail.sh
 
+@vindex From_
+@cindex mbox
+@pindex maildrop
 Also pay attention that @command{maildrop} does not like @code{From_}
 mbox-style header, so you possibly want:
 
index e274cd16c72883545b638a82ee7dbc04803de823..a4ad3cf7c2d4f015347838a67ee438d6914d80b1 100644 (file)
@@ -1,4 +1,7 @@
 @node PPP
+@cindex PPP
+@cindex serial link
+@cindex serial connection
 @section Serial connection
 
 It is not trivial to run online @command{nncp-daemon},
index 361967ce38e034c20e0a7747247dcf95ab225969..4c5872906e7df18cb93b1e12216f84829946170d 100644 (file)
@@ -1,4 +1,6 @@
 @node WARCs
+@cindex WARC
+@pindex wget
 @section Integration with Web pages
 
 Simple HTML web page can be downloaded very easily for sending and
@@ -62,6 +64,7 @@ $ wget [--page-requisites] [--recursive] \
     [@dots{}] http://www.example.com/
 @end example
 
+@pindex tofuproxy
 That command will create @file{www.example.com-XXX.warc} web archive.
 It could produce specialized segmented
 @url{https://en.wikipedia.org/wiki/Gzip, gzip} and
index 171cdc179be94433453aa27cf072d168379f2f30..7ece02c9ef480fdc105c2a2e6e3eab675c1191e0 100644 (file)
@@ -1,4 +1,10 @@
 @node Integrity
+@cindex integrity check
+@cindex authenticity check
+@cindex OpenPGP
+@cindex gpg
+@cindex GnuPG
+@cindex WKD
 @section Tarballs integrity check
 
 You @strong{have to} check downloaded archives integrity and verify
index 74a8c6d562ca9fd09b99c0b93aba6b32eec0a4f6..f9c0205e718d3ab79d68fbf9127f8c8aeb8fcae5 100644 (file)
@@ -1,4 +1,8 @@
 @node Log
+@cindex log format
+@cindex logging
+@cindex recfile
+@pindex recutils
 @unnumbered Log format
 
 Log is a plaintext file consisting of
index 958e0feb7380a48e2bb7da3f255115270bcada96..282261e978fdd324ad364a5179402aaea50490d2 100644 (file)
@@ -1,4 +1,6 @@
 @node MCD
+@cindex MCD
+@cindex multicast discovery
 @unnumbered MultiCast Discovery
 
 MCD is an addition to online @ref{Sync, synchronization protocol}, that
index d6ccac65911a14d9c2a56dee5fce47315ecb4eea..315543a696e2f2ff74fba4d21be6c769177a6ef1 100644 (file)
@@ -1,4 +1,5 @@
 @node Mirrors
+@cindex mirror
 @unnumbered Mirrors
 
 Main NNCP website is hosted on two geographically distant servers
@@ -7,6 +8,9 @@ connectivity is provided by Hurricane Electric tunnel broker. Only one
 of those servers supports TLS and another just proxies the traffic to
 it. So TLS-capable version has less availability.
 
+@cindex DANE
+@cindex DNSCurve
+@cindex ca.cypherpunks.ru
 It can be authenticated with
 @url{http://www.ca.cypherpunks.ru/, ca.cypherpunks.ru} certificate, through the
 @url{https://datatracker.ietf.org/doc/html/rfc6698, DANE} record, that
@@ -23,6 +27,7 @@ accessible address: @url{http://y.www.nncpgo.org/}.
 
 @table @asis
 
+@cindex quux.org
 @item @url{https://nncp.mirrors.quux.org/}
 
 Its creation @url{http://lists.cypherpunks.ru/archive/nncp-devel/2108/0310.html, announcement}.
index 72a38d9baadc7ddbd3621a194673562bccc435d3..5e8b75c68a8ff55b55b7f796c725492f79152f22 100644 (file)
@@ -1,4 +1,8 @@
 @node MTH
+@cindex MTH
+@cindex hashing
+@cindex merkle tree
+@cindex BLAKE3
 @unnumbered Merkle Tree Hashing
 
 NNCP uses @url{https://github.com/BLAKE3-team/BLAKE3, BLAKE3} hash
index fbb31adf94ce0c6444c0d0c85cb06131822a3e17..7de8be77d193a0590d365c6cdf486eea78fdc6ae 100644 (file)
@@ -1,4 +1,5 @@
 @node Multicast
+@cindex multicast area
 @unnumbered Multicast areas
 
 NNCP has ability to multicast packets: send single packet to multiple
@@ -23,6 +24,7 @@ that encrypted packet to the others)
 can should it to the subscribers further
 @end itemize
 
+@vindex MsgHash
 Area's message identity (@code{MsgHash}) is the hash of the encrypted
 packet header. Because the area packet, containing the encrypted packet,
 is relayed as-is without any modifications, that area message's hash
index 09b21bc676bdb9ef4a3542e101533596916cd10c..861ba7fed8a08402053876edbcbe33a9dc395451 100644 (file)
@@ -1,4 +1,5 @@
 @node News
+@cindex news
 @unnumbered News
 
 See also this page @ref{Новости, on russian}.
index 4686c0915436ae1724ea0f71b94ac8e09bfc9cb1..8786d3244760af95ce8cab042c00d8bdd98a9662 100644 (file)
@@ -1,4 +1,6 @@
 @node Niceness
+@cindex niceness
+@cindex priority
 @unnumbered Niceness
 
 Each transmitted packet has niceness level, as Unix has @command{nice}
@@ -18,12 +20,16 @@ There are 1-255 niceness levels. They could be specified either as
 integer, or using aliases with delta modifiers:
 
 @table @emph
+@vindex FLASH
 @item FLASH (F)
 Urgent priority.
+@vindex PRIORITY
 @item PRIORITY (P)
 High priority. Command execution/mail use that priority by default.
+@vindex NORMAL
 @item NORMAL (N)
 Normal priority. File requests use that priority by default.
+@vindex BULK
 @item BULK (B)
 Bundles shipped on a "least effort" basis. File transmission use that
 priority by default.
index 172c09c092558356a85014f56a3d40d32fc25133..1073ca65c1f90f36e86d8782eb18b2a7db388456 100644 (file)
@@ -1,4 +1,5 @@
 @node Encrypted area
+@cindex encrypted area packet
 @section Encrypted area packet
 
 @ref{Multicast} area messages contains the encrypted packet, that is
index 7b8ed21f56c3c2f226d7ab3335c62593815e2612..ead94786c30216a9d6d8cc40271e20efa384eb49 100644 (file)
@@ -1,4 +1,7 @@
 @node Encrypted
+@cindex encrypted packet
+@cindex AEAD
+@cindex ChaCha20-Poly1305
 @section Encrypted packet
 
 Encrypted packets are the only files found in spools, in exchangeable
index f19d1ca377fd8dbc5185b9217961427c689ba641..8dba7bc95e25a701ed963db34bf8d7904776d70a 100644 (file)
@@ -1,4 +1,6 @@
 @node Packet
+@cindex packet format
+@cindex XDR
 @unnumbered Packet format
 
 All packets are
index 46d66eadc9450e5800d8ecc3e8b234d6a24500e0..7af4360f36171df73546aaeb03013e82aa6a72b0 100644 (file)
@@ -1,4 +1,5 @@
 @node Plain
+@cindex plain packet
 @section Plain packet
 
 Plain packet contains either the whole file, or file request (freq), or
index a7e2bcdcba0db50aa33911b5c6b6847169770e72..474d27c5b5b69dfce9f88b6f0ee2a01ea17274ac 100644 (file)
@@ -1,4 +1,7 @@
 @node Sources
+@cindex sources
+@cindex source code
+@cindex git
 @section Development source code
 
 Development source code contains the latest version of the code. It may
index e7f4895c67f43c539915046887c1252d2de573b2..36f5cc794d32ced78508a4e99c718fa45cfea69a 100644 (file)
@@ -1,10 +1,14 @@
 @node Sync
+@cindex sync protocol
+@cindex online protocol
+@cindex synchronization
 @unnumbered Synchronization protocol
 
 So-called synchronization protocol (SP) is used in current TCP daemon's
 implementation. It is used for synchronizing @ref{Spool, spool}
 directory contents between two nodes.
 
+@cindex XMODEM
 It is aimed to be very simple and effective. It uses reliable transport
 like TCP connections. It must be effective both on single-duplex and
 full-duplex links: for example satellites have very high throughput but
@@ -12,11 +16,13 @@ high-delay links, so acknowledging of each received packet, like
 @url{https://en.wikipedia.org/wiki/XMODEM, XMODEM} does, causes
 unacceptable performance degradation.
 
+@vindex NNCPDEADLINE
 Internally it uses various timeouts and deadlines. One of them used
 extensively is 10 seconds default deadline timeout. You can override it
 with @env{$NNCPDEADLINE} environment variable, that could be useful with
 very high delay links.
 
+@cindex Noise-IK
 SP works on top of
 @url{http://noiseprotocol.org/noise.html#interactive-patterns,
 @code{Noise_IK_25519_ChaChaPoly_BLAKE2b}} protocol. Each Noise packet
@@ -54,6 +60,7 @@ just an unsigned integer telling what body structure follows.
 
 @table @emph
 
+@cindex HALT payload
 @item HALT
     Stop file transmission, empty sending queue on the remote side.
     Actually @emph{HALT} packet does not have any body, only the header
@@ -66,6 +73,7 @@ just an unsigned integer telling what body structure follows.
 +------+
 @end verbatim
 
+@cindex PING payload
 @item PING
     Dummy packet only used for determining workability of the connection.
 
@@ -75,6 +83,7 @@ just an unsigned integer telling what body structure follows.
 +------+
 @end verbatim
 
+@cindex INFO payload
 @item INFO
     Information about the file we have for transmission.
 
@@ -97,6 +106,7 @@ just an unsigned integer telling what body structure follows.
         Unique file identifier, its checksum
     @end multitable
 
+@cindex FREQ payload
 @item FREQ
     File transmission request. Ask remote side to queue the file for
     transmission.
@@ -117,6 +127,7 @@ just an unsigned integer telling what body structure follows.
         Offset from which remote side must transmit the file
     @end multitable
 
+@cindex FILE payload
 @item FILE
     Chunk of file.
 
@@ -139,6 +150,7 @@ just an unsigned integer telling what body structure follows.
         Chunk of file itself
     @end multitable
 
+@cindex DONE payload
 @item DONE
     Signal remote side that we have successfully downloaded the file.
 
index 61ec8c3513928fbb13eb33941382e5edab309c19..76c1f596b27205ace36ad503616d0da8f52db8db 100644 (file)
@@ -1,4 +1,5 @@
 @node Spool
+@cindex spool directory
 @unnumbered Spool directory
 
 Spool directory holds @ref{Encrypted, encrypted packets} received from
@@ -18,6 +19,7 @@ spool/tmp
 
 @table @file
 
+@cindex tmp directory
 @item tmp
 directory contains various temporary files that under normal
 circumstances are renamed to necessary files inside other directories.
@@ -27,10 +29,13 @@ filesystem for working renaming.
 @item 2WHBV3TPZHDOZGUJEH563ZEK7M33J4UESRFO4PDKWD5KZNPROABQ
 is an example Base32-encoded neighbour identifier.
 
+@cindex rx directory
+@cindex tx directory
 @item rx, tx
 directories are for incoming and outgoing encrypted packets. @file{rx}
 contains currently unfinished, non-checked, unprocessed, etc packets.
 
+@cindex lock files
 @item toss.lock, rx.lock, tx.lock
 Lock files. Only single process can work with @file{rx}/@file{tx}
 directories at once.
@@ -40,16 +45,19 @@ is an example @ref{Encrypted, encrypted packet}. Its filename is Base32
 encoded @ref{MTH} hash of the whole contents. It can be integrity checked
 anytime.
 
+@cindex part files
 @item LYT64MWSNDK34CVYOO7TA6ZCJ3NWI2OUDBBMX2A4QWF34FIRY4DQ.part
 is an example @strong{partly} received file. It can appear only when
 online transfer is used. Its filename is sent by remote side and until
 file is fully downloaded -- it plays no role.
 
+@cindex nock files
 @item LYT64MWSNDK34CVYOO7TA6ZCJ3NWI2OUDBBMX2A4QWF34FIRY4DQ.nock
 non-checksummed (NoCK) @strong{fully} received file. Its checksum is
 verified against its filename either by @ref{nncp-check}, or by working
 online daemons. If it is correct, then its extension is trimmed.
 
+@cindex seen files
 @item seen/LYT64MWSNDK34CVYOO7TA6ZCJ3NWI2OUDBBMX2A4QWF34FIRY4DQ
 @ref{nncp-toss} utility can be invoked with @option{-seen} option,
 leading to creation of @file{seen/} files, telling that the file with
@@ -59,6 +67,7 @@ available and there is possibility of duplicates reception. You have to
 manually remove them, when you do not need them (probably because they
 are expired).
 
+@cindex hdr files
 @anchor{HdrFile}
 @item hdr/LYT64MWSNDK34CVYOO7TA6ZCJ3NWI2OUDBBMX2A4QWF34FIRY4DQ
 If no @ref{CfgNoHdr, nohdr} option is enabled in configuration file,
index 12592bc570e73043596fa9d9095af31c45b5cdbb..b682d92e793ed4ca2b2d156adbd0216ebaa30cb6 100644 (file)
@@ -1,4 +1,5 @@
 @node Thanks
+@cindex thanks
 @unnumbered Thanks
 
 There are people deserving to be thanked for helping this project:
index dd50bb4e85372b9caaae54959331bae16d1ca7e3..2251d4f4a675f062383edc58fd2142878e38b07c 100644 (file)
@@ -1,4 +1,5 @@
 @node UsecaseAirgap
+@cindex air-gap
 @section Highly secure isolated air-gap computers
 
 If you worry much about security, then air-gapped computer could be the
index 938908f189ad5aac160bc35f646795eeff3dab9a..9f99cfc8d61d860d4149130f7a59c58c22c62971 100644 (file)
@@ -1,4 +1,5 @@
 @node Use cases
+@cindex use cases
 @unnumbered Use cases
 
 See also this page @ref{Сценарии, on russian}.
index 7886e813d9642c6660771ea44702c75ab218ba66..4fe740f258882f822064bf7aa134a5d1ba02de92 100644 (file)
@@ -1,4 +1,6 @@
 @node UsecaseNoLink
+@cindex extreme environments
+@cindex lack of link
 @section Extreme terrestrial environments, no link
 
 This is some kind of too slow link. Offline delivery methods is the only
index 5edc3e8e9372a569520d3377995ec755ab45fba3..bc3345c7cbba5804fd7614f3067800792bf1c2b4 100644 (file)
@@ -1,4 +1,6 @@
 @node UsecasePOP
+@cindex POP3 replacement
+@cindex IMAP4 replacement
 @section Lightweight fast POP3/IMAP4 replacement
 
 @ref{nncp-daemon} can be connected with @ref{nncp-caller} for a long
index 8089888063afed0dbec422d0aa1e074549106c99..4013e353d457142b6d9d6976a06b0ec7966ced37 100644 (file)
@@ -1,4 +1,7 @@
 @node UsecaseQoS
+@cindex expensive link
+@cindex slow link
+@cindex bad QoS
 @section Slow/expensive link for high-volume data, bad QoS
 
 Assume that you can give your relatively cheap 2 TiB removable hard
index d152a3bd0e979615810c42365ac3d4a31390215d..2a587af88548945f1df4d3c01e12dfd96f8fc669 100644 (file)
@@ -1,4 +1,5 @@
 @node UsecaseSatelliteLinks
+@cindex satellite link
 @section Satellite links
 
 Satellite links have @strong{very} high delays together with high
index b1e1de846c6dd25a731c6a3e4d72f8d127397c8a..1cd9a4c26058ea4bffceae97720cf2c7f1f10293 100644 (file)
@@ -1,4 +1,5 @@
 @node UsecaseSpy
+@cindex reconnaissance, spying, intelligence, covert operations
 @section Reconnaissance, spying, intelligence, covert agents
 
 Those guys know how Internet is a dangerous place incompatible with
index 93a40d991e14e72a47d9004c1fcf6fe8ee1a4030..2ed385666750eca921141acfc565879b57b4afee 100644 (file)
@@ -1,4 +1,5 @@
 @node UsecaseUnreliable
+@cindex unreliable link
 @section Unreliable/expensive communication link
 
 Assume that you have got slow modem/radio/cellular link that frequently
index 18fa2701278638832bde6f4ef32cb3b43a6d2874..294efed2206883f4a2aa990a436791588df65e4d 100644 (file)
@@ -1,4 +1,5 @@
 @node Yggdrasil
+@cindex yggdrasil
 @unnumbered Yggdrasil support
 
 NNCP is able to act as a node of
@@ -26,13 +27,13 @@ Only minor modifications were done to current NNCP's tools:
 
 @itemize
 
-@item @ref{nncp-daemon} has @option{-yggdrasil yggdrasils://} option,
+@cindex yggdrasils schema
 making it also as a Yggdrasil listener network node. It can
 automatically connect to other peers and participate in routing. It does
 not have to answer NNCP's online protocol requests at all and just can
 be some intermediate routing point in the whole mesh network.
 
-@item @ref{nncp-call}/@ref{nncp-caller} commands understand
+@cindex yggdrasilc schema
 @code{yggdrasilc://} addresses, pointing to the desired Yggdrasil's
 public key (that also acts as the destination host's address). Yggdrasil
 background goroutine is automatically started, connecting to the
@@ -68,20 +69,24 @@ You have to specify:
 
 @itemize
 
+@vindex PrivateKey
 @item
 Your private key (generated above). Yggdrasil's @code{PrivateKey} analogue.
 
 @item
 Optional non-default port you will listen on Yggdrasil's IPv6 address.
 
+@vindex Listen
 @item
 Optional list of bind addresses, used for peering between the nodes.
 Yggdrasil's @code{Listen} analogue.
 
+@vindex Peers
 @item
 Optional list of peer addresses you should connect to.
 Yggdrasil's @code{Peers} analogue.
 
+@vindex AllowedPublicKeys
 @item
 Optional list of allowed peer public keys, allowed for incoming peering
 connections from. Yggdrasil's @code{AllowedPublicKeys} analogue.