X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=src%2Ftx.go;h=b0377ed9d34b3a7f91c67e451ee2b4683b22c0d6;hb=caee9815d0d54a90abed138666f056ccf8caf889;hp=0f7d2b8d9369627d4cbf52eb63b996b5874a22a5;hpb=a43910e6e9940fe088c38ec849bc983b54335d45;p=nncp.git diff --git a/src/tx.go b/src/tx.go index 0f7d2b8..b0377ed 100644 --- a/src/tx.go +++ b/src/tx.go @@ -1,6 +1,6 @@ /* NNCP -- Node to Node copy, utilities for store-and-forward data exchange -Copyright (C) 2016-2021 Sergey Matveev +Copyright (C) 2016-2022 Sergey Matveev 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 @@ -200,19 +200,24 @@ func (ctx *Ctx) Tx( }() var pktEncRaw []byte var pktEncMsg []byte + var payloadSize int64 if area != nil { - pktEncMsg = (<-results).pktEncRaw + r := <-results + payloadSize = r.size + pktEncMsg = r.pktEncRaw + wrappers-- } - var finalSize int64 for i := 0; i <= wrappers; i++ { r := <-results if r.err != nil { tmp.Fd.Close() - return nil, 0, err + return nil, 0, r.err } if r.pktEncRaw != nil { - finalSize = r.size pktEncRaw = r.pktEncRaw + if payloadSize == 0 { + payloadSize = r.size + } } } nodePath := filepath.Join(ctx.Spool, lastNode.Id.String()) @@ -261,7 +266,7 @@ func (ctx *Ctx) Tx( } ctx.LogI("tx-area", les, logMsg) } - return lastNode, finalSize, err + return lastNode, payloadSize, err } type DummyCloser struct{}