]> Cypherpunks.ru repositories - nncp.git/commitdiff
Merge branch 'develop' v8.8.0
authorSergey Matveev <stargrave@stargrave.org>
Sun, 4 Sep 2022 14:24:40 +0000 (17:24 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Sun, 4 Sep 2022 14:24:40 +0000 (17:24 +0300)
22 files changed:
doc/.well-known/openpgpkey/nncpgo.org/hu/i4cdqgcarfjdjnba6y4jnf498asg8c6p.asc
doc/download.texi
doc/install.texi
doc/integration/warc.texi
doc/integrity.texi
doc/mirrors.texi
doc/news.ru.texi
doc/news.texi
doc/yggdrasil.texi
makedist.sh
src/check.go
src/cmd/nncp-ack/main.go
src/cmd/nncp-bundle/main.go
src/cmd/nncp-exec/main.go
src/cmd/nncp-reass/main.go
src/cmd/nncp-xfer/main.go
src/go.mod
src/go.sum
src/nncp.go
src/toss.go
src/tx.go
src/yggdrasil/tcpip.go

index e8cad95e61ed6fddd8a94e572ed4f3ae9de2deca..5615567b4582d277208b052e9c17df2627825590 100644 (file)
@@ -16,6 +16,8 @@ ozgKpXzt9bi10a1hthKluWcZD6Zc4InqQhAGXb2JB2a5wRTs8CkJtHadwBOD3JEt
 HjfhBAoZMYmhOBeHt87AG5OjFNRIOJ2rRacnRDA3E4h1BBARCAAdFiEEz2Domlkj
 HnbiY2QirhqBCeSYV+8FAlh0lxYACgkQrhqBCeSYV+9i1QD/bdLAY67nf5giI/wQ
 i6K7v6PTPFwG6TtG6jj68Cy13RgA/iMuKw7niLwyPWRKzWcMIG1YhVyCNCgKQvFL
-vdr6yKbN
-=R8E0
+vdr6yKbNiHUEEBYKAB0WIQQSrTJonGYNQmln/XXLggVjIQetigUCYuo7ggAKCRDL
+ggVjIQetipd7AQCDFrOVsnUUz0erg3Xja0AwEbaFvlCszMqw4WrER7N76wEAkPhR
+LTpxZzCiX0XH91+xCQVU+m5idln1affz7Dntnw4=
+=7iHk
 -----END PGP PUBLIC KEY BLOCK-----
index 8cd167851d59dba0431a08d04975355658a986e3..e88a98c4a148dd65639fd70a0cbd28ac41b5a9fc 100644 (file)
@@ -14,12 +14,12 @@ Tarballs include all necessary required libraries:
 @multitable @columnfractions .50 .50
 @headitem Library @tab Licence
 @item @code{github.com/davecgh/go-xdr} @tab ISC
-@item @code{github.com/dustin/go-humanize} @tab MIT
+@item @code{github.com/dustin/go-humanize} @tab Expat
 @item @code{github.com/flynn/noise} @tab BSD 3-Clause
 @item @code{github.com/fsnotify/fsnotify} @tab BSD 3-Clause
 @item @code{github.com/gorhill/cronexpr} @tab GNU GPLv3
-@item @code{github.com/gosuri/uilive} @tab MIT
-@item @code{github.com/hjson/hjson-go} @tab MIT
+@item @code{github.com/gosuri/uilive} @tab Expat
+@item @code{github.com/hjson/hjson-go} @tab Expat
 @item @code{github.com/klauspost/compress} @tab BSD 3-Clause
 @item @code{github.com/klauspost/cpuid} @tab BSD 3-Clause
 @item @code{go.cypherpunks.ru/balloon} @tab GNU LGPLv3
@@ -29,7 +29,7 @@ Tarballs include all necessary required libraries:
 @item @code{golang.org/x/sys} @tab BSD 3-Clause
 @item @code{golang.org/x/term} @tab BSD 3-Clause
 @item @code{golang.org/x/time} @tab BSD 3-Clause
-@item @code{lukechampine.com/blake3} @tab MIT
+@item @code{lukechampine.com/blake3} @tab Expat
 @end multitable
 
 And additional ones for Yggdrasil support:
@@ -40,15 +40,22 @@ And additional ones for Yggdrasil support:
 @item @code{github.com/Arceliar/phony} @tab MPLv2
 @item @code{github.com/gologme/log} @tab BSD 3-Clause
 @item @code{github.com/google/btree} @tab Apache 2.0
-@item @code{github.com/huandu/xstrings} @tab MIT
+@item @code{github.com/huandu/xstrings} @tab Expat
 @item @code{github.com/yggdrasil-network/yggdrasil-go} @tab GNU LGPLv3
 @item @code{golang.org/x/term} @tab BSD 3-Clause
-@item @code{inet.af/netstack} @tab Apache 2.0
+@item @code{gvisor.dev/gvisor} @tab Apache 2.0
 @end multitable
 
 @multitable {XXXXX} {XXXX-XX-XX} {XXXX KiB} {meta4 link sig} {xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}
 @headitem Version @tab Date @tab Size @tab Tarball @tab SHA256 checksum
 
+@item @ref{Release 8_7_2, 8.7.2} @tab 2022-03-13 @tab 1673 KiB
+@tab
+    @url{download/nncp-8.7.2.tar.xz.meta4, meta4}
+    @url{download/nncp-8.7.2.tar.xz, link}
+    @url{download/nncp-8.7.2.tar.xz.sig, sig}
+@tab @code{A0EEC9B0 F33059DE 33F13084 599805D0 F4A1C8C3 79E925BA CFE8DC94 D1DDC23D}
+
 @item @ref{Release 8_7_1, 8.7.1} @tab 2022-03-09 @tab 1669 KiB
 @tab
     @url{download/nncp-8.7.1.tar.xz.meta4, meta4}
index e948d811a54bb803d7e112050e57eb58552c9bcb..6850354c1ccc41ae73411d9f7b9f0b75dbce4536 100644 (file)
@@ -40,7 +40,7 @@ NNCP should run on any POSIX-compatible operating system.
 @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.
+and you have to install Go compiler 1.17+ version.
 @url{http://cr.yp.to/redo.html, redo} build system is recommended for
 convenience. @url{https://www.gnu.org/software/texinfo/, Texinfo} is
 used for building documentation (although tarballs already include it).
index 4c5872906e7df18cb93b1e12216f84829946170d..f449ed5556834fa534f11c30a2712bcd2e15453f 100644 (file)
@@ -64,6 +64,10 @@ $ wget [--page-requisites] [--recursive] \
     [@dots{}] http://www.example.com/
 @end example
 
+@pindex crawl
+Or even more simpler @url{https://git.jordan.im/crawl/tree/README.md, crawl}
+utility written on Go too.
+
 @pindex tofuproxy
 That command will create @file{www.example.com-XXX.warc} web archive.
 It could produce specialized segmented
index 7ece02c9ef480fdc105c2a2e6e3eab675c1191e0..fcc114a9da97e21850ac339870599a0bee8aa7a6 100644 (file)
@@ -27,7 +27,7 @@ uid   NNCP releases <releases at nncpgo dot org>
 @item
 @example
 $ gpg --auto-key-locate dane --locate-keys releases at nncpgo dot org
-$ gpg --auto-key-locate wkd --locate-keys releases at nncpgo dot org
+$ gpg --auto-key-locate  wkd --locate-keys releases at nncpgo dot org
 @end example
 
 @item
index 315543a696e2f2ff74fba4d21be6c769177a6ef1..f5f514fd95a8adf4f29681ae13eb7bcdc5aef533 100644 (file)
@@ -3,10 +3,9 @@
 @unnumbered Mirrors
 
 Main NNCP website is hosted on two geographically distant servers
-located in Moscow region, Russian Federation. One of server's IPv6
-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.
+located in Moscow region, Russian Federation. 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
@@ -18,7 +17,7 @@ in turn can be authenticated with
 @url{https://dnscurve.org/, DNSCurve}-secured
 @url{http://www.stargrave.org/Trust-anchor.html, trust anchors}.
 Both @code{ca.cypherpunks.ru} and DNSCurve trust anchors are
-signed with @code{CF60 E89A 5923 1E76 E263 6422 AE1A 8109 E498 57EF}
+signed with @code{12AD 3268 9C66 0D42 6967  FD75 CB82 0563 2107 AD8A}
 @url{https://en.wikipedia.org/wiki/OpenPGP, OpenPGP}
 @url{http://www.stargrave.org/Contacts.html, public key}.
 
@@ -30,12 +29,12 @@ accessible address: @url{http://y.www.nncpgo.org/}.
 @cindex quux.org
 @item @url{https://nncp.mirrors.quux.org/}
 
-Its creation @url{http://lists.cypherpunks.ru/archive/nncp-devel/2108/0310.html, announcement}.
+Its creation @url{http://lists.cypherpunks.ru/archive/nncp-devel/87lf5fjvwb.fsf@@complete.org/T/, announcement}.
 Mirror of the whole NNCP's website with all tarballs, made by John Goerzen.
 It uses @url{https://letsencrypt.org/, Let's Encrypt} certificate
 authority, so can be more easily accessible for some people. If you have
 got NNCP-peering with
-@url{http://lists.cypherpunks.ru/archive/nncp-devel/2108/0283.html, nncp.quux.org}
+@url{http://lists.cypherpunks.ru/archive/nncp-devel/20210731121239.j3grg2di22vfc6ne@@faeroes.freeshell.org/T/, nncp.quux.org}
 node, then you can also @ref{nncp-freq, freq} the @ref{Tarballs, tarballs}
 from it.
 
index bfc287c6221bf099c658a48d3604a6f28402c157..e305914446c178c5db352cdb512da9ce0977c759 100644 (file)
@@ -1,6 +1,21 @@
 @node Новости
 @section Новости
 
+@node Релиз 8.8.0
+@subsection Релиз 8.8.0
+@itemize
+
+@item
+Исправлена невозможность сборки под Go 1.19.
+
+@item
+Минимальная требуемая версия Go 1.17.
+
+@item
+Обновлены зависимые библиотеки.
+
+@end itemize
+
 @node Релиз 8.7.2
 @subsection Релиз 8.7.2
 @itemize
index 326308a808397de059a281e7cc20c763e46e7245..c640a9955386de4b7cb997670079abc710312eaf 100644 (file)
@@ -4,6 +4,21 @@
 
 See also this page @ref{Новости, on russian}.
 
+@node Release 8_8_0
+@section Release 8.8.0
+@itemize
+
+@item
+Fixed buildability under Go 1.19.
+
+@item
+Minimal required Go version is 1.17.
+
+@item
+Updated dependencies.
+
+@end itemize
+
 @node Release 8_7_2
 @section Release 8.7.2
 @itemize
@@ -412,7 +427,7 @@ the check in infinite cycle.
 @itemize
 
 @item
-Minimal required Go version 1.13.
+Minimal required Go version is 1.13.
 
 @item
 Merkle Tree-based Hashing with BLAKE3 (MTH) is used instead of BLAKE2b.
index 649237544c360380e1bbdaae1212488e8e0e60dc..054da5e407551b99536f4fbc1383a1ebb5c965dd 100644 (file)
@@ -109,8 +109,8 @@ $ nncp-daemon -yggdrasil "yggdrasils://571f...07ea:6789"\
 "&pub=c6b7...9469"\
 "&pub=eb2d...ca07"\
 "&peer=tcp://example.com:2345"\
-"&peer=tcp://another.peer:3456%3Fkey=f879...2e9b"
-"&mcast=.*:5400"
+"&peer=tcp://another.peer:3456%3Fkey=f879...2e9b"\
+"&mcast=.*:5400"\
 "&mcast=lo0"
 @end example
 
index 00c1bb0560e370f446b1277c96f62bd9945169c7..245ae6c547a0d2896b88db7609dd792b4b94644a 100755 (executable)
@@ -19,7 +19,7 @@ rm -r \
     github.com/hjson/hjson-go/build_release.sh \
     github.com/klauspost/compress/gen.sh \
     github.com/klauspost/compress/gzhttp \
-    github.com/klauspost/compress/internal \
+    github.com/klauspost/compress/internal/snapref \
     github.com/klauspost/compress/s2* \
     github.com/klauspost/compress/snappy \
     github.com/klauspost/compress/zstd/snappy.go \
@@ -36,7 +36,7 @@ find . \( \
     -name .gitattributes \) -delete
 
 mkdir contrib
-cp ~/work/redo/minimal/do contrib/do
+cp ~/work/redo/apenwarr/minimal/do contrib/do
 
 cat > doc/download.texi <<EOF
 @node Tarballs
index 5872a1ffd8282cf8639c7ec786590ea4e1fc41af..bd191034fe5191c5bf5136eabf377713792d7206 100644 (file)
@@ -37,7 +37,11 @@ func Check(
        showPrgrs bool,
 ) (bool, error) {
        hsh := MTHNew(size, 0)
-       if _, err := CopyProgressed(hsh, bufio.NewReaderSize(src, MTHSize), "check", les, showPrgrs); err != nil {
+       if _, err := CopyProgressed(
+               hsh,
+               bufio.NewReaderSize(src, MTHBlockSize),
+               "check", les, showPrgrs,
+       ); err != nil {
                return false, err
        }
        return bytes.Compare(hsh.Sum(nil), checksum) == 0, nil
@@ -104,7 +108,7 @@ func (ctx *Ctx) CheckNoCK(nodeId *NodeId, hshValue *[MTHSize]byte, mth MTH) (int
                gut, err = Check(fd, size, hshValue[:], les, ctx.ShowPrgrs)
        } else {
                if _, err = mth.PreaddFrom(
-                       bufio.NewReaderSize(fd, MTHSize),
+                       bufio.NewReaderSize(fd, MTHBlockSize),
                        pktName, ctx.ShowPrgrs,
                ); err != nil {
                        return 0, err
index d7e8f0185697ba364298f1d5aba10535c46ac6cc..098218aa356c45583167a5f032305d28e53bcd89 100644 (file)
@@ -206,7 +206,12 @@ func main() {
                                continue
                        }
                        pipeR, pipeW := io.Pipe()
-                       go nncp.PktEncRead(ctx.Self, ctx.Neigh, bufio.NewReader(fd), pipeW, true, nil)
+                       go nncp.PktEncRead(
+                               ctx.Self,
+                               ctx.Neigh,
+                               bufio.NewReaderSize(fd, nncp.MTHBlockSize),
+                               pipeW, true, nil,
+                       )
                        var pkt nncp.Pkt
                        _, err = xdr.Unmarshal(pipeR, &pkt)
                        fd.Close()
index 071ecea039f4ff0fb5af801710790d4fa56f794c..28423b42fd031740507a677534c895162ddfc96a 100644 (file)
@@ -37,10 +37,6 @@ import (
        "go.cypherpunks.ru/nncp/v8"
 )
 
-const (
-       CopyBufSize = 1 << 17
-)
-
 func usage() {
        fmt.Fprintf(os.Stderr, nncp.UsageHeader())
        fmt.Fprintf(os.Stderr, "nncp-bundle -- Create/digest stream of NNCP encrypted packets\n\n")
@@ -165,7 +161,7 @@ func main() {
                                        log.Fatalln("Error writing tar header:", err)
                                }
                                if _, err = nncp.CopyProgressed(
-                                       tarWr, bufio.NewReader(fd), "Tx",
+                                       tarWr, bufio.NewReaderSize(fd, nncp.MTHBlockSize), "Tx",
                                        append(les, nncp.LEs{
                                                {K: "Pkt", V: nncp.Base32Codec.EncodeToString(job.HshValue[:])},
                                                {K: "FullSize", V: job.Size},
@@ -208,11 +204,11 @@ func main() {
                        log.Fatalln("Error during tar closing:", err)
                }
        } else {
-               bufStdin := bufio.NewReaderSize(os.Stdin, CopyBufSize*2)
+               bufStdin := bufio.NewReaderSize(os.Stdin, nncp.MTHBlockSize*2)
                pktEncBuf := make([]byte, nncp.PktEncOverhead)
                var pktEnc *nncp.PktEnc
                for {
-                       peeked, err := bufStdin.Peek(CopyBufSize)
+                       peeked, err := bufStdin.Peek(nncp.MTHBlockSize)
                        if err != nil && err != io.EOF {
                                log.Fatalln("Error during reading:", err)
                        }
@@ -473,7 +469,7 @@ func main() {
                                        if err != nil {
                                                log.Fatalln("Error during temporary file creation:", err)
                                        }
-                                       bufTmp := bufio.NewWriterSize(tmp, CopyBufSize)
+                                       bufTmp := bufio.NewWriterSize(tmp, nncp.MTHBlockSize)
                                        if _, err = bufTmp.Write(pktEncBuf); err != nil {
                                                log.Fatalln("Error during writing:", err)
                                        }
index 5883c1e60a3cfc40e6825b39c868e87f77820321..aa2ab74895cce66d152883df6c6234521f4aff5f 100644 (file)
@@ -125,7 +125,7 @@ func main() {
                replyNice,
                flag.Args()[1],
                flag.Args()[2:],
-               bufio.NewReader(os.Stdin),
+               bufio.NewReaderSize(os.Stdin, nncp.MTHBlockSize),
                int64(*minSize)*1024,
                maxSize,
                *noCompress,
index d095f95d041ba4b1c99cc2513828f2e2cce057b7..77d1c7ee600c1c34f38424bb507ac917c951288d 100644 (file)
@@ -157,7 +157,7 @@ func process(ctx *nncp.Ctx, path string, keep, dryRun, stdout, dumpMeta bool) bo
                }
                hsh = nncp.MTHNew(fi.Size(), 0)
                if _, err = nncp.CopyProgressed(
-                       hsh, bufio.NewReader(fd), "check",
+                       hsh, bufio.NewReaderSize(fd, nncp.MTHBlockSize), "check",
                        nncp.LEs{{K: "Pkt", V: chunkPath}, {K: "FullSize", V: fi.Size()}},
                        ctx.ShowPrgrs,
                ); err != nil {
@@ -213,7 +213,7 @@ func process(ctx *nncp.Ctx, path string, keep, dryRun, stdout, dumpMeta bool) bo
                        log.Fatalln("Can not stat file:", err)
                }
                if _, err = nncp.CopyProgressed(
-                       dstW, bufio.NewReader(fd), "reass",
+                       dstW, bufio.NewReaderSize(fd, nncp.MTHBlockSize), "reass",
                        nncp.LEs{{K: "Pkt", V: chunkPath}, {K: "FullSize", V: fi.Size()}},
                        ctx.ShowPrgrs,
                ); err != nil {
index 9c29b0284b1975b4da44fcd927a3cb5841901a32..dc522a85dbfc0818e07b79d405a3898d34646c11 100644 (file)
@@ -293,7 +293,9 @@ func main() {
                        }
                        r, w := io.Pipe()
                        go func() {
-                               _, err := io.CopyN(w, bufio.NewReader(fd), fiInt.Size())
+                               _, err := io.CopyN(
+                                       w, bufio.NewReaderSize(fd, nncp.MTHBlockSize), fiInt.Size(),
+                               )
                                if err == nil {
                                        err = w.Close()
                                }
@@ -477,7 +479,7 @@ Tx:
                        }
                        bufW := bufio.NewWriter(tmp)
                        copied, err := nncp.CopyProgressed(
-                               bufW, bufio.NewReader(fd), "Tx",
+                               bufW, bufio.NewReaderSize(fd, nncp.MTHBlockSize), "Tx",
                                append(les, nncp.LE{K: "FullSize", V: job.Size}),
                                ctx.ShowPrgrs,
                        )
index fb0eb03fa3f6d233edf9ff48b9211ec8dd8a2950..9933940c33a96fa394a4043385974afa319435b5 100644 (file)
@@ -7,21 +7,25 @@ require (
        github.com/flynn/noise v1.0.0
        github.com/fsnotify/fsnotify v1.5.1
        github.com/gologme/log v1.3.0
-       github.com/google/btree v1.0.1 // indirect
        github.com/gorhill/cronexpr v0.0.0-20180427100037-88b0669f7d75
-       github.com/hjson/hjson-go v3.1.0+incompatible
-       github.com/klauspost/compress v1.14.4
-       github.com/klauspost/cpuid/v2 v2.0.11 // indirect
+       github.com/hjson/hjson-go v3.3.0+incompatible
+       github.com/klauspost/compress v1.15.9
        github.com/yggdrasil-network/yggdrasil-go v0.4.2
        go.cypherpunks.ru/balloon v1.1.1
-       go.cypherpunks.ru/recfile v0.4.3
-       golang.org/x/crypto v0.0.0-20220214200702-86341886e292
-       golang.org/x/net v0.0.0-20220225172249-27dd8689420f
-       golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9
-       golang.org/x/term v0.0.0-20210927222741-03fcf44c2211
-       golang.org/x/time v0.0.0-20191024005414-555d28b269f0 // indirect
-       inet.af/netstack v0.0.0-20211120045802-8aa80cf23d3c
+       go.cypherpunks.ru/recfile v0.5.0
+       golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90
+       golang.org/x/net v0.0.0-20220826154423-83b083e8dc8b
+       golang.org/x/sys v0.0.0-20220829200755-d48e67d00261
+       golang.org/x/term v0.0.0-20220722155259-a9ba230a4035
+       gvisor.dev/gvisor v0.0.0-20220901235040-6ca97ef2ce1c
        lukechampine.com/blake3 v1.1.7
 )
 
-go 1.13
+require (
+       github.com/Arceliar/phony v0.0.0-20210209235338-dde1a8dca979 // indirect
+       github.com/google/btree v1.0.1 // indirect
+       github.com/klauspost/cpuid/v2 v2.1.1 // indirect
+       golang.org/x/time v0.0.0-20191024005414-555d28b269f0 // indirect
+)
+
+go 1.17
index b6fc52d6177ca7564d9001cfe9861bc50c968b65..21c29a1a20e204c78e70df86acb5f8e921b6fe59 100644 (file)
@@ -24,14 +24,15 @@ github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9
 github.com/gorhill/cronexpr v0.0.0-20180427100037-88b0669f7d75 h1:f0n1xnMSmBLzVfsMMvriDyA75NB/oBgILX2GcHXIQzY=
 github.com/gorhill/cronexpr v0.0.0-20180427100037-88b0669f7d75/go.mod h1:g2644b03hfBX9Ov0ZBDgXXens4rxSxmqFBbhvKv2yVA=
 github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=
-github.com/hjson/hjson-go v3.1.0+incompatible h1:DY/9yE8ey8Zv22bY+mHV1uk2yRy0h8tKhZ77hEdi0Aw=
 github.com/hjson/hjson-go v3.1.0+incompatible/go.mod h1:qsetwF8NlsTsOTwZTApNlTCerV+b2GjYRRcIk4JMFio=
+github.com/hjson/hjson-go v3.3.0+incompatible h1:Rqr+Ya+0aCJMjaE4s8E9YKvuJLuLVpEvz4ONum52vnI=
+github.com/hjson/hjson-go v3.3.0+incompatible/go.mod h1:qsetwF8NlsTsOTwZTApNlTCerV+b2GjYRRcIk4JMFio=
 github.com/kardianos/minwinsvc v1.0.0/go.mod h1:Bgd0oc+D0Qo3bBytmNtyRKVlp85dAloLKhfxanPFFRc=
-github.com/klauspost/compress v1.14.4 h1:eijASRJcobkVtSt81Olfh7JX43osYLwy5krOJo6YEu4=
-github.com/klauspost/compress v1.14.4/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
+github.com/klauspost/compress v1.15.9 h1:wKRjX6JRtDdrE9qwa4b/Cip7ACOshUI4smpCQanqjSY=
+github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU=
 github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
-github.com/klauspost/cpuid/v2 v2.0.11 h1:i2lw1Pm7Yi/4O6XCSyJWqEHI2MDw2FzUK6o/D21xn2A=
-github.com/klauspost/cpuid/v2 v2.0.11/go.mod h1:g2LTdtYhdyuGPqyWyv7qRAmj1WBqxuObKfj5c0PQa7c=
+github.com/klauspost/cpuid/v2 v2.1.1 h1:t0wUqjowdm8ezddV5k0tLWVklVuvLJpoHeb4WBdydm0=
+github.com/klauspost/cpuid/v2 v2.1.1/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY=
 github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=
 github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
 github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
@@ -54,23 +55,22 @@ github.com/yggdrasil-network/yggdrasil-go v0.4.2 h1:zqQDVyH1alUfT5ToFh8isGCBLTLN
 github.com/yggdrasil-network/yggdrasil-go v0.4.2/go.mod h1:/iMJjOrXRsjlFgqhWOPhecOKi7xHmHiY4/En3A42Fog=
 go.cypherpunks.ru/balloon v1.1.1 h1:ypHM1DRf/XuCrp9pDkTHg00CqZX/Np/APb//iHvDJTA=
 go.cypherpunks.ru/balloon v1.1.1/go.mod h1:k4s4ozrIrhpBjj78Z7LX8ZHxMQ+XE7DZUWl8gP2ojCo=
-go.cypherpunks.ru/recfile v0.4.3 h1:ephokihmV//p0ob6gx2FWXvm28/NBDbWTOJPUNahxO8=
-go.cypherpunks.ru/recfile v0.4.3/go.mod h1:sR+KajB+vzofL3SFVFwKt3Fke0FaCcN1g3YPNAhU3qI=
+go.cypherpunks.ru/recfile v0.5.0 h1:VM0H6yEaN4t9Yau4ikVwgH6IPdp2IzFJDm9CqoW/ob0=
+go.cypherpunks.ru/recfile v0.5.0/go.mod h1:sR+KajB+vzofL3SFVFwKt3Fke0FaCcN1g3YPNAhU3qI=
 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
 golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
 golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
 golang.org/x/crypto v0.0.0-20210506145944-38f3c27a63bf/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8=
 golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8=
-golang.org/x/crypto v0.0.0-20220214200702-86341886e292 h1:f+lwQ+GtmgoY+A2YaQxlSOnDjXcQ7ZRLWOHbC6HtRqE=
-golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
+golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90 h1:Y/gsMcFOcR+6S6f3YeMKl5g+dZMEWqcz5Czj/GWYbkM=
+golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
 golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
 golang.org/x/net v0.0.0-20210510120150-4163338589ed/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
 golang.org/x/net v0.0.0-20210610132358-84b48f89b13b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.0.0-20220225172249-27dd8689420f h1:oA4XRj0qtSt8Yo1Zms0CUlsT3KG69V2UGQWPBxujDmc=
-golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
+golang.org/x/net v0.0.0-20220826154423-83b083e8dc8b h1:ZmngSVLe/wycRns9MKikG9OWIEjGcGAkacif7oYQaUY=
+golang.org/x/net v0.0.0-20220826154423-83b083e8dc8b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -85,20 +85,18 @@ golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7w
 golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20210611083646-a4fc73990273/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9 h1:nhht2DYV/Sn3qOayu8lM+cU1ii9sTLUeBQwQQfUHtrs=
-golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220829200755-d48e67d00261 h1:v6hYoSR9T5oet+pMXwUWkbiVqx/63mlHjefrHmxwfeY=
+golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
-golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY=
-golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
+golang.org/x/term v0.0.0-20220722155259-a9ba230a4035 h1:Q5284mrmYTpACcm+eAKjKJH48BBwSyfJqmmGDTtT8Vc=
+golang.org/x/term v0.0.0-20220722155259-a9ba230a4035/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
 golang.org/x/text v0.3.7-0.20210503195748-5c7c50ebbd4f/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
-golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
 golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs=
 golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -107,7 +105,7 @@ golang.zx2c4.com/wireguard v0.0.0-20210604143328-f9b48a961cd2/go.mod h1:laHzsbfM
 golang.zx2c4.com/wireguard/windows v0.3.14/go.mod h1:3P4IEAsb+BjlKZmpUXgy74c0iX9AVwwr3WcVJ8nPgME=
 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
-inet.af/netstack v0.0.0-20211120045802-8aa80cf23d3c h1:nr31qYr+91rWD8klUkPx3eGTZzumCC414UJG1QRKZTc=
-inet.af/netstack v0.0.0-20211120045802-8aa80cf23d3c/go.mod h1:KOJdAzQzMLKzwFEdOOnrnSrLIhaFVB+NQoME/e5wllA=
+gvisor.dev/gvisor v0.0.0-20220901235040-6ca97ef2ce1c h1:m5lcgWnL3OElQNVyp3qcncItJ2c0sQlSGjYK2+nJTA4=
+gvisor.dev/gvisor v0.0.0-20220901235040-6ca97ef2ce1c/go.mod h1:TIvkJD0sxe8pIob3p6T8IzxXunlp6yfgktvTNp+DGNM=
 lukechampine.com/blake3 v1.1.7 h1:GgRMhmdsuK8+ii6UZFDL8Nb+VyMwadAgcJyfYHxG6n0=
 lukechampine.com/blake3 v1.1.7/go.mod h1:tkKEOtDkNtklkXtLNEOGNq5tcV90tJiA1vAA12R78LA=
index e51f92528d15bd1022b16046b4f902ed2b3e755e..31ba33be98d47461e70ba3d41225ed3d4619946e 100644 (file)
@@ -40,7 +40,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.`
 const Base32Encoded32Len = 52
 
 var (
-       Version string = "8.7.2"
+       Version string = "8.8.0"
 
        Base32Codec *base32.Encoding = base32.StdEncoding.WithPadding(base32.NoPadding)
 )
index 79cc50f496982c96b976c532fc47f327dfcdaf6c..d6c74c405cf069fc5f203525190a3b5315fd3b02 100644 (file)
@@ -1063,7 +1063,7 @@ func (ctx *Ctx) Toss(
                sharedKey, _, _, err = PktEncRead(
                        ctx.Self,
                        ctx.Neigh,
-                       bufio.NewReader(fd),
+                       bufio.NewReaderSize(fd, MTHBlockSize),
                        pipeWB,
                        sharedKey == nil,
                        sharedKey,
index e38084e1a7a3c01390987af3da42c8667d2ee4ab..f7f099b39f3239c34979388be784393c694cfda8 100644 (file)
--- a/src/tx.go
+++ b/src/tx.go
@@ -388,7 +388,9 @@ func prepareTxFile(srcPath string) (
                                fd.Close()
                                return w.CloseWithError(err)
                        }
-                       if _, err = io.Copy(tarWr, bufio.NewReader(fd)); err != nil {
+                       if _, err = io.Copy(
+                               tarWr, bufio.NewReaderSize(fd, MTHBlockSize),
+                       ); err != nil {
                                fd.Close()
                                return w.CloseWithError(err)
                        }
@@ -441,7 +443,7 @@ func (ctx *Ctx) TxFile(
                _, finalSize, pktName, err := ctx.Tx(
                        node, pkt, nice,
                        srcSize, minSize, maxSize,
-                       bufio.NewReader(reader), dstPath, areaId,
+                       bufio.NewReaderSize(reader, MTHBlockSize), dstPath, areaId,
                )
                les := LEs{
                        {"Type", "file"},
@@ -469,7 +471,7 @@ func (ctx *Ctx) TxFile(
                return err
        }
 
-       br := bufio.NewReader(reader)
+       br := bufio.NewReaderSize(reader, MTHBlockSize)
        var sizeFull int64
        var chunkNum int
        checksums := [][MTHSize]byte{}
index b602dc12422a02311ce672fc87166f2f12be2c52..a1a71acd3eab4fae041ad22e5a16d9c764bd4b4c 100644 (file)
@@ -31,13 +31,13 @@ import (
        iwt "github.com/Arceliar/ironwood/types"
        yaddr "github.com/yggdrasil-network/yggdrasil-go/src/address"
        "golang.org/x/crypto/ed25519"
-       "inet.af/netstack/tcpip"
-       "inet.af/netstack/tcpip/adapters/gonet"
-       "inet.af/netstack/tcpip/buffer"
-       "inet.af/netstack/tcpip/header"
-       "inet.af/netstack/tcpip/network/ipv6"
-       "inet.af/netstack/tcpip/stack"
-       "inet.af/netstack/tcpip/transport/tcp"
+       "gvisor.dev/gvisor/pkg/bufferv2"
+       "gvisor.dev/gvisor/pkg/tcpip"
+       "gvisor.dev/gvisor/pkg/tcpip/adapters/gonet"
+       "gvisor.dev/gvisor/pkg/tcpip/header"
+       "gvisor.dev/gvisor/pkg/tcpip/network/ipv6"
+       "gvisor.dev/gvisor/pkg/tcpip/stack"
+       "gvisor.dev/gvisor/pkg/tcpip/transport/tcp"
 )
 
 const IPv6HdrSize = 40
@@ -68,13 +68,9 @@ func (*TCPIPEndpoint) LinkAddress() tcpip.LinkAddress { return "" }
 
 func (*TCPIPEndpoint) Wait() {}
 
-func (e *TCPIPEndpoint) WritePacket(
-       _ stack.RouteInfo,
-       _ tcpip.NetworkProtocolNumber,
-       pkt *stack.PacketBuffer,
-) tcpip.Error {
-       vv := buffer.NewVectorisedView(pkt.Size(), pkt.Views())
-       n, err := vv.Read(e.writeBuf)
+func (e *TCPIPEndpoint) WritePacket(pkt *stack.PacketBuffer) tcpip.Error {
+       v := pkt.ToView()
+       n, err := v.Read(e.writeBuf)
        if err != nil {
                log.Println(err)
                return &tcpip.ErrAborted{}
@@ -93,12 +89,14 @@ func (e *TCPIPEndpoint) WritePacket(
        return nil
 }
 
-func (e *TCPIPEndpoint) WritePackets(
-       stack.RouteInfo,
-       stack.PacketBufferList,
-       tcpip.NetworkProtocolNumber,
-) (int, tcpip.Error) {
-       panic("not implemented")
+func (e *TCPIPEndpoint) WritePackets(pbs stack.PacketBufferList) (int, tcpip.Error) {
+       for i, pb := range pbs.AsSlice() {
+               err := e.WritePacket(pb)
+               if err != nil {
+                       return i + 1, err
+               }
+       }
+       return len(pbs.AsSlice()), nil
 }
 
 func (e *TCPIPEndpoint) WriteRawPacket(*stack.PacketBuffer) tcpip.Error {
@@ -107,13 +105,7 @@ func (e *TCPIPEndpoint) WriteRawPacket(*stack.PacketBuffer) tcpip.Error {
 
 func (*TCPIPEndpoint) ARPHardwareType() header.ARPHardwareType { return header.ARPHardwareNone }
 
-func (e *TCPIPEndpoint) AddHeader(
-       tcpip.LinkAddress,
-       tcpip.LinkAddress,
-       tcpip.NetworkProtocolNumber,
-       *stack.PacketBuffer,
-) {
-}
+func (e *TCPIPEndpoint) AddHeader(*stack.PacketBuffer) {}
 
 func convertToFullAddr(ip net.IP, port int) (tcpip.FullAddress, tcpip.NetworkProtocolNumber) {
        return tcpip.FullAddress{
@@ -193,11 +185,9 @@ func NewTCPIPEndpoint(
                                e.ipToAddr[ip] = from
                        }
                        pkb := stack.NewPacketBuffer(stack.PacketBufferOptions{
-                               Data: buffer.NewVectorisedView(n, []buffer.View{
-                                       buffer.NewViewFromBytes(e.readBuf[:n]),
-                               }),
+                               Payload: bufferv2.MakeWithData(e.readBuf[:n]),
                        })
-                       e.d.DeliverNetworkPacket("", "", ipv6.ProtocolNumber, pkb)
+                       e.d.DeliverNetworkPacket(ipv6.ProtocolNumber, pkb)
                }
        }()
        return &e, nil