From 32f5c820e08200ff77c55ad7a06cdbf968100e21 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Mon, 1 Feb 2016 12:50:27 +0100 Subject: Expand interface, hide type --- cmd/acme/main.go | 6 +++--- desire.go | 4 ++-- solve_dns.go | 2 ++ solve_http.go | 2 ++ solve_pop.go | 2 ++ solve_tls.go | 2 ++ solve_webroot.go | 2 ++ solver.go | 1 + 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 } -- cgit v1.2.3