diff --git a/lib/roken/resolve.c b/lib/roken/resolve.c index 42fdaa301..17484a716 100644 --- a/lib/roken/resolve.c +++ b/lib/roken/resolve.c @@ -672,8 +672,9 @@ rk_dns_srv_order(struct rk_dns_reply *r) if ((*tt)->u.srv->weight == 0) zeros++; } + /* With no zeros, add 0 and scale * 1 */ + sum += zeros ? zeros : zeros++; sum *= zeros; - sum += zeros; ee = tt; /* ss is now the first record of this priority and ee is the first of the next */