+
+ if call.WhenTxExists && call.Xx != "TRx" {
+ ctx.LogD("caller", les, func(les nncp.LEs) string {
+ return logMsg(les) + ": checking tx existence"
+ })
+ txExists := false
+ for job := range ctx.Jobs(node.Id, nncp.TTx) {
+ if job.PktEnc.Nice > call.Nice {
+ continue
+ }
+ txExists = true
+ }
+ if !txExists {
+ ctx.LogD("caller-no-tx", les, func(les nncp.LEs) string {
+ return logMsg(les) + ": no tx"
+ })
+ node.Lock()
+ node.Busy = false
+ node.Unlock()
+ continue
+ }
+ }
+
+ var autoTossFinish chan struct{}
+ var autoTossBadCode chan bool
+ if call.AutoToss || *autoToss {
+ autoTossFinish, autoTossBadCode = ctx.AutoToss(
+ node.Id,
+ call.Nice,
+ call.AutoTossDoSeen || *autoTossDoSeen,
+ call.AutoTossNoFile || *autoTossNoFile,
+ call.AutoTossNoFreq || *autoTossNoFreq,
+ call.AutoTossNoExec || *autoTossNoExec,
+ call.AutoTossNoTrns || *autoTossNoTrns,
+ call.AutoTossNoArea || *autoTossNoArea,
+ )
+ }
+
+ 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()
+ }
+