aboutsummaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-01-11 01:47:05 +0100
committerDimitri Sokolyuk <demon@dim13.org>2016-01-11 01:47:05 +0100
commitbd6f27f6f1829a797f4ff85db50bd9bda2d80492 (patch)
treecb5ec40fe41f010aa2ccc87ade10217c77c90f30 /cmd
parent0490316d0891138181c4322510e07db1f0a603ea (diff)
Split http server
Diffstat (limited to 'cmd')
-rw-r--r--cmd/acme/main.go10
-rw-r--r--cmd/acme/solve_http.go13
2 files changed, 10 insertions, 13 deletions
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)