1
0
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:
Jakob Ackermann
2020-11-02 01:34:10 +01:00
committed by GitHub
parent 152fa95031
commit ab47e92cbf

View File

@@ -157,21 +157,21 @@ func (api *hetznerProvider) getZone(name string) (*zone, error) {
}
func (api *hetznerProvider) request(endpoint string, method string, request interface{}, target interface{}) error {
var requestBody io.Reader
if request != nil {
requestBodySerialised, err := json.Marshal(request)
for {
var requestBody io.Reader
if request != nil {
requestBodySerialised, err := json.Marshal(request)
if err != nil {
return err
}
requestBody = bytes.NewBuffer(requestBodySerialised)
}
req, err := http.NewRequest(method, baseURL+endpoint, requestBody)
if err != nil {
return err
}
requestBody = bytes.NewBuffer(requestBodySerialised)
}
req, err := http.NewRequest(method, baseURL+endpoint, requestBody)
if err != nil {
return err
}
req.Header.Add("Auth-API-Token", api.apiKey)
req.Header.Add("Auth-API-Token", api.apiKey)
for {
api.requestRateLimiter.beforeRequest()
resp, err := http.DefaultClient.Do(req)
api.requestRateLimiter.afterRequest()