]> Cypherpunks.ru repositories - nncp.git/blobdiff - src/cmd/nncp-daemon/main.go
Multicast areas
[nncp.git] / src / cmd / nncp-daemon / main.go
index 3d52dcc710ee9b4f3c7f43cb1f1b4f2a05f49b8e..b0628fe421a39c8ab37f21e8cb6f733d79b343c8 100644 (file)
@@ -29,7 +29,7 @@ import (
        "time"
 
        "github.com/dustin/go-humanize"
-       "go.cypherpunks.ru/nncp/v6"
+       "go.cypherpunks.ru/nncp/v7"
        "golang.org/x/net/netutil"
 )
 
@@ -72,6 +72,7 @@ func (c InetdConn) Close() error {
 func performSP(
        ctx *nncp.Ctx,
        conn nncp.ConnDeadlined,
+       addr string,
        nice uint8,
        noCK bool,
        nodeIdC chan *nncp.NodeId,
@@ -85,7 +86,9 @@ func performSP(
                ctx.LogI(
                        "call-started",
                        nncp.LEs{{K: "Node", V: state.Node.Id}},
-                       func(les nncp.LEs) string { return "Connection with " + state.Node.Name },
+                       func(les nncp.LEs) string {
+                               return fmt.Sprintf("Connection with %s (%s)", state.Node.Name, addr)
+                       },
                )
                nodeIdC <- state.Node.Id
                state.Wait()
@@ -102,7 +105,7 @@ func performSP(
                                state.Node.Name,
                                int(state.Duration.Hours()),
                                int(state.Duration.Minutes()),
-                               int(state.Duration.Seconds()/60),
+                               int(state.Duration.Seconds())%60,
                                humanize.IBytes(uint64(state.RxBytes)),
                                humanize.IBytes(uint64(state.RxSpeed)),
                                humanize.IBytes(uint64(state.TxBytes)),
@@ -154,6 +157,7 @@ func main() {
                autoTossNoFreq = flag.Bool("autotoss-nofreq", false, "Do not process \"freq\" packets during tossing")
                autoTossNoExec = flag.Bool("autotoss-noexec", false, "Do not process \"exec\" packets during tossing")
                autoTossNoTrns = flag.Bool("autotoss-notrns", false, "Do not process \"trns\" packets during tossing")
+               autoTossNoArea = flag.Bool("autotoss-noarea", false, "Do not process \"area\" packets during tossing")
        )
        log.SetFlags(log.Lshortfile)
        flag.Usage = usage
@@ -192,7 +196,7 @@ func main() {
                os.Stderr.Close() // #nosec G104
                conn := &InetdConn{os.Stdin, os.Stdout}
                nodeIdC := make(chan *nncp.NodeId)
-               go performSP(ctx, conn, nice, *noCK, nodeIdC)
+               go performSP(ctx, conn, "PIPE", nice, *noCK, nodeIdC)
                nodeId := <-nodeIdC
                var autoTossFinish chan struct{}
                var autoTossBadCode chan bool
@@ -205,6 +209,7 @@ func main() {
                                *autoTossNoFreq,
                                *autoTossNoExec,
                                *autoTossNoTrns,
+                               *autoTossNoArea,
                        )
                }
                <-nodeIdC // call completion
@@ -257,7 +262,7 @@ func main() {
                )
                go func(conn net.Conn) {
                        nodeIdC := make(chan *nncp.NodeId)
-                       go performSP(ctx, conn, nice, *noCK, nodeIdC)
+                       go performSP(ctx, conn, conn.RemoteAddr().String(), nice, *noCK, nodeIdC)
                        nodeId := <-nodeIdC
                        var autoTossFinish chan struct{}
                        var autoTossBadCode chan bool
@@ -270,6 +275,7 @@ func main() {
                                        *autoTossNoFreq,
                                        *autoTossNoExec,
                                        *autoTossNoTrns,
+                                       *autoTossNoArea,
                                )
                        }
                        <-nodeIdC // call completion