summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/xenolf/lego/acme
diff options
context:
space:
mode:
authorChristopher Speller <crspeller@gmail.com>2017-04-24 20:11:36 -0400
committerJoram Wilander <jwawilander@gmail.com>2017-04-24 20:11:36 -0400
commitf5437632f486b7d0a0a181c58f113c86d032b02c (patch)
tree407388e3003a210a89f4b2128d7ad656f8b79d26 /vendor/github.com/xenolf/lego/acme
parent7f68a60f8c228d5604e0566bf84cabb145d16c37 (diff)
downloadchat-f5437632f486b7d0a0a181c58f113c86d032b02c.tar.gz
chat-f5437632f486b7d0a0a181c58f113c86d032b02c.tar.bz2
chat-f5437632f486b7d0a0a181c58f113c86d032b02c.zip
Upgrading server dependancies (#6215)
Diffstat (limited to 'vendor/github.com/xenolf/lego/acme')
-rw-r--r--vendor/github.com/xenolf/lego/acme/client.go5
-rw-r--r--vendor/github.com/xenolf/lego/acme/http.go33
-rw-r--r--vendor/github.com/xenolf/lego/acme/jws.go16
3 files changed, 34 insertions, 20 deletions
diff --git a/vendor/github.com/xenolf/lego/acme/client.go b/vendor/github.com/xenolf/lego/acme/client.go
index ee519f2e2..ef0f80b7f 100644
--- a/vendor/github.com/xenolf/lego/acme/client.go
+++ b/vendor/github.com/xenolf/lego/acme/client.go
@@ -529,10 +529,7 @@ func (c *Client) chooseSolvers(auth authorization, domain string) map[int]solver
func (c *Client) getChallenges(domains []string) ([]authorizationResource, map[string]error) {
resc, errc := make(chan authorizationResource), make(chan domainError)
- var delay time.Duration
- if len(domains) > overallRequestLimit {
- delay = time.Second / overallRequestLimit
- }
+ delay := time.Second / overallRequestLimit
for _, domain := range domains {
time.Sleep(delay)
diff --git a/vendor/github.com/xenolf/lego/acme/http.go b/vendor/github.com/xenolf/lego/acme/http.go
index dc958046a..a858b5a75 100644
--- a/vendor/github.com/xenolf/lego/acme/http.go
+++ b/vendor/github.com/xenolf/lego/acme/http.go
@@ -97,10 +97,41 @@ func postJSON(j *jws, uri string, reqBody, respBody interface{}) (http.Header, e
if err != nil {
return nil, fmt.Errorf("Failed to post JWS message. -> %v", err)
}
+
defer resp.Body.Close()
if resp.StatusCode >= http.StatusBadRequest {
- return resp.Header, handleHTTPError(resp)
+
+ err := handleHTTPError(resp)
+
+ switch err.(type) {
+
+ case NonceError:
+
+ // Retry once if the nonce was invalidated
+
+ retryResp, err := j.post(uri, jsonBytes)
+ if err != nil {
+ return nil, fmt.Errorf("Failed to post JWS message. -> %v", err)
+ }
+
+ defer retryResp.Body.Close()
+
+ if retryResp.StatusCode >= http.StatusBadRequest {
+ return retryResp.Header, handleHTTPError(retryResp)
+ }
+
+ if respBody == nil {
+ return retryResp.Header, nil
+ }
+
+ return retryResp.Header, json.NewDecoder(retryResp.Body).Decode(respBody)
+
+ default:
+ return resp.Header, err
+
+ }
+
}
if respBody == nil {
diff --git a/vendor/github.com/xenolf/lego/acme/jws.go b/vendor/github.com/xenolf/lego/acme/jws.go
index 3b77cd491..a39434342 100644
--- a/vendor/github.com/xenolf/lego/acme/jws.go
+++ b/vendor/github.com/xenolf/lego/acme/jws.go
@@ -44,26 +44,12 @@ func (j *jws) post(url string, content []byte) (*http.Response, error) {
if err != nil {
return nil, fmt.Errorf("Failed to HTTP POST to %s -> %s", url, err.Error())
}
-
- // Even in case of an error, the response should still contain a nonce.
+
nonce, nonceErr := getNonceFromResponse(resp)
if nonceErr == nil {
j.nonces.Push(nonce)
}
- if err != nil {
- switch err.(type) {
- case NonceError:
- // In case of a nonce error - retry once
- resp, err = httpPost(url, "application/jose+json", bytes.NewBuffer([]byte(signedContent.FullSerialize())))
- if err != nil {
- return nil, fmt.Errorf("Failed to HTTP POST to %s -> %s", url, err.Error())
- }
- default:
- return nil, fmt.Errorf("Failed to HTTP POST to %s -> %s", url, err.Error())
- }
- }
-
return resp, nil
}