Handle port as json.Number for DNS records in etcd (#8513)

This commit is contained in:
Harshavardhana 2019-11-12 14:42:35 -08:00 committed by GitHub
parent d97d53bddc
commit 2dad14974e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 12 additions and 11 deletions

View file

@ -103,7 +103,7 @@ func initFederatorBackend(buckets []BucketInfo, objLayer ObjectLayer) {
} }
// This is not for our server, so we can continue // This is not for our server, so we can continue
hostPort := net.JoinHostPort(dnsBuckets[index].Host, dnsBuckets[index].Port) hostPort := net.JoinHostPort(dnsBuckets[index].Host, string(dnsBuckets[index].Port))
if globalDomainIPs.Intersection(set.CreateStringSet(hostPort)).IsEmpty() { if globalDomainIPs.Intersection(set.CreateStringSet(hostPort)).IsEmpty() {
return nil return nil
} }

View file

@ -328,7 +328,7 @@ func isMinioReservedBucket(bucketName string) bool {
func getHostsSlice(records []dns.SrvRecord) []string { func getHostsSlice(records []dns.SrvRecord) []string {
var hosts []string var hosts []string
for _, r := range records { for _, r := range records {
hosts = append(hosts, net.JoinHostPort(r.Host, r.Port)) hosts = append(hosts, net.JoinHostPort(r.Host, string(r.Port)))
} }
return hosts return hosts
} }
@ -337,7 +337,7 @@ func getHostsSlice(records []dns.SrvRecord) []string {
func getHostFromSrv(records []dns.SrvRecord) string { func getHostFromSrv(records []dns.SrvRecord) string {
rand.Seed(time.Now().Unix()) rand.Seed(time.Now().Unix())
srvRecord := records[rand.Intn(len(records))] srvRecord := records[rand.Intn(len(records))]
return net.JoinHostPort(srvRecord.Host, srvRecord.Port) return net.JoinHostPort(srvRecord.Host, string(srvRecord.Port))
} }
// IsCompressed returns true if the object is marked as compressed. // IsCompressed returns true if the object is marked as compressed.

View file

@ -41,7 +41,7 @@ const etcdPathSeparator = "/"
func newCoreDNSMsg(ip string, port string, ttl uint32) ([]byte, error) { func newCoreDNSMsg(ip string, port string, ttl uint32) ([]byte, error) {
return json.Marshal(&SrvRecord{ return json.Marshal(&SrvRecord{
Host: ip, Host: ip,
Port: port, Port: json.Number(port),
TTL: ttl, TTL: ttl,
CreationDate: time.Now().UTC(), CreationDate: time.Now().UTC(),
}) })

View file

@ -17,6 +17,7 @@
package dns package dns
import ( import (
"encoding/json"
"time" "time"
) )
@ -28,13 +29,13 @@ const (
// SrvRecord - represents a DNS service record // SrvRecord - represents a DNS service record
type SrvRecord struct { type SrvRecord struct {
Host string `json:"host,omitempty"` Host string `json:"host,omitempty"`
Port string `json:"port,omitempty"` Port json.Number `json:"port,omitempty"`
Priority int `json:"priority,omitempty"` Priority int `json:"priority,omitempty"`
Weight int `json:"weight,omitempty"` Weight int `json:"weight,omitempty"`
Text string `json:"text,omitempty"` Text string `json:"text,omitempty"`
Mail bool `json:"mail,omitempty"` // Be an MX record. Priority becomes Preference. Mail bool `json:"mail,omitempty"` // Be an MX record. Priority becomes Preference.
TTL uint32 `json:"ttl,omitempty"` TTL uint32 `json:"ttl,omitempty"`
// Holds info about when the entry was created first. // Holds info about when the entry was created first.
CreationDate time.Time `json:"creationDate"` CreationDate time.Time `json:"creationDate"`