aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-02-01 12:50:27 +0100
committerDimitri Sokolyuk <demon@dim13.org>2016-02-01 12:50:27 +0100
commit32f5c820e08200ff77c55ad7a06cdbf968100e21 (patch)
tree440128e207668c0e9a3e1dfc1c1d562480095d3a
parent0f3289aa7b83e6fe8f2d803f1c6464765196996f (diff)
Expand interface, hide type
-rw-r--r--cmd/acme/main.go6
-rw-r--r--desire.go4
-rw-r--r--solve_dns.go2
-rw-r--r--solve_http.go2
-rw-r--r--solve_pop.go2
-rw-r--r--solve_tls.go2
-rw-r--r--solve_webroot.go2
-rw-r--r--solver.go1
8 files changed, 16 insertions, 5 deletions
diff --git a/cmd/acme/main.go b/cmd/acme/main.go
index 0fb42b6..7427ca3 100644
--- a/cmd/acme/main.go
+++ b/cmd/acme/main.go
@@ -117,12 +117,12 @@ func main() {
for k, des := range conf.Desire {
if des.Webroot != "" {
wrSol := acme.NewWebrootSolver(des.Webroot)
- des.RegisterSolver(acme.ChallengeHTTP, wrSol)
+ des.RegisterSolver(wrSol)
} else if httpSol != nil {
- des.RegisterSolver(acme.ChallengeHTTP, httpSol)
+ des.RegisterSolver(httpSol)
}
if tlsSol != nil {
- des.RegisterSolver(acme.ChallengeTLS, tlsSol)
+ des.RegisterSolver(tlsSol)
}
if !des.HasSolver() {
log.Fatal("no Solver available")
diff --git a/desire.go b/desire.go
index 249c59a..9ea5121 100644
--- a/desire.go
+++ b/desire.go
@@ -30,8 +30,8 @@ func NewDesire(altnames []string, size int) (*Desire, error) {
}, nil
}
-func (d *Desire) RegisterSolver(c ChalType, s Solver) {
- d.solver[c] = s
+func (d *Desire) RegisterSolver(s Solver) {
+ d.solver[s.Type()] = s
}
func (d *Desire) HasSolver() bool {
diff --git a/solve_dns.go b/solve_dns.go
index fe8b254..c149131 100644
--- a/solve_dns.go
+++ b/solve_dns.go
@@ -13,3 +13,5 @@ func (s *dnsSolver) Solve(_ Challenge) error {
func (s *dnsSolver) Solved() error {
return nil
}
+
+func (dnsSolver) Type() ChalType { return ChallengeDNS }
diff --git a/solve_http.go b/solve_http.go
index 15dc43d..08ea5a1 100644
--- a/solve_http.go
+++ b/solve_http.go
@@ -33,3 +33,5 @@ func (s *httpSolver) Solve(ch Challenge) error {
}
func (s *httpSolver) Solved() error { return nil }
+
+func (httpSolver) Type() ChalType { return ChallengeHTTP }
diff --git a/solve_pop.go b/solve_pop.go
index 5f39e35..52f7e8d 100644
--- a/solve_pop.go
+++ b/solve_pop.go
@@ -13,3 +13,5 @@ func (s *popSolver) Solve(_ Challenge) error {
func (s *popSolver) Solved() error {
return nil
}
+
+func (popSolver) Type() ChalType { return ChallengePOP }
diff --git a/solve_tls.go b/solve_tls.go
index 96ed3aa..f378a5c 100644
--- a/solve_tls.go
+++ b/solve_tls.go
@@ -104,3 +104,5 @@ func (s *tlsSolver) Solve(ch Challenge) error {
func (s *tlsSolver) Solved() error {
return nil
}
+
+func (tlsSolver) Type() ChalType { return ChallengeTLS }
diff --git a/solve_webroot.go b/solve_webroot.go
index 2adf4db..dc3c878 100644
--- a/solve_webroot.go
+++ b/solve_webroot.go
@@ -31,3 +31,5 @@ func (s *webrootSolver) Solve(ch Challenge) error {
func (s *webrootSolver) Solved() error {
return os.Remove(s.file)
}
+
+func (webrootSolver) Type() ChalType { return ChallengeHTTP }
diff --git a/solver.go b/solver.go
index 79c2a86..33e8493 100644
--- a/solver.go
+++ b/solver.go
@@ -11,4 +11,5 @@ const WellKnown = `/.well-known/acme-challenge/`
type Solver interface {
Solve(Challenge) error
Solved() error
+ Type() ChalType
}