aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmd/acme/main.go13
-rw-r--r--solver.go10
2 files changed, 14 insertions, 9 deletions
diff --git a/cmd/acme/main.go b/cmd/acme/main.go
index b6ee054..ea9ddd0 100644
--- a/cmd/acme/main.go
+++ b/cmd/acme/main.go
@@ -84,17 +84,12 @@ func requestCert(prov *acme.Provider, acc *acme.Account, d domain) error {
}
}
- sols := make(acme.Solvers)
-
+ sols := acme.NewSolvers()
if d.Webroot != "" {
- sols[acme.ChallengeHTTP] = acme.NewWebrootSolver(d.Webroot)
+ sols.Add(acme.NewWebrootSolver(d.Webroot))
} else {
- if httpSol != nil {
- sols[acme.ChallengeHTTP] = httpSol
- }
- if tlsSol != nil {
- sols[acme.ChallengeTLS] = tlsSol
- }
+ sols.Add(httpSol)
+ sols.Add(tlsSol)
}
for _, an := range d.Altnames {
diff --git a/solver.go b/solver.go
index 639cdd0..be6635e 100644
--- a/solver.go
+++ b/solver.go
@@ -18,3 +18,13 @@ type Solver interface {
}
type Solvers map[ChalType]Solver
+
+func NewSolvers() Solvers {
+ return make(Solvers)
+}
+
+func (s Solvers) Add(sol Solver) {
+ if sol != nil {
+ s[sol.Type()] = sol
+ }
+}