|
@@ -584,7 +584,7 @@ func (client *Client) DoActionWithSigner(request requests.AcsRequest, response r
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
// if status code >= 500 or timeout, will trigger retry
|
|
// if status code >= 500 or timeout, will trigger retry
|
|
|
- if client.config.AutoRetry && (err != nil || isServerError(httpResponse)) {
|
|
|
|
|
|
|
+ if client.config.AutoRetry && (err != nil || isServerError(httpResponse)) && !isCertificateError(err) {
|
|
|
client.setTimeout(request)
|
|
client.setTimeout(request)
|
|
|
// rewrite signatureNonce and signature
|
|
// rewrite signatureNonce and signature
|
|
|
httpRequest, err = client.buildRequestWithSigner(request, signer)
|
|
httpRequest, err = client.buildRequestWithSigner(request, signer)
|
|
@@ -609,6 +609,13 @@ func (client *Client) DoActionWithSigner(request requests.AcsRequest, response r
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+func isCertificateError(err error) bool {
|
|
|
|
|
+ if err != nil && strings.Contains(err.Error(), "x509: certificate signed by unknown authority") {
|
|
|
|
|
+ return true
|
|
|
|
|
+ }
|
|
|
|
|
+ return false
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
func putMsgToMap(fieldMap map[string]string, request *http.Request) {
|
|
func putMsgToMap(fieldMap map[string]string, request *http.Request) {
|
|
|
fieldMap["{host}"] = request.Host
|
|
fieldMap["{host}"] = request.Host
|
|
|
fieldMap["{method}"] = request.Method
|
|
fieldMap["{method}"] = request.Method
|