summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Crute <mike@crute.us>2022-12-24 08:36:42 -0800
committerMike Crute <mike@crute.us>2022-12-24 08:36:42 -0800
commitd2d1be152822d4006855d1b692785c6d7f3d6d5d (patch)
tree46a8fd7c3ca1ccba238203dfe0af2770903b309a
parentc18aef9f0aa2d9ed7238a0f1ce0a7d82c5800389 (diff)
downloadgo_ddns_manager-d2d1be152822d4006855d1b692785c6d7f3d6d5d.tar.bz2
go_ddns_manager-d2d1be152822d4006855d1b692785c6d7f3d6d5d.tar.xz
go_ddns_manager-d2d1be152822d4006855d1b692785c6d7f3d6d5d.zip
Fixes for ACMEv2
-rw-r--r--Makefile4
-rw-r--r--dns/client.go4
-rw-r--r--main.go4
-rw-r--r--web/controllers/acmev2.go9
4 files changed, 15 insertions, 6 deletions
diff --git a/Makefile b/Makefile
index 37c5199..d0f2d5b 100644
--- a/Makefile
+++ b/Makefile
@@ -3,6 +3,10 @@ dns-service:
3 go generate ./... 3 go generate ./...
4 CGO_ENABLED=0 go build -o $@ $< 4 CGO_ENABLED=0 go build -o $@ $<
5 5
6dns-service-linux:
7 go generate ./...
8 GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o $@ $<
9
6.PHONY: clean 10.PHONY: clean
7clean: 11clean:
8 rm -f dns-service 12 rm -f dns-service
diff --git a/dns/client.go b/dns/client.go
index f39bb4b..1b6b68a 100644
--- a/dns/client.go
+++ b/dns/client.go
@@ -149,8 +149,8 @@ func (c *DNSClient) SendQuery(t *DNSTransaction) ([]dns.RR, error) {
149 149
150// TODO: Copied from the letsencrypt service, merge this into existing functions 150// TODO: Copied from the letsencrypt service, merge this into existing functions
151func (c *DNSClient) sendReadQuery(ctx context.Context, fqdn string, rtype uint16, nameserver string) (*dns.Msg, error) { 151func (c *DNSClient) sendReadQuery(ctx context.Context, fqdn string, rtype uint16, nameserver string) (*dns.Msg, error) {
152 udp := &dns.Client{Net: "udp"} 152 udp := &dns.Client{Net: "udp", Timeout: time.Minute}
153 tcp := &dns.Client{Net: "tcp"} 153 tcp := &dns.Client{Net: "tcp", Timeout: time.Minute}
154 154
155 m := &dns.Msg{} 155 m := &dns.Msg{}
156 m.SetQuestion(fqdn, rtype) 156 m.SetQuestion(fqdn, rtype)
diff --git a/main.go b/main.go
index 8b6ba10..1998942 100644
--- a/main.go
+++ b/main.go
@@ -75,8 +75,8 @@ func prepareServer(c interface{}, router *gin.Engine) error {
75 acme2 := router.Group("/acmev2") 75 acme2 := router.Group("/acmev2")
76 acme2.Use(middleware.AcmeAuthMiddleware) 76 acme2.Use(middleware.AcmeAuthMiddleware)
77 { 77 {
78 acme2.POST("/:domain/:challenge", controllers.CreateAcmeChallengeV2) 78 acme2.POST("", controllers.CreateAcmeChallengeV2)
79 acme2.DELETE("/:domain/:challenge", controllers.DeleteAcmeChallengeV2) 79 acme2.DELETE("", controllers.DeleteAcmeChallengeV2)
80 } 80 }
81 81
82 manage := router.Group("/manage") 82 manage := router.Group("/manage")
diff --git a/web/controllers/acmev2.go b/web/controllers/acmev2.go
index a2fadf5..7ea76af 100644
--- a/web/controllers/acmev2.go
+++ b/web/controllers/acmev2.go
@@ -42,16 +42,21 @@ func CreateAcmeChallengeV2(c *gin.Context) {
42 return 42 return
43 } 43 }
44 44
45 testFor := fmt.Sprintf("_acme-challenge.%s.%s", prefix, zone.Name)
46 if prefix == "" {
47 testFor = fmt.Sprintf("_acme-challenge.%s", zone.Name)
48 }
49
45 if err := cfg.DNSClient.WaitForDNSPropagation( 50 if err := cfg.DNSClient.WaitForDNSPropagation(
46 c.Request.Context(), 51 c.Request.Context(),
47 fmt.Sprintf("_acme-challenge.%s.", prefix), 52 testFor,
48 ch.Challenge, 53 ch.Challenge,
49 ); err != nil { 54 ); err != nil {
50 jsonError(c, http.StatusInternalServerError, fmt.Errorf("Error polling for DNS propagation: %w", err)) 55 jsonError(c, http.StatusInternalServerError, fmt.Errorf("Error polling for DNS propagation: %w", err))
51 return 56 return
52 } 57 }
53 58
54 c.JSON(http.StatusCreated, "") 59 c.String(http.StatusCreated, "")
55} 60}
56 61
57func DeleteAcmeChallengeV2(c *gin.Context) { 62func DeleteAcmeChallengeV2(c *gin.Context) {