switch to miekg/dns for better results

This commit is contained in:
Seraphim Strub 2024-07-16 19:53:18 +00:00
parent a76b11b2b2
commit 1130cfaff0
5 changed files with 79 additions and 35 deletions

View file

@ -67,7 +67,7 @@ func main() {
case <-ticker.C:
for d, tlds := range config.Domains {
for _, tld := range tlds {
go checkDomain(0, fmt.Sprintf("%v.%v", d, tld), query, client)
go checkDomain(0, d, tld, query, client)
}
}
@ -85,18 +85,19 @@ func main() {
<-s
}
func checkDomain(counter int, d string, query *db.Queries, client webhook.Client) {
domain := dns.CheckDomain(d)
retrievedDomainJson, dbErr := query.GetItem(context.TODO(), d)
func checkDomain(counter int, d, tld string, query *db.Queries, client webhook.Client) {
domain := dns.CheckDomain(d, tld)
fqdn := fmt.Sprintf("%s.%s", d, tld)
retrievedDomainJson, dbErr := query.GetItem(context.TODO(), fqdn)
retrievedDomain := dns.Domain{}
if err := json.Unmarshal(retrievedDomainJson.Data, &retrievedDomain); !errors.Is(dbErr, sql.ErrNoRows) && err != nil {
logger.Error("failed unmarshalling deal", slog.Any("error", err))
}
if reflect.DeepEqual(domain, retrievedDomain) {
logger.Debug("domain did not change", slog.String("domain", d))
logger.Debug("domain did not change", slog.String("domain", fqdn))
return
}
logger.Info("domain changed", slog.String("domain", d))
logger.Info("domain changed", slog.String("domain", fqdn))
counter += 1
if counter >= 2 {
go sendWebhook(client, domain, retrievedDomain)
@ -113,7 +114,7 @@ func checkDomain(counter int, d string, query *db.Queries, client webhook.Client
return
}
time.Sleep(1 * time.Minute)
checkDomain(counter, d, query, client)
checkDomain(counter, d, tld, query, client)
}
func sendWebhook(client webhook.Client, domain dns.Domain, oldDomain dns.Domain) {