diff options
author | 2020-06-12 14:01:28 +0800 | |
---|---|---|
committer | 2020-06-12 06:01:28 +0000 | |
commit | 4734c0db458550484486609cf1d2f22f7933349c (patch) | |
tree | 33c783f7569b294d985990c26592a70f3f86c9dc | |
parent | 86df1282cb0a390a96b7960b7c43db8429c98003 (diff) | |
download | coredns-4734c0db458550484486609cf1d2f22f7933349c.tar.gz coredns-4734c0db458550484486609cf1d2f22f7933349c.tar.zst coredns-4734c0db458550484486609cf1d2f22f7933349c.zip |
weight for SRV records should be at least 1 (#3931)
Automatically submitted.
-rw-r--r-- | plugin/backend_lookup.go | 4 | ||||
-rw-r--r-- | plugin/k8s_external/msg_to_dns.go | 4 | ||||
-rw-r--r-- | plugin/kubernetes/xfr.go | 7 |
3 files changed, 14 insertions, 1 deletions
diff --git a/plugin/backend_lookup.go b/plugin/backend_lookup.go index c563295d6..9d7e366a3 100644 --- a/plugin/backend_lookup.go +++ b/plugin/backend_lookup.go @@ -185,6 +185,10 @@ func SRV(ctx context.Context, b ServiceBackend, zone string, state request.Reque w1 *= float64(serv.Weight) } weight := uint16(math.Floor(w1)) + // weight should be at least 1 + if weight == 0 { + weight = 1 + } what, ip := serv.HostType() diff --git a/plugin/k8s_external/msg_to_dns.go b/plugin/k8s_external/msg_to_dns.go index 14a198063..e61adf657 100644 --- a/plugin/k8s_external/msg_to_dns.go +++ b/plugin/k8s_external/msg_to_dns.go @@ -103,6 +103,10 @@ func (e *External) srv(services []msg.Service, state request.Request) (records, w1 *= float64(s.Weight) } weight := uint16(math.Floor(w1)) + // weight should be at least 1 + if weight == 0 { + weight = 1 + } what, ip := s.HostType() diff --git a/plugin/kubernetes/xfr.go b/plugin/kubernetes/xfr.go index 7759c5a47..a3a0d4a4a 100644 --- a/plugin/kubernetes/xfr.go +++ b/plugin/kubernetes/xfr.go @@ -228,6 +228,11 @@ func calcSRVWeight(numservices int) uint16 { } w[serv.Priority] += weight } + weight := uint16(math.Floor((100.0 / float64(w[0])) * 100)) + // weight should be at least 1 + if weight == 0 { + weight = 1 + } - return uint16(math.Floor((100.0 / float64(w[0])) * 100)) + return weight } |