From 4592f4d489b16dafcc75a3aa26b48a415370e237 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Tue, 26 Jan 2016 18:48:15 +0100 Subject: Split again --- solve_http.go | 28 +++++++++++++++++++++++++++ solve_tls.go | 15 +++++++++++++++ solve_webroot.go | 31 ++++++++++++++++++++++++++++++ solver.go | 58 -------------------------------------------------------- 4 files changed, 74 insertions(+), 58 deletions(-) create mode 100644 solve_http.go create mode 100644 solve_tls.go create mode 100644 solve_webroot.go diff --git a/solve_http.go b/solve_http.go new file mode 100644 index 0000000..cf08669 --- /dev/null +++ b/solve_http.go @@ -0,0 +1,28 @@ +package acme + +import ( + "io" + "net/http" + "path" +) + +type httpSolver struct { + http.Server +} + +func NewHTTPSolver(addr string) Solver { + var s httpSolver + s.Server = http.Server{Addr: addr} + go s.ListenAndServe() + return &s +} + +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) + }) + return nil +} + +func (s *httpSolver) Solved() error { return nil } diff --git a/solve_tls.go b/solve_tls.go new file mode 100644 index 0000000..98be2a0 --- /dev/null +++ b/solve_tls.go @@ -0,0 +1,15 @@ +package acme + +import "net/http" + +type tlsSolver struct { + http.Server +} + +func (s *tlsSolver) Solve(token, keyAuth string) error { + return nil +} + +func (s *tlsSolver) Solved() error { + return nil +} diff --git a/solve_webroot.go b/solve_webroot.go new file mode 100644 index 0000000..ab767b8 --- /dev/null +++ b/solve_webroot.go @@ -0,0 +1,31 @@ +package acme + +import ( + "io" + "os" + "path" +) + +type webRootSolver struct { + webroot string + file string +} + +func NewWebRootSolver(webroot string) Solver { + return &webRootSolver{webroot: webroot} +} + +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 + } + defer fd.Close() + _, err = io.WriteString(fd, keyAuth) + return err +} + +func (s *webRootSolver) Solved() error { + return os.Remove(s.file) +} diff --git a/solver.go b/solver.go index 7080b79..9ec7799 100644 --- a/solver.go +++ b/solver.go @@ -1,12 +1,5 @@ package acme -import ( - "io" - "net/http" - "os" - "path" -) - // WellKnown URL path const WellKnown = `/.well-known/acme-challenge/` @@ -15,54 +8,3 @@ type Solver interface { Solve(token, keyAuth string) error Solved() error } - -type httpSolver struct { - http.Server -} - -func NewHTTPSolver(addr string) Solver { - var s httpSolver - s.Server = http.Server{Addr: addr} - go s.ListenAndServe() - return &s -} - -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) - }) - return nil -} - -func (s *httpSolver) Solved() error { return nil } - -type webRootSolver struct { - webroot string - file string -} - -func NewWebRootSolver(webroot string) Solver { - return &webRootSolver{webroot: webroot} -} - -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 - } - defer fd.Close() - _, err = io.WriteString(fd, keyAuth) - return err -} - -func (s *webRootSolver) Solved() error { return os.Remove(s.file) } - -type tlsSolver struct { - http.Server -} - -func (s tlsSolver) Solve(token, keyAuth string) error { - return nil -} -- cgit v1.2.3