From 92023bf6e060e2adf240964d2d7589c43eca7f75 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Wed, 13 Jan 2016 20:14:08 +0100 Subject: Not sure where to put it --- solver.go | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 solver.go diff --git a/solver.go b/solver.go new file mode 100644 index 0000000..5bc7f85 --- /dev/null +++ b/solver.go @@ -0,0 +1,45 @@ +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 +} + +type webRootSolver struct { + webroot string +} + +func NewWebRootSolver(webroot string) Solver { + return &webRootSolver{webroot} +} + +func (s webRootSolver) Solve(token, keyAuth string) error { + p := path.Join(s.webroot, WellKnown, token) + fd, err := CreatePubFile(p) + if err != nil { + return err + } + defer fd.Close() + _, err = io.WriteString(fd, keyAuth) + return err +} -- cgit v1.2.3