lib/curl/Multi: add SetSocketFunction(), SetTimerFunction()
This commit is contained in:
parent
959826d1d1
commit
f7790430a0
|
@ -84,11 +84,8 @@ CurlGlobal::CurlGlobal(EventLoop &_loop)
|
|||
:defer_read_info(_loop, BIND_THIS_METHOD(ReadInfo)),
|
||||
timeout_event(_loop, BIND_THIS_METHOD(OnTimeout))
|
||||
{
|
||||
multi.SetOption(CURLMOPT_SOCKETFUNCTION, CurlSocket::SocketFunction);
|
||||
multi.SetOption(CURLMOPT_SOCKETDATA, this);
|
||||
|
||||
multi.SetOption(CURLMOPT_TIMERFUNCTION, TimerFunction);
|
||||
multi.SetOption(CURLMOPT_TIMERDATA, this);
|
||||
multi.SetSocketFunction(CurlSocket::SocketFunction, this);
|
||||
multi.SetTimerFunction(TimerFunction, this);
|
||||
}
|
||||
|
||||
int
|
||||
|
|
|
@ -61,6 +61,18 @@ public:
|
|||
throw std::runtime_error(curl_multi_strerror(code));
|
||||
}
|
||||
|
||||
void SetSocketFunction(int (*function)(CURL *easy, curl_socket_t s, int what, void *clientp, void *socketp) noexcept,
|
||||
void *clientp) {
|
||||
SetOption(CURLMOPT_SOCKETFUNCTION, function);
|
||||
SetOption(CURLMOPT_SOCKETDATA, clientp);
|
||||
}
|
||||
|
||||
void SetTimerFunction(int (*function)(CURLM *multi, long timeout_ms, void *clientp) noexcept,
|
||||
void *clientp) {
|
||||
SetOption(CURLMOPT_TIMERFUNCTION, function);
|
||||
SetOption(CURLMOPT_TIMERDATA, clientp);
|
||||
}
|
||||
|
||||
void Add(CURL *easy) {
|
||||
auto code = curl_multi_add_handle(handle, easy);
|
||||
if (code != CURLM_OK)
|
||||
|
|
Loading…
Reference in New Issue