aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Yang Bo <oakyang@gmail.com> 2020-06-12 14:01:28 +0800
committerGravatar GitHub <noreply@github.com> 2020-06-12 06:01:28 +0000
commit4734c0db458550484486609cf1d2f22f7933349c (patch)
tree33c783f7569b294d985990c26592a70f3f86c9dc
parent86df1282cb0a390a96b7960b7c43db8429c98003 (diff)
downloadcoredns-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.go4
-rw-r--r--plugin/k8s_external/msg_to_dns.go4
-rw-r--r--plugin/kubernetes/xfr.go7
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
}