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/main.go | 15 ++++++++------- cmd/acme/solve_http.go | 30 +++++++++++++++++++++++++++++- cmd/acme/solve_webroot.go | 22 ---------------------- 3 files changed, 37 insertions(+), 30 deletions(-) (limited to 'cmd') diff --git a/cmd/acme/main.go b/cmd/acme/main.go index 4534542..1dbc496 100644 --- a/cmd/acme/main.go +++ b/cmd/acme/main.go @@ -3,6 +3,7 @@ package main import ( "flag" "log" + "net/http" "sync" "dim13.org/acme" @@ -80,14 +81,14 @@ func main() { } } - if des.Webroot != "" { - ws := &webrootChallenge{Webroot: des.Webroot} - acme.RegisterSolver(acme.ChallengeHTTP, ws) - } else { - // TODO des.Register - hs := &httpChallenge{Addr: conf.Defaults.Listen} - acme.RegisterSolver(acme.ChallengeHTTP, hs) + // TODO des.Register + hs := &httpChallenge{ + Server: http.Server{ + Addr: conf.Defaults.Listen, + }, + Webroot: des.Webroot, } + acme.RegisterSolver(acme.ChallengeHTTP, hs) wg.Add(1) go func(k string, des *desire) { 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) +} diff --git a/cmd/acme/solve_webroot.go b/cmd/acme/solve_webroot.go index 13b50e0..756babb 100644 --- a/cmd/acme/solve_webroot.go +++ b/cmd/acme/solve_webroot.go @@ -1,28 +1,6 @@ package main -import ( - "os" - "path" - - "dim13.org/acme" -) - type webrootChallenge struct { Webroot string file string } - -func (c *webrootChallenge) Solve(token, keyAuth string) error { - 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 *webrootChallenge) Finish() error { - return os.Remove(c.file) -} -- cgit v1.2.3