Use pointers
This commit is contained in:
parent
897724142c
commit
fac930b55e
@ -16,12 +16,12 @@ import (
|
||||
|
||||
var DomainZones = []string{"meshname.", "ygg.", "cjd."}
|
||||
|
||||
func DomainFromIP(target net.IP) string {
|
||||
return strings.ToLower(base32.StdEncoding.EncodeToString(target)[0:26])
|
||||
func DomainFromIP(target *net.IP) string {
|
||||
return strings.ToLower(base32.StdEncoding.EncodeToString(*target)[0:26])
|
||||
}
|
||||
|
||||
func IPFromDomain(domain string) (net.IP, error) {
|
||||
name := strings.ToUpper(domain) + "======"
|
||||
func IPFromDomain(domain *string) (net.IP, error) {
|
||||
name := strings.ToUpper(*domain) + "======"
|
||||
data, err := base32.StdEncoding.DecodeString(name)
|
||||
if err != nil {
|
||||
return net.IP{}, err
|
||||
@ -41,7 +41,7 @@ func GenConf(target, zone string) (string, error) {
|
||||
if ip == nil {
|
||||
return "", errors.New("Invalid IP address")
|
||||
}
|
||||
subDomain := DomainFromIP(ip)
|
||||
subDomain := DomainFromIP(&ip)
|
||||
selfRecord := fmt.Sprintf("\t\t\"%s.%s AAAA %s\"\n", subDomain, zone, target)
|
||||
confString := fmt.Sprintf("{\n\t\"Domain\":\"%s\",\n\t\"Records\":[\n%s\t]\n}", subDomain, selfRecord)
|
||||
|
||||
@ -148,7 +148,7 @@ func (s *MeshnameServer) handleRequest(w dns.ResponseWriter, r *dns.Msg) {
|
||||
}
|
||||
} else if s.isRemoteLookupAllowed(w.RemoteAddr()) {
|
||||
// do remote lookups only for local clients
|
||||
resolvedAddr, err := IPFromDomain(subDomain)
|
||||
resolvedAddr, err := IPFromDomain(&subDomain)
|
||||
if err != nil {
|
||||
s.log.Debugln(err)
|
||||
continue
|
||||
|
@ -12,7 +12,7 @@ func TestIPFromDomain(t *testing.T) {
|
||||
test_subdomain := "aib7cwwdeob2vtnqf2cfnm7ilq"
|
||||
test_ip := net.ParseIP("203:f15a:c323:83aa:cdb0:2e84:56b3:e85c")
|
||||
|
||||
ip, err := meshname.IPFromDomain(test_subdomain)
|
||||
ip, err := meshname.IPFromDomain(&test_subdomain)
|
||||
if err != nil {
|
||||
t.Errorf("Decoding IP from domain failed %s", err)
|
||||
} else if bytes.Compare(ip, test_ip) != 0 {
|
||||
@ -24,7 +24,7 @@ func TestDomainFromIP(t *testing.T) {
|
||||
test_subdomain := "aib7cwwdeob2vtnqf2cfnm7ilq"
|
||||
test_ip := net.ParseIP("203:f15a:c323:83aa:cdb0:2e84:56b3:e85c")
|
||||
|
||||
subdomain := meshname.DomainFromIP(test_ip)
|
||||
subdomain := meshname.DomainFromIP(&test_ip)
|
||||
if subdomain != test_subdomain {
|
||||
t.Errorf("Encoding domain error: %s != %s", subdomain, test_subdomain)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user