I sent this to cinap earlier, who concurred.
Given the comment /* remove all addrs of responding server from list */ for(np = qp->dest; np < qp->curdest; np++) if(np->s == p->s) p->nx = Maxtrans;I wonder whether np->nx = Maxtrans was meant.