]> Cypherpunks.ru repositories - nncp.git/blobdiff - src/tx.go
Do not shadow error during Tx
[nncp.git] / src / tx.go
index 0f7d2b8d9369627d4cbf52eb63b996b5874a22a5..b0377ed9d34b3a7f91c67e451ee2b4683b22c0d6 100644 (file)
--- 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 <stargrave@stargrave.org>
+Copyright (C) 2016-2022 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
@@ -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{}