From 8fea5f9b0168880c927517d0d9634947ef158d43 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Wed, 20 Jan 2016 16:47:51 +0100 Subject: Extend solver interface --- solver.go | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'solver.go') diff --git a/solver.go b/solver.go index 65d8d24..7080b79 100644 --- a/solver.go +++ b/solver.go @@ -3,6 +3,7 @@ package acme import ( "io" "net/http" + "os" "path" ) @@ -12,6 +13,7 @@ const WellKnown = `/.well-known/acme-challenge/` // Solver decribes a solving interface type Solver interface { Solve(token, keyAuth string) error + Solved() error } type httpSolver struct { @@ -25,7 +27,7 @@ func NewHTTPSolver(addr string) Solver { return &s } -func (s httpSolver) Solve(token, keyAuth string) error { +func (s *httpSolver) Solve(token, keyAuth string) error { p := path.Join(WellKnown, token) http.HandleFunc(p, func(w http.ResponseWriter, r *http.Request) { io.WriteString(w, keyAuth) @@ -33,17 +35,20 @@ func (s httpSolver) Solve(token, keyAuth string) error { return nil } +func (s *httpSolver) Solved() error { return nil } + type webRootSolver struct { webroot string + file string } func NewWebRootSolver(webroot string) Solver { - return &webRootSolver{webroot} + return &webRootSolver{webroot: webroot} } -func (s webRootSolver) Solve(token, keyAuth string) error { - p := path.Join(s.webroot, WellKnown, token) - fd, err := CreatePubFile(p) +func (s *webRootSolver) Solve(token, keyAuth string) error { + s.file = path.Join(s.webroot, WellKnown, token) + fd, err := CreatePubFile(s.file) if err != nil { return err } @@ -52,6 +57,8 @@ func (s webRootSolver) Solve(token, keyAuth string) error { return err } +func (s *webRootSolver) Solved() error { return os.Remove(s.file) } + type tlsSolver struct { http.Server } -- cgit v1.2.3