integration with existing SMTP servers. Single YAML configuration file.
Home page: http://www.nncpgo.org/
-Also available as I2P service:
-http://ryeyslcg6oajmyruje3weqayepze5e5oglxndhkavzfatgnxcd7q.b32.i2p/
Please send questions regarding the use of NNCP, bug reports and
patches to nncp-devel mailing list:
конфигурационный YAML файл.
Домашняя страница: http://www.nncpgo.org/
-Также доступная как I2P сервис:
-http://ryeyslcg6oajmyruje3weqayepze5e5oglxndhkavzfatgnxcd7q.b32.i2p/
Пожалуйста все вопросы касающиеся использования NNCP, отчёты об ошибках
и патчи отправляйте в nncp-devel почтовую рассылку:
@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.
@url{https://lists.cypherpunks.ru/pipermail/nncp-devel/, nncp-devel}
mailing list. Announcements also go to this mailing list.
-Official website is @url{http://www.nncpgo.org/}, also available as
-@url{https://geti2p.net/en/, I2P} service
-@url{http://ryeyslcg6oajmyruje3weqayepze5e5oglxndhkavzfatgnxcd7q.b32.i2p/}.
+Official website is @url{http://www.nncpgo.org/}.
@multitable {XXXXX} {XXXX KiB} {link sign} {xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}
@headitem Version @tab Size @tab Tarball @tab SHA256 checksum
+@item @ref{Release 3.0, 3.0} @tab 993 KiB
+@tab @url{download/nncp-3.0.tar.xz, link} @url{download/nncp-3.0.tar.xz.sig, sign}
+@tab @code{248B2257 2F576E79 A19672E9 B82EB649 18FC95A9 194408C0 67EA4DD3 0468286D}
+
@item @ref{Release 2.0, 2.0} @tab 986 KiB
@tab @url{download/nncp-2.0.tar.xz, link} @url{download/nncp-2.0.tar.xz.sig, sign}
@tab @code{BEF31B13 FB25381E A511FB77 067798AB 27409238 BDF5600F E2EADB29 E5E78996}
@tab @code{8F71D65B 70865EBF FE802CDF A5C14D00 A9FD6559 FD722E60 5D97E82C 5E2412C2}
@end multitable
-
-Also you can try its @ref{Contacts, .i2p} version.
Possibly NNCP package already exists for your distribution:
@itemize
-@item @url{https://github.com/voidlinux/void-packages/blob/master/srcpkgs/nncp/template, Void Linux}
@item @url{https://www.freshports.org/net/nncp/, FreeBSD ports}
+@item @url{https://github.com/voidlinux/void-packages/blob/master/srcpkgs/nncp/template, Void Linux}
@end itemize
NNCP should run on any POSIX-compatible operating system.
@node Postfix
@section Integration with Postfix
-This section is taken from @url{http://www.postfix.org/nncp_README.html,
+This section is taken from @url{http://www.postfix.org/UUCP_README.html,
Postfix and UUCP} manual and just replaces UUCP-related calls with NNCP
ones.
Then you could verify tarballs signature:
@verbatim
-% gpg --verify nncp-0.1.tar.xz.sig nncp-0.1.tar.xz
+% gpg --verify nncp-3.1.tar.xz.sig nncp-3.1.tar.xz
@end verbatim
@node Новости
@section Новости
+@node Релиз 3.1
+@subsection Релиз 3.1
+@itemize
+@item
+Возможность отключать пересылку через промежуточные ноды используя
+@verb{|-via -|} опцию командной строки.
+@end itemize
+
@node Релиз 3.0
@subsection Релиз 3.0
@itemize
See also this page @ref{Новости, on russian}.
+@node Release 3.1
+@section Release 3.1
+@itemize
+@item
+Ability to disable relaying at all using @verb{|-via -|} command line option.
+@end itemize
+
@node Release 3.0
@section Release 3.0
@itemize
@node General
@subsection General installation instructions
-@verbatim
-% wget http://www.nncpgo.org/download/nncp-0.1.tar.xz
-% wget http://www.nncpgo.org/download/nncp-0.1.tar.xz.sig
-% gpg --verify nncp-0.1.tar.xz.sig nncp-0.1.tar.xz
-% tar xf nncp-0.1.tar.xz
-% make -C nncp-0.1 all
-@end verbatim
-
-There is @command{install} target respecting @env{DESTDIR}. It will
-install binaries and info-documentation.
-
-@node FreeBSD
-@subsection FreeBSD installation instructions
-
Look @ref{Integrity, here} for finding public keys for tarball authentication.
@verbatim
-# pkg install go
+% wget http://www.nncpgo.org/download/nncp-3.1.tar.xz
+% wget http://www.nncpgo.org/download/nncp-3.1.tar.xz.sig
+% gpg --verify nncp-3.1.tar.xz.sig nncp-3.1.tar.xz
+% xz -d nncp-3.1.tar.xz
+% tar xf nncp-3.1.tar
+% make -C nncp-3.1 all
@end verbatim
-follow @ref{General, general} installation instructions
-
-@verbatim
-# make -C nncp-0.1 install
-@end verbatim
+There is @command{install} target respecting @env{DESTDIR}. It will
+install binaries and info-documentation.
@node Ubuntu
@subsection Ubuntu installation instructions
follow @ref{General, general} installation instructions
@verbatim
-# make -C nncp-0.1 install PREFIX=/usr
+# make -C nncp-3.1 install PREFIX=/usr
@end verbatim
@item Ubuntu 14.04
@verbatim
# apt-get install golang-1.6
-% wget http://www.nncpgo.org/download/nncp-0.1.tar.xz
-% wget http://www.nncpgo.org/download/nncp-0.1.tar.xz.sig
-% gpg --verify nncp-0.1.tar.xz.sig nncp-0.1.tar.xz
-% tar xf nncp-0.1.tar.xz
-% PATH=/usr/lib/go-1.6/bin:$PATH make -C nncp-0.1 all
-# make -C nncp-0.1 install PREFIX=/usr
+% wget http://www.nncpgo.org/download/nncp-3.1.tar.xz
+% wget http://www.nncpgo.org/download/nncp-3.1.tar.xz.sig
+% gpg --verify nncp-3.1.tar.xz.sig nncp-3.1.tar.xz
+% tar xf nncp-3.1.tar.xz
+% PATH=/usr/lib/go-1.6/bin:$PATH make -C nncp-3.1 all
+# make -C nncp-3.1 install PREFIX=/usr
@end verbatim
@end table
% git checkout develop
% git submodule update --init
@end verbatim
+
+Also there is mirror of dependent libraries for safety if their native
+repositories will be unavailable (they are seldom updated):
+
+@multitable @columnfractions .50 .50
+@headitem Software/library @tab Mirror
+@item @code{github.com/davecgh/go-xdr} @tab @url{git://git.cypherpunks.ru/go-xdr.git}
+@item @code{github.com/dustin/go-humanize} @tab @url{git://git.cypherpunks.ru/go-humanize.git}
+@item @code{github.com/flynn/noise} @tab @url{git://git.cypherpunks.ru/noise.git}
+@item @code{github.com/gorhill/cronexpr} @tab @url{git://git.cypherpunks.ru/cronexpr.git}
+@item @code{golang.org/x/crypto} @tab @url{git://git.cypherpunks.ru/crypto.git}
+@item @code{golang.org/x/net} @tab @url{git://git.cypherpunks.ru/net.git}
+@item @code{golang.org/x/sys} @tab @url{git://git.cypherpunks.ru/sys.git}
+@item @code{gopkg.in/check.v1} @tab @url{git://git.cypherpunks.ru/check.git}
+@item @code{gopkg.in/yaml.v2} @tab @url{git://git.cypherpunks.ru/yaml.git}
+@end multitable
golang.org/x/crypto/chacha20poly1305
golang.org/x/crypto/curve25519
golang.org/x/crypto/ed25519
+golang.org/x/crypto/internal/chacha20
golang.org/x/crypto/nacl
golang.org/x/crypto/poly1305
golang.org/x/crypto/salsa20
------------------------ >8 ------------------------
NNCP's home page is: http://www.nncpgo.org/
-Also available as I2P service:
-http://ryeyslcg6oajmyruje3weqayepze5e5oglxndhkavzfatgnxcd7q.b32.i2p/
Source code and its signature for that version can be found here:
------------------------ >8 ------------------------
Домашняя страница NNCP: http://www.nncpgo.org/
-Также доступная как I2P сервис:
-http://ryeyslcg6oajmyruje3weqayepze5e5oglxndhkavzfatgnxcd7q.b32.i2p/
Коротко об утилитах: http://www.nncpgo.org/Ob-utilitakh.html
Исходный код и его подпись для этой версии находятся здесь:
# $FreeBSD: head/net/nncp/Makefile 460314 2018-01-29 16:17:45Z yuri $
PORTNAME= nncp
-DISTVERSION= 3.0
+DISTVERSION= 3.1
CATEGORIES= net
MASTER_SITES= http://www.nncpgo.org/download/
"io/ioutil"
"log"
"os"
- "strings"
"cypherpunks.ru/nncp"
)
log.Fatalln("Invalid NODE specified:", err)
}
- if *viaOverride != "" {
- vias := make([]*nncp.NodeId, 0, strings.Count(*viaOverride, ",")+1)
- for _, via := range strings.Split(*viaOverride, ",") {
- foundNodeId, err := ctx.FindNode(via)
- if err != nil {
- log.Fatalln("Invalid Via node specified:", err)
- }
- vias = append(vias, foundNodeId.Id)
- }
- node.Via = vias
- }
+ nncp.ViaOverride(*viaOverride, ctx, node)
body, err := ioutil.ReadAll(bufio.NewReader(os.Stdin))
if err != nil {
log.Fatalln("Invalid NODE specified:", err)
}
- if *viaOverride != "" {
- vias := make([]*nncp.NodeId, 0, strings.Count(*viaOverride, ",")+1)
- for _, via := range strings.Split(*viaOverride, ",") {
- foundNodeId, err := ctx.FindNode(via)
- if err != nil {
- log.Fatalln("Invalid Via node specified:", err)
- }
- vias = append(vias, foundNodeId.Id)
- }
- node.Via = vias
- }
+ nncp.ViaOverride(*viaOverride, ctx, node)
var minSize int64
if *argMinSize < 0 {
log.Fatalln("Invalid NODE specified:", err)
}
- if *viaOverride != "" {
- vias := make([]*nncp.NodeId, 0, strings.Count(*viaOverride, ",")+1)
- for _, via := range strings.Split(*viaOverride, ",") {
- foundNodeId, err := ctx.FindNode(via)
- if err != nil {
- log.Fatalln("Invalid Via node specified:", err)
- }
- vias = append(vias, foundNodeId.Id)
- }
- node.Via = vias
- }
+ nncp.ViaOverride(*viaOverride, ctx, node)
var dst string
if flag.NArg() == 2 {
--- /dev/null
+/*
+NNCP -- Node to Node copy, utilities for store-and-forward data exchange
+Copyright (C) 2016-2018 Sergey Matveev <stargrave@stargrave.org>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package nncp
+
+import (
+ "log"
+ "strings"
+)
+
+// Helper function for parsing -via command line option
+func ViaOverride(argValue string, ctx *Ctx, node *Node) {
+ if argValue == "" {
+ return
+ }
+ if argValue == "-" {
+ node.Via = make([]*NodeId, 0)
+ return
+ }
+ vias := make([]*NodeId, 0, strings.Count(argValue, ",")+1)
+ for _, via := range strings.Split(argValue, ",") {
+ foundNodeId, err := ctx.FindNode(via)
+ if err != nil {
+ log.Fatalln("Invalid Via node specified:", err)
+ }
+ vias = append(vias, foundNodeId.Id)
+ }
+ node.Via = vias
+}
-Subproject commit bb3d318650d48840a39aa21a027c6630e198e626
+Subproject commit 02af3965c54e8cacf948b97fef38925c4120652c
-Subproject commit 01638cb52dafe42224b938fb517721f984c03100
+Subproject commit 2492fe189ae688d7edbeae0fd575de2f1c5fec8e
-Subproject commit d520615e531a6bf3fb69406b9eba718261285ec8
+Subproject commit 88b0669f7d75f171bd612b874e52b95c190218df
-Subproject commit 650f4a345ab4e5b245a3034b110ebc7299e68186
+Subproject commit ab813273cd59e1333f7ae7bff5d027d4aadf528c
-Subproject commit 136a25c244d3019482a795d728110278d6ba09a4
+Subproject commit dfa909b99c79129e1100513e5cd36307665e5723
-Subproject commit 37707fdb30a5b38865cfb95e5aab41707daec7fd
+Subproject commit c11f84a56e43e20a78cee75a7c034031ecf57d1f
-Subproject commit 287cf08546ab5e7e37d55a84f7ed3fd1db036de5
+Subproject commit 5420a8b6744d3b0345ab293f6fcba19c978f1183