From bd6f27f6f1829a797f4ff85db50bd9bda2d80492 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Mon, 11 Jan 2016 01:47:05 +0100 Subject: Split http server --- cmd/acme/main.go | 10 +++------- cmd/acme/solve_http.go | 13 +++++++------ 2 files changed, 10 insertions(+), 13 deletions(-) (limited to 'cmd') diff --git a/cmd/acme/main.go b/cmd/acme/main.go index 1dbc496..360fb90 100644 --- a/cmd/acme/main.go +++ b/cmd/acme/main.go @@ -3,7 +3,6 @@ package main import ( "flag" "log" - "net/http" "sync" "dim13.org/acme" @@ -73,6 +72,8 @@ func main() { wg.Wait() + httpSolver(conf.Defaults.Listen) + for k, des := range conf.Desire { if des.account.pending { err = des.provider.Register(des.account, des.account.Contacts) @@ -82,12 +83,7 @@ func main() { } // TODO des.Register - hs := &httpChallenge{ - Server: http.Server{ - Addr: conf.Defaults.Listen, - }, - Webroot: des.Webroot, - } + hs := &httpChallenge{Webroot: des.Webroot} acme.RegisterSolver(acme.ChallengeHTTP, hs) wg.Add(1) diff --git a/cmd/acme/solve_http.go b/cmd/acme/solve_http.go index 8e5cfaf..d6cbe5a 100644 --- a/cmd/acme/solve_http.go +++ b/cmd/acme/solve_http.go @@ -9,9 +9,14 @@ import ( ) type httpChallenge struct { - http.Server Webroot string - started bool +} + +var srv http.Server + +func httpSolver(addr string) { + srv = http.Server{Addr: addr} + go srv.ListenAndServe() } func (c *httpChallenge) Solve(token, keyAuth string) error { @@ -25,10 +30,6 @@ func (c *httpChallenge) Solve(token, keyAuth string) error { _, err = io.WriteString(fd, keyAuth) return err } else { - if !c.started { - go c.ListenAndServe() - c.started = true - } p := path.Join(acme.WellKnown, token) http.HandleFunc(p, func(w http.ResponseWriter, r *http.Request) { io.WriteString(w, keyAuth) -- cgit v1.2.3