Bug is confirmed by W.C.A. Wijngaards, he has provided a fix: Index: iterator/iter_delegpt.c =================================================================== - --- iterator/iter_delegpt.c (revision 3256) +++ iterator/iter_delegpt.c (working copy) @@ -147,7 +147,9 @@ { struct delegpt_addr* p = dp->target_list; while(p) { - - if(sockaddr_cmp_addr(addr, addrlen, &p->addr, p->addrlen)==0) { + if(sockaddr_cmp_addr(addr, addrlen, &p->addr, p->addrlen)==0 + && ((struct sockaddr_in*)addr)->sin_port == + ((struct sockaddr_in*)&p->addr)->sin_port) { return p; } p = p->next_target;
Fixed by r276605 in head (2015-01-03) and r285206 in stable/10 (2015-07-06).