this fix ensures clients gracefully time out in case endpoint url is wrongly configured.
Fixes: https://tracker.ceph.com/issues/51855
Signed-off-by: Adarsh Ashokan <dev.9401adarsh@gmail.com>
}
curl_easy_setopt(easy_handle, CURLOPT_PRIVATE, (void *)req_data);
curl_easy_setopt(easy_handle, CURLOPT_TIMEOUT, req_timeout);
+ curl_easy_setopt(easy_handle, CURLOPT_CONNECTTIMEOUT, req_connect_timeout);
return 0;
}
param_vec_t headers;
long req_timeout{0L};
+ long req_connect_timeout{3L};
void init();
req_timeout = timeout;
}
+ // set request for connect phase timeout in seconds.
+ // ensures wrong url hits don't stay alive post this limit
+ void set_req_connect_timeout(long connect_timeout) {
+ req_connect_timeout = connect_timeout;
+ }
+
int process(const DoutPrefixProvider* dpp, optional_yield y);
int wait(const DoutPrefixProvider* dpp, optional_yield y);