X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=src%2Fcmd%2Fnncp-caller%2Fmain.go;fp=src%2Fcmd%2Fnncp-caller%2Fmain.go;h=e338ac95b5febdc887ef40c00dbcffb8cee09199;hb=369ef72fdf833e4d9d76be076dbaf45cf5ca1e62;hp=66b441ef2269845b35814bb6d98ae0859d3899fa;hpb=d1550141d5c5057a86debd5fe4de2fd72ecc1cab;p=nncp.git diff --git a/src/cmd/nncp-caller/main.go b/src/cmd/nncp-caller/main.go index 66b441e..e338ac9 100644 --- a/src/cmd/nncp-caller/main.go +++ b/src/cmd/nncp-caller/main.go @@ -121,19 +121,25 @@ func main() { } } + for _, ifiName := range ctx.MCDRxIfis { + if err = ctx.MCDRx(ifiName); err != nil { + log.Fatalln("Can not run MCD reception:", err) + } + } + var wg sync.WaitGroup for _, node := range nodes { for i, call := range node.Calls { wg.Add(1) go func(node *nncp.Node, i int, call *nncp.Call) { defer wg.Done() - var addrs []string + var addrsFromCfg []string if call.Addr == nil { for _, addr := range node.Addrs { - addrs = append(addrs, addr) + addrsFromCfg = append(addrsFromCfg, addr) } } else { - addrs = append(addrs, *call.Addr) + addrsFromCfg = append(addrsFromCfg, *call.Addr) } les := nncp.LEs{{K: "Node", V: node.Id}, {K: "CallIndex", V: i}} logMsg := func(les nncp.LEs) string { @@ -197,9 +203,22 @@ func main() { ) } + var addrs []string + if !call.MCDIgnore { + nncp.MCDAddrsM.RLock() + for _, mcdAddr := range nncp.MCDAddrs[*node.Id] { + ctx.LogD("caller", les, func(les nncp.LEs) string { + return logMsg(les) + ": adding MCD address: " + + mcdAddr.Addr.String() + }) + addrs = append(addrs, mcdAddr.Addr.String()) + } + nncp.MCDAddrsM.RUnlock() + } + ctx.CallNode( node, - addrs, + append(addrs, addrsFromCfg...), call.Nice, call.Xx, call.RxRate,