diff --git a/CHANGES.md b/CHANGES.md index 0522239e..33462beb 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,5 +1,8 @@ # GeoDNS Changelog +## 2.4.4 + +* Fix parsing of 'targeting' option * Add server id and ip to _country responses for easier debugging. ## 2.4.3 diff --git a/dns/test.example.com.json b/dns/test.example.com.json index 386e846f..313ac5de 100644 --- a/dns/test.example.com.json +++ b/dns/test.example.com.json @@ -5,6 +5,7 @@ "stathat": true, "stathat_api": "abc-test" }, + "targeting": "country continent @ regiongroup region", "contact": "support.bitnames.com", "data" : { "": { diff --git a/geodns.go b/geodns.go index d837372d..800e0b4f 100644 --- a/geodns.go +++ b/geodns.go @@ -31,7 +31,7 @@ import ( ) // VERSION is the current version of GeoDNS -var VERSION string = "2.4.3" +var VERSION string = "2.4.4" var buildTime string var gitVersion string diff --git a/zones.go b/zones.go index 1da07523..857d03a0 100644 --- a/zones.go +++ b/zones.go @@ -158,23 +158,22 @@ func readZoneFile(zoneName, fileName string) (zone *Zone, zerr error) { //log.Printf("k: %s v: %#v, T: %T\n", k, v, v) switch k { - case "ttl", "serial", "max_hosts", "contact": - switch option := k; option { - case "ttl": - zone.Options.Ttl = valueToInt(v) - case "serial": - zone.Options.Serial = valueToInt(v) - case "contact": - zone.Options.Contact = v.(string) - case "max_hosts": - zone.Options.MaxHosts = valueToInt(v) - case "targeting": - zone.Options.Targeting, err = parseTargets(v.(string)) - if err != nil { - log.Printf("Could not parse targeting '%s': %s", v, err) - return nil, err - } + + case "ttl": + zone.Options.Ttl = valueToInt(v) + case "serial": + zone.Options.Serial = valueToInt(v) + case "contact": + zone.Options.Contact = v.(string) + case "max_hosts": + zone.Options.MaxHosts = valueToInt(v) + case "targeting": + zone.Options.Targeting, err = parseTargets(v.(string)) + if err != nil { + log.Printf("Could not parse targeting '%s': %s", v, err) + return nil, err } + case "logging": { logging := new(ZoneLogging) diff --git a/zones_test.go b/zones_test.go index a0509e87..c4b90a8d 100644 --- a/zones_test.go +++ b/zones_test.go @@ -41,6 +41,7 @@ func (s *ConfigSuite) TestReadConfigs(c *C) { c.Check(tz.Options.MaxHosts, Equals, 2) c.Check(tz.Options.Contact, Equals, "support.bitnames.com") + c.Check(tz.Options.Targeting.String(), Equals, "@ continent country regiongroup region") // Got logging option c.Check(tz.Logging.StatHat, Equals, true)