fmt.Fprintf(os.Stderr, nncp.UsageHeader())
fmt.Fprintf(os.Stderr, "nncp-ack -- send packet receipt acknowledgement\n\n")
fmt.Fprintf(os.Stderr, "Usage: %s [options] -all\n", os.Args[0])
- fmt.Fprintf(os.Stderr, "Usage: %s -node NODE[,...]\n", os.Args[0])
- fmt.Fprintf(os.Stderr, "Usage: %s -node NODE -pkt PKT\n", os.Args[0])
+ fmt.Fprintf(os.Stderr, "Usage: %s [options] -node NODE[,...]\n", os.Args[0])
+ fmt.Fprintf(os.Stderr, "Usage: %s [options] -node NODE -pkt PKT\n", os.Args[0])
fmt.Fprintln(os.Stderr, "Options:")
flag.PrintDefaults()
}
os.Exit(1)
}
+ acksCreated := os.NewFile(uintptr(4), "ACKsCreated")
+ if acksCreated == nil {
+ log.Fatalln("can not open FD:4")
+ }
+
if *pktRaw != "" {
if len(nodes) != 1 {
usage()
os.Exit(1)
}
nncp.ViaOverride(*viaOverride, ctx, nodes[0])
- if err = ctx.TxACK(nodes[0], nice, *pktRaw, minSize); err != nil {
+ pktName, err := ctx.TxACK(nodes[0], nice, *pktRaw, minSize)
+ if err != nil {
log.Fatalln(err)
}
+ acksCreated.WriteString(nodes[0].Id.String() + "/" + pktName + "\n")
return
}
continue
}
pipeR, pipeW := io.Pipe()
- go nncp.PktEncRead(ctx.Self, ctx.Neigh, bufio.NewReader(fd), pipeW, true, nil)
+ go nncp.PktEncRead(
+ ctx.Self,
+ ctx.Neigh,
+ bufio.NewReaderSize(fd, nncp.MTHBlockSize),
+ pipeW, true, nil,
+ )
var pkt nncp.Pkt
_, err = xdr.Unmarshal(pipeR, &pkt)
fd.Close()
})
continue
}
- if err = ctx.TxACK(node, nice, pktName, minSize); err != nil {
+ newPktName, err := ctx.TxACK(node, nice, pktName, minSize)
+ if err != nil {
log.Fatalln(err)
}
+ acksCreated.WriteString(node.Id.String() + "/" + newPktName + "\n")
}
}
if isBad {