mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2024-05-11 05:55:12 +00:00
HETZNER: fix retry of POST/PUT requests -- rebuild request body (#926)
Previously for any retry the request body was already consumed and the server received an empty body. Signed-off-by: Jakob Ackermann <das7pad@outlook.com> Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
This commit is contained in:
@@ -157,6 +157,7 @@ func (api *hetznerProvider) getZone(name string) (*zone, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (api *hetznerProvider) request(endpoint string, method string, request interface{}, target interface{}) error {
|
func (api *hetznerProvider) request(endpoint string, method string, request interface{}, target interface{}) error {
|
||||||
|
for {
|
||||||
var requestBody io.Reader
|
var requestBody io.Reader
|
||||||
if request != nil {
|
if request != nil {
|
||||||
requestBodySerialised, err := json.Marshal(request)
|
requestBodySerialised, err := json.Marshal(request)
|
||||||
@@ -171,7 +172,6 @@ func (api *hetznerProvider) request(endpoint string, method string, request inte
|
|||||||
}
|
}
|
||||||
req.Header.Add("Auth-API-Token", api.apiKey)
|
req.Header.Add("Auth-API-Token", api.apiKey)
|
||||||
|
|
||||||
for {
|
|
||||||
api.requestRateLimiter.beforeRequest()
|
api.requestRateLimiter.beforeRequest()
|
||||||
resp, err := http.DefaultClient.Do(req)
|
resp, err := http.DefaultClient.Do(req)
|
||||||
api.requestRateLimiter.afterRequest()
|
api.requestRateLimiter.afterRequest()
|
||||||
|
Reference in New Issue
Block a user