From a1443e916b45dca888ba0931c710d5560dbb6a9b Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Tue, 9 Nov 2021 13:31:56 +0300 Subject: [PATCH] .nncp.meta must contain payload size, not the full one --- doc/news.ru.texi | 4 ++++ doc/news.texi | 3 +++ src/tx.go | 12 ++++++++---- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/doc/news.ru.texi b/doc/news.ru.texi index 1599730..e3cd38c 100644 --- a/doc/news.ru.texi +++ b/doc/news.ru.texi @@ -9,6 +9,10 @@ Исправлено некорректное вычисление @code{freq.chunked} значения, при отсутствии которого всё равно форсированно включалась chunked передача. +@item +Исправлено некорректное вычисление значения полного размера файла в +@file{.nncp.meta}. + @end itemize @node Релиз 8.0.0 diff --git a/doc/news.texi b/doc/news.texi index 9a2e380..f0e71f9 100644 --- a/doc/news.texi +++ b/doc/news.texi @@ -11,6 +11,9 @@ See also this page @ref{Новости, on russian}. Fixed incorrect @code{freq.chunked} value calculation. If it missed, then anyway chunked transfer mode was forcefully turned on. +@item +Fixed incorrect full file's size calculation in @file{.nncp.meta}. + @end itemize @node Release 8_0_0 diff --git a/src/tx.go b/src/tx.go index 0f7d2b8..b8d47aa 100644 --- a/src/tx.go +++ b/src/tx.go @@ -200,10 +200,12 @@ 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 } - var finalSize int64 for i := 0; i <= wrappers; i++ { r := <-results if r.err != nil { @@ -211,8 +213,10 @@ func (ctx *Ctx) Tx( return nil, 0, 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 +265,7 @@ func (ctx *Ctx) Tx( } ctx.LogI("tx-area", les, logMsg) } - return lastNode, finalSize, err + return lastNode, payloadSize, err } type DummyCloser struct{} -- 2.44.0