Compare commits

..

2 commits

Author SHA1 Message Date
Kevin MacMartin
ed4428e846 Attempt to avoid setting the domain to something that isn't an IP address 2024-06-24 22:59:12 -04:00
Kevin MacMartin
720bb3707f Fix the library import location 2024-06-24 22:29:06 -04:00
2 changed files with 26 additions and 19 deletions

View file

@ -7,9 +7,10 @@ import (
"strings" "strings"
"sync" "sync"
"time" "time"
"net"
"git.darkcloud.ca/kmacmart/name-dyndns/api" "git.darkcloud.ca/kevin/name-dyndns/api"
"git.darkcloud.ca/kmacmart/name-dyndns/log" "git.darkcloud.ca/kevin/name-dyndns/log"
) )
var wg sync.WaitGroup var wg sync.WaitGroup
@ -28,24 +29,30 @@ func contains(c api.Config, val string) bool {
} }
func updateDNSRecord(a api.API, domain, recordID string, newRecord api.DNSRecord) error { func updateDNSRecord(a api.API, domain, recordID string, newRecord api.DNSRecord) error {
log.Logger.Printf("Deleting DNS record for %s.\n", newRecord.Name) addr := net.ParseIP(record.Content)
err := a.DeleteDNSRecord(domain, newRecord.RecordID)
if err != nil {
return err
}
log.Logger.Printf("Creating DNS record for %s: %s\n", newRecord.Name, newRecord) if addr != nil {
log.Logger.Printf("Deleting DNS record for %s.\n", newRecord.Name)
err := a.DeleteDNSRecord(domain, newRecord.RecordID)
if err != nil {
return err
}
// Remove the domain from the DNSRecord name. log.Logger.Printf("Creating DNS record for %s: %s\n", newRecord.Name, newRecord)
// This is an unfortunate inconsistency from the API
// implementation (returns full name, but only requires host) // Remove the domain from the DNSRecord name.
if newRecord.Name == domain { // This is an unfortunate inconsistency from the API
newRecord.Name = "" // implementation (returns full name, but only requires host)
if newRecord.Name == domain {
newRecord.Name = ""
} else {
newRecord.Name = strings.TrimSuffix(newRecord.Name, fmt.Sprintf(".%s", domain))
}
return a.CreateDNSRecord(domain, newRecord)
} else { } else {
newRecord.Name = strings.TrimSuffix(newRecord.Name, fmt.Sprintf(".%s", domain)) log.Logger.Printf("Unable to parse IP: %s\n", newRecord)
} }
return a.CreateDNSRecord(domain, newRecord)
} }
func runConfig(c api.Config, daemon bool) { func runConfig(c api.Config, daemon bool) {

View file

@ -3,9 +3,9 @@ package main
import ( import (
"flag" "flag"
"fmt" "fmt"
"git.darkcloud.ca/kmacmart/name-dyndns/api" "git.darkcloud.ca/kevin/name-dyndns/api"
"git.darkcloud.ca/kmacmart/name-dyndns/dyndns" "git.darkcloud.ca/kevin/name-dyndns/dyndns"
"git.darkcloud.ca/kmacmart/name-dyndns/log" "git.darkcloud.ca/kevin/name-dyndns/log"
"os" "os"
) )