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,21 +157,21 @@ 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 {
|
||||||
var requestBody io.Reader
|
for {
|
||||||
if request != nil {
|
var requestBody io.Reader
|
||||||
requestBodySerialised, err := json.Marshal(request)
|
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 {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
requestBody = bytes.NewBuffer(requestBodySerialised)
|
req.Header.Add("Auth-API-Token", api.apiKey)
|
||||||
}
|
|
||||||
req, err := http.NewRequest(method, baseURL+endpoint, requestBody)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
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