From ce9bda74942fb130c5f85839aa93a90abe971132 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Fri, 8 Jan 2016 22:14:22 +0100 Subject: Move solver into desire --- cmd/acme/solve_http.go | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'cmd/acme/solve_http.go') diff --git a/cmd/acme/solve_http.go b/cmd/acme/solve_http.go index 7d0572b..31f3974 100644 --- a/cmd/acme/solve_http.go +++ b/cmd/acme/solve_http.go @@ -3,18 +3,46 @@ package main import ( "log" "net/http" + "os" + "path" + + "dim13.org/acme" ) type httpChallenge struct { http.Server - Addr string + Webroot string + file string } func (c *httpChallenge) Solve(token, keyAuth string) error { log.Println("solver", c) + if c.Webroot != "" { + return c.solveWebroot(token, keyAuth) + } return nil } func (c *httpChallenge) Finish() error { + if c.Webroot != "" { + return c.finishWebroot() + } return nil } + +func (c *httpChallenge) solveWebroot(token, keyAuth string) error { + log.Println("Solve WebRoot") + c.file = path.Join(c.Webroot, acme.WellKnown, token) + fd, err := acme.CreatePubFile(c.file) + if err != nil { + return err + } + defer fd.Close() + _, err = fd.Write([]byte(keyAuth)) + return err +} + +func (c *httpChallenge) finishWebroot() error { + log.Println("Cleanup WebRoot") + return os.Remove(c.file) +} -- cgit v1.2.3