From da8052fefc3717e859257937e8b7d94fac5466fa Mon Sep 17 00:00:00 2001 From: Viktor Dukhovni Date: Sun, 13 Nov 2016 15:06:40 +1100 Subject: [PATCH] Don't scale SRV weights when none have weight zero --- lib/roken/resolve.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 */