From 676466fe66a827ef1ef2acc8f0aad6d709fb5fc6 Mon Sep 17 00:00:00 2001 From: Tevildo Date: Sun, 25 Jan 2026 14:10:17 +0000 Subject: [PATCH] Add/Remove A records with TTL --- dns/dns.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/dns/dns.go b/dns/dns.go index 237321c..aae3684 100644 --- a/dns/dns.go +++ b/dns/dns.go @@ -6,6 +6,7 @@ import ( "log" "net/http" "net/url" + "strconv" "strings" "github.com/MartinWilkerson/cert-manager-webhook-nearlyfreespeech/auth" @@ -35,6 +36,30 @@ func ClearTXTRecord(domain string, dnsName string, key string, login string, api return send(login, apiKey, urlPath, body, requestUrl) } +func SetARecord(domain string, subdomain string, data string, ttl uint32, login string, apiKey string) error { + urlPath := fmt.Sprintf("/dns/%s/addRR", domain) + requestUrl := fmt.Sprintf("%s%s", baseUrl, urlPath) + log.Printf("Request URL: %v", requestUrl) + + values := url.Values{"name": {subdomain}, "type": {"A"}, "data": {data}, "ttl": {strconv.FormatUint(uint64(ttl), 10)}} + log.Printf("Body values: %v", values) + + body := values.Encode() + return send(login, apiKey, urlPath, body, requestUrl) +} + +func ClearARecord(domain string, subdomain string, data string, ttl uint32, login string, apiKey string) error { + urlPath := fmt.Sprintf("/dns/%s/removeRR", domain) + requestUrl := fmt.Sprintf("%s%s", baseUrl, urlPath) + log.Printf("Request URL: %v", requestUrl) + + values := url.Values{"name": {subdomain}, "type": {"A"}, "data": {data}} + log.Printf("Body values: %v", values) + + body := values.Encode() + return send(login, apiKey, urlPath, body, requestUrl) +} + func send(login string, apiKey string, urlPath string, body string, requestUrl string) error { authHeader, err := auth.GetAuthHeader(login, apiKey, urlPath, body) if err != nil {