Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 277fd1b

Browse files
committed
Use fmt.Errorf; customize HTTPTimeout and UserAgent
1 parent f4d0f78 commit 277fd1b

5 files changed

Lines changed: 18 additions & 13 deletions

File tree

certificates.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ package certmagic
1717
import (
1818
"crypto/tls"
1919
"crypto/x509"
20-
"errors"
2120
"fmt"
2221
"io/ioutil"
2322
"log"
@@ -206,7 +205,7 @@ func (cfg *Config) makeCertificateWithOCSP(certPEMBlock, keyPEMBlock []byte) (Ce
206205
// fillCertFromLeaf populates metadata fields on cert from tlsCert.
207206
func fillCertFromLeaf(cert *Certificate, tlsCert tls.Certificate) error {
208207
if len(tlsCert.Certificate) == 0 {
209-
return errors.New("certificate is empty")
208+
return fmt.Errorf("certificate is empty")
210209
}
211210
cert.Certificate = tlsCert
212211

@@ -235,7 +234,7 @@ func fillCertFromLeaf(cert *Certificate, tlsCert tls.Certificate) error {
235234
}
236235
}
237236
if len(cert.Names) == 0 {
238-
return errors.New("certificate has no names")
237+
return fmt.Errorf("certificate has no names")
239238
}
240239

241240
// save the hash of this certificate (chain) and

certmagic.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ package certmagic
1616

1717
import (
1818
"crypto/tls"
19-
"errors"
2019
"fmt"
2120
"log"
2221
"net"
@@ -283,7 +282,7 @@ func (o *OnDemandConfig) checkURLForObtainingNewCerts(name string) error {
283282
client := http.Client{
284283
Timeout: 10 * time.Second,
285284
CheckRedirect: func(req *http.Request, via []*http.Request) error {
286-
return errors.New("following http redirects is not allowed")
285+
return fmt.Errorf("following http redirects is not allowed")
287286
},
288287
}
289288

client.go

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
package certmagic
1616

1717
import (
18-
"errors"
1918
"fmt"
2019
"log"
2120
"net"
@@ -95,6 +94,8 @@ func (cfg *Config) newACMEClient(interactive bool) (*acmeClient, error) {
9594
legoCfg := lego.NewConfig(&leUser)
9695
legoCfg.CADirURL = caURL
9796
legoCfg.KeyType = keyType
97+
legoCfg.UserAgent = UserAgent
98+
legoCfg.HTTPClient.Timeout = HTTPTimeout
9899
client, err = lego.NewClient(legoCfg)
99100
if err != nil {
100101
cfg.acmeClientsMu.Unlock()
@@ -113,7 +114,7 @@ func (cfg *Config) newACMEClient(interactive bool) (*acmeClient, error) {
113114
cfg.Agreed = cfg.askUserAgreement(client.GetToSURL())
114115
}
115116
if !cfg.Agreed && termsURL != "" {
116-
return nil, errors.New("user must agree to CA terms (use -agree flag)")
117+
return nil, fmt.Errorf("user must agree to CA terms")
117118
}
118119
}
119120

@@ -126,7 +127,7 @@ func (cfg *Config) newACMEClient(interactive bool) (*acmeClient, error) {
126127
// persist the user to storage
127128
err = cfg.saveUser(leUser)
128129
if err != nil {
129-
return nil, errors.New("could not save user: " + err.Error())
130+
return nil, fmt.Errorf("could not save user: %v", err)
130131
}
131132
}
132133

@@ -249,7 +250,7 @@ func (c *acmeClient) Obtain(name string) error {
249250

250251
// double-check that we actually got a certificate, in case there's a bug upstream (see issue mholt/caddy#2121)
251252
if certificate.Domain == "" || certificate.Certificate == nil {
252-
return errors.New("returned certificate was empty; probably an unchecked error obtaining it")
253+
return fmt.Errorf("returned certificate was empty; probably an unchecked error obtaining it")
253254
}
254255

255256
// Success - immediately save the certificate resource
@@ -309,7 +310,7 @@ func (c *acmeClient) Renew(name string) error {
309310
if err == nil {
310311
// double-check that we actually got a certificate; check a couple fields, just in case
311312
if newCertMeta == nil || newCertMeta.Domain == "" || newCertMeta.Certificate == nil {
312-
err = errors.New("returned certificate was empty; probably an unchecked error renewing it")
313+
err = fmt.Errorf("returned certificate was empty; probably an unchecked error renewing it")
313314
} else {
314315
success = true
315316
break
@@ -323,7 +324,7 @@ func (c *acmeClient) Renew(name string) error {
323324
}
324325

325326
if !success {
326-
return errors.New("too many renewal attempts; last error: " + err.Error())
327+
return fmt.Errorf("too many renewal attempts; last error: %v", err)
327328
}
328329

329330
if c.config.OnEvent != nil {
@@ -369,3 +370,9 @@ func (c *acmeClient) Revoke(name string) error {
369370

370371
return nil
371372
}
373+
374+
// Some default values passed down to the underlying lego client.
375+
var (
376+
UserAgent string
377+
HTTPTimeout = 30 * time.Second
378+
)

handshake.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ package certmagic
1717
import (
1818
"crypto/tls"
1919
"encoding/json"
20-
"errors"
2120
"fmt"
2221
"log"
2322
"strings"
@@ -191,7 +190,7 @@ func (cfg *Config) getCertDuringHandshake(name string, loadIfNecessary, obtainIf
191190

192191
// Name has to qualify for a certificate
193192
if !HostQualifies(name) {
194-
return cert, errors.New("hostname '" + name + "' does not qualify for certificate")
193+
return cert, fmt.Errorf("hostname '%s' does not qualify for certificate", name)
195194
}
196195

197196
// Obtain certificate from the CA

user.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ func (cfg *Config) getEmail(userPresent bool) (string, error) {
113113
}
114114
legoConfig := lego.NewConfig(user)
115115
legoConfig.CADirURL = caURL
116+
legoConfig.UserAgent = UserAgent
116117
tempClient, err := lego.NewClient(legoConfig)
117118
if err != nil {
118119
return "", fmt.Errorf("making ACME client to get ToS URL: %v", err)

0 commit comments

Comments
 (0)