qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] curl: remove compatibility code


From: Paolo Bonzini
Subject: Re: [PATCH] curl: remove compatibility code
Date: Tue, 17 Nov 2020 13:40:56 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0

On 17/11/20 12:46, Daniel P. Berrangé wrote:
On Tue, Nov 17, 2020 at 12:38:50PM +0100, Paolo Bonzini wrote:
cURL 7.16.0 was released in October 2006.  Just remove code that is
in all likelihood not being used anywhere.

Rather than assuming that, we should be picking our minimum version
and enforcing that in configure/meson.

Currently, we have a manual code compile check for curl_multi_setopt,
after doing a pkg-config check with no min version.

We should set a min version in pkg-config and drop the compile check
in configure.

Based on repology.org and our platform support matrix, RHEL-7 looks
like the oldest curl that we need to care about, 7.29.0

That is complicated a bit by the fact that curl is detected with both pkg-config and curl-config. That is probably unnecessary too, since we do not need any of the options that are exclusive to curl-config, such as --ca. If we can drop curl-config, moving the detection to meson is much easier.

Paolo


Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
  block/curl.c | 28 ----------------------------
  1 file changed, 28 deletions(-)

diff --git a/block/curl.c b/block/curl.c
index 4f907c47be..b77bfe12e7 100644
--- a/block/curl.c
+++ b/block/curl.c
@@ -37,26 +37,6 @@
// #define DEBUG_VERBOSE -#if LIBCURL_VERSION_NUM >= 0x071000
-/* The multi interface timer callback was introduced in 7.16.0 */
-#define NEED_CURL_TIMER_CALLBACK
-#define HAVE_SOCKET_ACTION
-#endif
-
-#ifndef HAVE_SOCKET_ACTION
-/* If curl_multi_socket_action isn't available, define it statically here in
- * terms of curl_multi_socket. Note that ev_bitmask will be ignored, which is
- * less efficient but still safe. */
-static CURLMcode __curl_multi_socket_action(CURLM *multi_handle,
-                                            curl_socket_t sockfd,
-                                            int ev_bitmask,
-                                            int *running_handles)
-{
-    return curl_multi_socket(multi_handle, sockfd, running_handles);
-}
-#define curl_multi_socket_action __curl_multi_socket_action
-#endif
-
  #define PROTOCOLS (CURLPROTO_HTTP | CURLPROTO_HTTPS | \
                     CURLPROTO_FTP | CURLPROTO_FTPS)
@@ -140,7 +120,6 @@ typedef struct BDRVCURLState {
  static void curl_clean_state(CURLState *s);
  static void curl_multi_do(void *arg);
-#ifdef NEED_CURL_TIMER_CALLBACK
  /* Called from curl_multi_do_locked, with s->mutex held.  */
  static int curl_timer_cb(CURLM *multi, long timeout_ms, void *opaque)
  {
@@ -156,7 +135,6 @@ static int curl_timer_cb(CURLM *multi, long timeout_ms, 
void *opaque)
      }
      return 0;
  }
-#endif
/* Called from curl_multi_do_locked, with s->mutex held. */
  static int curl_sock_cb(CURL *curl, curl_socket_t fd, int action,
@@ -433,7 +411,6 @@ static void curl_multi_do(void *arg)
static void curl_multi_timeout_do(void *arg)
  {
-#ifdef NEED_CURL_TIMER_CALLBACK
      BDRVCURLState *s = (BDRVCURLState *)arg;
      int running;
@@ -446,9 +423,6 @@ static void curl_multi_timeout_do(void *arg) curl_multi_check_completion(s);
      qemu_mutex_unlock(&s->mutex);
-#else
-    abort();
-#endif
  }
/* Called with s->mutex held. */
@@ -598,10 +572,8 @@ static void curl_attach_aio_context(BlockDriverState *bs,
      s->multi = curl_multi_init();
      s->aio_context = new_context;
      curl_multi_setopt(s->multi, CURLMOPT_SOCKETFUNCTION, curl_sock_cb);
-#ifdef NEED_CURL_TIMER_CALLBACK
      curl_multi_setopt(s->multi, CURLMOPT_TIMERDATA, s);
      curl_multi_setopt(s->multi, CURLMOPT_TIMERFUNCTION, curl_timer_cb);
-#endif
  }
static QemuOptsList runtime_opts = {
--
2.28.0



Regards,
Daniel





reply via email to

[Prev in Thread] Current Thread [Next in Thread]