@node Installation
@unnumbered Installation
-@set VERSION 5.2.1
+@set VERSION 5.3.0
Possibly NNCP package already exists for your distribution:
@node Новости
@section Новости
+@node Релиз 5.3.0
+@subsection Релиз 5.3.0
+@itemize
+
+@item
+Сообщения прогресса содержат префикс, поясняющий выполняемое действие.
+
+@end itemize
+
@node Релиз 5.2.1
@subsection Релиз 5.2.1
@itemize
See also this page @ref{Новости, on russian}.
+@node Release 5.3.0
+@section Release 5.3.0
+@itemize
+
+@item
+Progress messages contain prefix, describing the running action.
+
+@end itemize
+
@node Release 5.2.1
@section Release 5.2.1
@itemize
# $FreeBSD: head/net/nncp/Makefile 517819 2019-11-17 11:51:56Z dmgk $
PORTNAME= nncp
-DISTVERSION= 5.2.1
+DISTVERSION= 5.3.0
CATEGORIES= net
MASTER_SITES= http://www.nncpgo.org/download/
if err != nil {
log.Fatalln(err)
}
- if _, err = CopyProgressed(hsh, bufio.NewReader(src), sds, showPrgrs); err != nil {
+ if _, err = CopyProgressed(hsh, bufio.NewReader(src), "check", sds, showPrgrs); err != nil {
return false, err
}
return bytes.Compare(hsh.Sum(nil), checksum) == 0, nil
log.Fatalln("Error writing tar header:", err)
}
if _, err = nncp.CopyProgressed(
- tarWr, job.Fd,
+ tarWr, job.Fd, "Tx",
nncp.SdsAdd(sds, nncp.SDS{
"pkt": nncp.ToBase32(job.HshValue[:]),
"fullsize": job.Size,
log.Fatalln("Error during writing:", err)
}
if _, err = nncp.CopyProgressed(
- hsh, tarR,
+ hsh, tarR, "Rx",
nncp.SdsAdd(sds, nncp.SDS{"fullsize": entry.Size}),
ctx.ShowPrgrs,
); err != nil {
if _, err = hsh.Write(pktEncBuf); err != nil {
log.Fatalln("Error during writing:", err)
}
- if _, err = nncp.CopyProgressed(hsh, tarR, sds, ctx.ShowPrgrs); err != nil {
+ if _, err = nncp.CopyProgressed(hsh, tarR, "check", sds, ctx.ShowPrgrs); err != nil {
log.Fatalln("Error during copying:", err)
}
if nncp.ToBase32(hsh.Sum(nil)) != pktName {
if _, err = tmp.W.Write(pktEncBuf); err != nil {
log.Fatalln("Error during writing:", err)
}
- if _, err = nncp.CopyProgressed(tmp.W, tarR, sds, ctx.ShowPrgrs); err != nil {
+ if _, err = nncp.CopyProgressed(tmp.W, tarR, "check", sds, ctx.ShowPrgrs); err != nil {
log.Fatalln("Error during copying:", err)
}
if err = tmp.W.Flush(); err != nil {
}
} else {
if *dryRun {
- if _, err = nncp.CopyProgressed(ioutil.Discard, tarR, sds, ctx.ShowPrgrs); err != nil {
+ if _, err = nncp.CopyProgressed(ioutil.Discard, tarR, "Rx", sds, ctx.ShowPrgrs); err != nil {
log.Fatalln("Error during copying:", err)
}
} else {
if _, err = bufTmp.Write(pktEncBuf); err != nil {
log.Fatalln("Error during writing:", err)
}
- if _, err = nncp.CopyProgressed(bufTmp, tarR, sds, ctx.ShowPrgrs); err != nil {
+ if _, err = nncp.CopyProgressed(bufTmp, tarR, "Rx", sds, ctx.ShowPrgrs); err != nil {
log.Fatalln("Error during copying:", err)
}
if err = bufTmp.Flush(); err != nil {
if err != nil {
log.Fatalln(err)
}
- if _, err = nncp.CopyProgressed(hsh, bufio.NewReader(fd), nncp.SDS{
- "pkt": chunkPath,
- "fullsize": fi.Size(),
- }, ctx.ShowPrgrs); err != nil {
+ if _, err = nncp.CopyProgressed(
+ hsh, bufio.NewReader(fd), "check",
+ nncp.SDS{
+ "pkt": chunkPath,
+ "fullsize": fi.Size(),
+ },
+ ctx.ShowPrgrs,
+ ); err != nil {
log.Fatalln(err)
}
fd.Close()
if err != nil {
log.Fatalln("Can not stat file:", err)
}
- if _, err = nncp.CopyProgressed(dstW, bufio.NewReader(fd), nncp.SDS{
- "pkt": chunkPath,
- "fullsize": fi.Size(),
- }, ctx.ShowPrgrs); err != nil {
+ if _, err = nncp.CopyProgressed(
+ dstW, bufio.NewReader(fd), "reass",
+ nncp.SDS{
+ "pkt": chunkPath,
+ "fullsize": fi.Size(),
+ },
+ ctx.ShowPrgrs,
+ ); err != nil {
log.Fatalln(err)
}
fd.Close()
ctx.LogE("nncp-xfer", sds, err, "copy")
w.CloseWithError(err)
}()
- if _, err = nncp.CopyProgressed(tmp.W, r, nncp.SdsAdd(sds, nncp.SDS{
- "pkt": filename,
- "fullsize": sds["size"],
- }), ctx.ShowPrgrs); err != nil {
+ if _, err = nncp.CopyProgressed(
+ tmp.W, r, "Rx",
+ nncp.SdsAdd(sds, nncp.SDS{
+ "pkt": filename,
+ "fullsize": sds["size"],
+ }),
+ ctx.ShowPrgrs,
+ ); err != nil {
ctx.LogE("nncp-xfer", sds, err, "copy")
isBad = true
}
ctx.LogD("nncp-xfer", sds, "created")
bufW := bufio.NewWriter(tmp)
copied, err := nncp.CopyProgressed(
- bufW,
- bufio.NewReader(job.Fd),
+ bufW, bufio.NewReader(job.Fd), "Tx",
nncp.SdsAdd(sds, nncp.SDS{"fullsize": job.Size}),
ctx.ShowPrgrs,
)
"fmt"
"io"
"os"
- "strings"
"sync"
"time"
func CopyProgressed(
dst io.Writer,
src io.Reader,
+ prgrsPrefix string,
sds SDS,
showPrgrs bool,
) (written int64, err error) {
written += int64(nw)
if showPrgrs {
sds["size"] = written
- Progress(sds)
+ Progress(prgrsPrefix, sds)
}
}
if ew != nil {
return
}
-func Progress(sds SDS) {
- pkt := sds["pkt"].(string)
+func Progress(prefix string, sds SDS) {
var size int64
if sizeI, exists := sds["size"]; exists {
size = sizeI.(int64)
}
fullsize := sds["fullsize"].(int64)
+ pkt := sds["pkt"].(string)
progressBarsLock.RLock()
pb, exists := progressBars[pkt]
progressBarsLock.RUnlock()
if len(what) >= 52 { // Base32 encoded
what = what[:16] + ".." + what[len(what)-16:]
}
- if xx, exists := sds["xx"]; exists {
- what = strings.Title(xx.(string)) + " " + what
- }
+ what = prefix + " " + what
pb.Render(what, size)
if size >= fullsize {
pb.Kill()
sdsp["size"] = int64(ourSize)
sdsp["fullsize"] = fullSize
if state.Ctx.ShowPrgrs {
- Progress(sdsp)
+ Progress("Tx", sdsp)
}
state.Lock()
if len(state.queueTheir) > 0 && *state.queueTheir[0].freq.Hash == *freq.Hash {
sdsp["size"] = int64(ourSize)
sdsp["fullsize"] = int64(state.infosTheir[*file.Hash].Size)
if state.Ctx.ShowPrgrs {
- Progress(sdsp)
+ Progress("Rx", sdsp)
}
if state.infosTheir[*file.Hash].Size != ourSize {
state.RUnlock()
ctx.LogD("rx", sds, "created")
bufW := bufio.NewWriter(tmp)
if _, err = CopyProgressed(
- bufW,
- pipeR,
+ bufW, pipeR, "Rx file",
SdsAdd(sds, SDS{"fullsize": sds["size"]}),
ctx.ShowPrgrs,
); err != nil {
}
go func() {
_, err := CopyProgressed(
- tmp.W, pipeR,
- SDS{"xx": string(TTx), "pkt": pktName, "fullsize": curSize},
+ tmp.W, pipeR, "Tx",
+ SDS{"pkt": pktName, "fullsize": curSize},
ctx.ShowPrgrs,
)
errs <- err
if err != nil {
return err
}
- if _, err = CopyProgressed(tmp.W, src, SDS{
- "xx": string(TTx),
- "pkt": node.Id.String(),
- "fullsize": size,
- }, ctx.ShowPrgrs); err != nil {
+ if _, err = CopyProgressed(
+ tmp.W, src, "Tx trns",
+ SDS{"pkt": node.Id.String(), "fullsize": size},
+ ctx.ShowPrgrs,
+ ); err != nil {
return err
}
nodePath := filepath.Join(ctx.Spool, node.Id.String())