From: Max Reitz Date: Tue, 10 Sep 2019 12:41:30 +0000 (+0200) Subject: curl: Keep pointer to the CURLState in CURLSocket X-Git-Tag: v4.1.1~51 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3648493495f2ecb2df22aa4be396e00077693d79;p=thirdparty%2Fqemu.git curl: Keep pointer to the CURLState in CURLSocket A follow-up patch will make curl_multi_do() and curl_multi_read() take a CURLSocket instead of the CURLState. They still need the latter, though, so add a pointer to it to the former. Cc: qemu-stable@nongnu.org Signed-off-by: Max Reitz Reviewed-by: John Snow Message-id: 20190910124136.10565-2-mreitz@redhat.com Reviewed-by: Maxim Levitsky Signed-off-by: Max Reitz (cherry picked from commit 0487861685294660b23bc146e1ebd5304aa8bbe0) Signed-off-by: Michael Roth --- diff --git a/block/curl.c b/block/curl.c index d4c8e94f3e0..92dc2f630e2 100644 --- a/block/curl.c +++ b/block/curl.c @@ -80,6 +80,7 @@ static CURLMcode __curl_multi_socket_action(CURLM *multi_handle, #define CURL_BLOCK_OPT_TIMEOUT_DEFAULT 5 struct BDRVCURLState; +struct CURLState; static bool libcurl_initialized; @@ -97,6 +98,7 @@ typedef struct CURLAIOCB { typedef struct CURLSocket { int fd; + struct CURLState *state; QLIST_ENTRY(CURLSocket) next; } CURLSocket; @@ -180,6 +182,7 @@ static int curl_sock_cb(CURL *curl, curl_socket_t fd, int action, if (!socket) { socket = g_new0(CURLSocket, 1); socket->fd = fd; + socket->state = state; QLIST_INSERT_HEAD(&state->sockets, socket, next); } socket = NULL;