]> Cypherpunks.ru repositories - nncp.git/blobdiff - src/cypherpunks.ru/nncp/call.go
Merge branch 'develop'
[nncp.git] / src / cypherpunks.ru / nncp / call.go
index 853dbaec3df58d9b5b512818c2be6d1b78bd1a9c..56c51bfcd181ad5f13e2e66ae7209943e42bb0b8 100644 (file)
@@ -43,7 +43,9 @@ func (ctx *Ctx) CallNode(
        xxOnly TRxTx,
        rxRate, txRate int,
        onlineDeadline, maxOnlineTime uint,
-       listOnly bool) (isGood bool) {
+       listOnly bool,
+       onlyPkts map[[32]byte]bool,
+) (isGood bool) {
        for _, addr := range addrs {
                sds := SDS{"node": node.Id, "addr": addr}
                ctx.LogD("call", sds, "dialing")
@@ -53,18 +55,19 @@ func (ctx *Ctx) CallNode(
                        continue
                }
                ctx.LogD("call", sds, "connected")
-               state, err := ctx.StartI(
-                       conn,
-                       node.Id,
-                       nice,
-                       xxOnly,
-                       rxRate,
-                       txRate,
-                       onlineDeadline,
-                       maxOnlineTime,
-                       listOnly,
-               )
-               if err == nil {
+               state := SPState{
+                       Ctx:            ctx,
+                       Node:           node,
+                       Nice:           nice,
+                       onlineDeadline: onlineDeadline,
+                       maxOnlineTime:  maxOnlineTime,
+                       xxOnly:         xxOnly,
+                       rxRate:         rxRate,
+                       txRate:         txRate,
+                       listOnly:       listOnly,
+                       onlyPkts:       onlyPkts,
+               }
+               if err = state.StartI(conn); err == nil {
                        ctx.LogI("call-start", sds, "connected")
                        state.Wait()
                        ctx.LogI("call-finish", SDS{