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 почтовую рассылку:
@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/}.
+Official website is @url{http://www.nncpgo.org/}, also available as
+@url{https://geti2p.net/en/, I2P} service
+@url{http://ryeyslcg6oajmyruje3weqayepze5e5oglxndhkavzfatgnxcd7q.b32.i2p/}.
@node Tarballs
@section Prepared tarballs
-You can obtain releases source code prepared tarballs from the links below
-(or use @url{https://sourceforge.net/projects/nncp/files/, Sourceforge mirror}).
+You can obtain releases source code prepared tarballs from the links below.
Do not forget to check tarball @ref{Integrity, integrity}.
Tarballs include all necessary required libraries:
@multitable @columnfractions .50 .50
@headitem Library @tab Licence
-@item @code{cypherpunks.ru/balloon} @tab GNU GPLv3+
+@item @code{cypherpunks.ru/balloon} @tab GNU LGPLv3+
@item @code{github.com/dustin/go-humanize} @tab MIT
@item @code{github.com/flynn/noise} @tab BSD 3-Clause
@item @code{github.com/go-check/check} @tab BSD 2-Clause
@multitable {XXXXX} {XXXX KiB} {link sign} {xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}
@headitem Version @tab Size @tab Tarball @tab SHA256 checksum
+@item @ref{Release 0.10, 0.10} @tab 949 KiB
+@tab @url{download/nncp-0.10.tar.xz, link} @url{download/nncp-0.10.tar.xz.sig, sign}
+@tab @code{DCE7C762 2F9281EB 282F1A67 5CA6500E 854F2DEC D60F3264 07872B91 4F4E6FA0}
+
@item @ref{Release 0.9, 0.9} @tab 942 KiB
@tab @url{download/nncp-0.9.tar.xz, link} @url{download/nncp-0.9.tar.xz.sig, sign}
@tab @code{8D0765A5 F9D81086 7E1F5AB4 52A9464D C5035CCB 4E09A29A 9C9A4934 1A72AB2C}
@tab @code{8F71D65B 70865EBF FE802CDF A5C14D00 A9FD6559 FD722E60 5D97E82C 5E2412C2}
@end multitable
+
+Also you can try its @ref{Contacts, .i2p} version.
@node Новости
@section Новости
+@node Релиз 0.11
+@subsection Релиз 0.11
+@itemize
+@item
+Вывод команды @command{nncp-stat} отсортирован по имены ноды.
+@end itemize
+
@node Релиз 0.10
@subsection Релиз 0.10
@itemize
See also this page @ref{Новости, on russian}.
+@node Release 0.11
+@section Release 0.11
+@itemize
+@item
+@command{nncp-stat}'s command output is sorted by node name.
+@end itemize
+
@node Release 0.10
@section Release 0.10
@itemize
------------------------ >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
Исходный код и его подпись для этой версии находятся здесь:
PORTNAME= nncp
PORTVERSION= 0.10
CATEGORIES= net
-MASTER_SITES= http://www.nncpgo.org/download/ \
- http://sourceforge.net/projects/nncp/files/
+MASTER_SITES= http://www.nncpgo.org/download/
MAINTAINER= stargrave@stargrave.org
COMMENT= Utilities for secure store-and-forward files and mail exchanging
-Subproject commit 2be074075c635f95406490655039988c8e3633d8
+Subproject commit 3cd3006ad829a0afc7ca3d964ff333ef068464bd
"io/ioutil"
"log"
"os"
+ "sort"
"cypherpunks.ru/nncp"
"github.com/dustin/go-humanize"
}
}
- for nodeId, node := range ctx.Neigh {
- if nodeOnly != nil && nodeId != *nodeOnly.Id {
+ nodeNames := make([]string, 0, len(ctx.Neigh))
+ nodeNameToNode := make(map[string]*nncp.Node, len(ctx.Neigh))
+ for _, node := range ctx.Neigh {
+ nodeNames = append(nodeNames, node.Name)
+ nodeNameToNode[node.Name] = node
+ }
+ sort.Strings(nodeNames)
+
+ var node *nncp.Node
+ for _, nodeName := range nodeNames {
+ node = nodeNameToNode[nodeName]
+ if nodeOnly != nil && *node.Id != *nodeOnly.Id {
continue
}
rxNums := make(map[uint8]int)
rxBytes := make(map[uint8]int64)
- for job := range ctx.Jobs(&nodeId, nncp.TRx) {
+ for job := range ctx.Jobs(node.Id, nncp.TRx) {
job.Fd.Close()
rxNums[job.PktEnc.Nice] = rxNums[job.PktEnc.Nice] + 1
rxBytes[job.PktEnc.Nice] = rxBytes[job.PktEnc.Nice] + job.Size
}
txNums := make(map[uint8]int)
txBytes := make(map[uint8]int64)
- for job := range ctx.Jobs(&nodeId, nncp.TTx) {
+ for job := range ctx.Jobs(node.Id, nncp.TTx) {
job.Fd.Close()
txNums[job.PktEnc.Nice] = txNums[job.PktEnc.Nice] + 1
txBytes[job.PktEnc.Nice] = txBytes[job.PktEnc.Nice] + job.Size
-Subproject commit c90ff622305fbe90de9cdc3a23a85b966e09c929
+Subproject commit 01cefa3e208b7260892d831b38b44bdbfd0f9f26
-Subproject commit 69be088f860613049aa58c65154d1b1d32bbdf90
+Subproject commit eb71ad9bd329b5ac0fd0148dd99bd62e8be8e035
-Subproject commit 1f9224279e98554b6a6432d4dd998a739f8b2b7c
+Subproject commit 1c05540f6879653db88113bc4a2b70aec4bd491f
-Subproject commit 94b76065f2d2081d0fef24a6e67c571f51a6408a
+Subproject commit 43e60d72a8e2bd92ee98319ba9a384a0e9837c08