From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: Elia Pinto <gitter.spiros@gmail.com>
Cc: git@vger.kernel.org, gitster@pobox.com
Subject: Re: [PATCH 1/2] curl: streamline conditional compilation
Date: Wed, 16 Mar 2022 15:43:09 +0100 [thread overview]
Message-ID: <220316.86h77ydkfl.gmgdl@evledraar.gmail.com> (raw)
In-Reply-To: <20220316140106.14678-2-gitter.spiros@gmail.com>
On Wed, Mar 16 2022, Elia Pinto wrote:
[Meta: Please chehck the -vN and --in-reply-to options to
git-format-patch et al, i.e. make a v2 a v2, and have it reply to the v1
patch or cover-letter.]
> Earlier we introduced git-curl-compat.h that defines bunch of
> GIT_CURL_HAVE_X where X is a feature of cURL library we care about,
> to make it easily manageable to conditionally compile code against
> the version of cURL library we are given.
>
> There however are two oddball macros. Instead of checking
> GIT_CURL_HAVE_CURL_SOCKOPT_OK and using a fallback definition for
> CURL_SOCKOPT_OK macro, we just defined CURL_SOCKOPT_OK to a safe
> value when compiling against an old version that lack the symbol.
The way it was being done before was intentional & discused on list.
See my original
https://lore.kernel.org/git/patch-v3-7.7-93a2775d0ee-20210730T092843Z-avarab@gmail.com/
which did it pretty much like that, and Junio's subsequent
follow-up. I.e. this breadcrumb trail:
https://lore.kernel.org/git/?q=CURL_SOCKOPT_OK
> -#if LIBCURL_VERSION_NUM < 0x071505
> -#define CURL_SOCKOPT_OK 0
> +#if LIBCURL_VERSION_NUM >= 0x071505
> +#define GIT_CURL_HAVE_CURL_SOCKOPT_OK 1
> #endif
IOW we should drop this.
> /**
> * CURLOPT_TCP_KEEPALIVE was added in 7.25.0, released in March 2012.
> */
> #if LIBCURL_VERSION_NUM >= 0x071900
> -#define GITCURL_HAVE_CURLOPT_TCP_KEEPALIVE 1
> +#define GIT_CURL_HAVE_CURLOPT_TCP_KEEPALIVE 1
> #endif
This change is good.
> diff --git a/http.c b/http.c
> index 229da4d148..d7ad7db1d6 100644
> --- a/http.c
> +++ b/http.c
> @@ -517,7 +517,7 @@ static int has_proxy_cert_password(void)
> }
> #endif
>
> -#ifdef GITCURL_HAVE_CURLOPT_TCP_KEEPALIVE
> +#ifdef GIT_CURL_HAVE_CURLOPT_TCP_KEEPALIVE
> static void set_curl_keepalive(CURL *c)
> {
As is this.
> curl_easy_setopt(c, CURLOPT_TCP_KEEPALIVE, 1);
> @@ -536,7 +536,9 @@ static int sockopt_callback(void *client, curl_socket_t fd, curlsocktype type)
> rc = setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, (void *)&ka, len);
> if (rc < 0)
> warning_errno("unable to set SO_KEEPALIVE on socket");
> -
> +#ifndef GIT_CURL_HAVE_CURL_SOCKOPT_OK
> +#define CURL_SOCKOPT_OK 0
> +#endif
> return CURL_SOCKOPT_OK;
> }
The whole point of git-curl-compat.h and its big-brother
git-compat-util.h is that we'd prefer not to have such hacks inline if
at all possible.
For most of the GIT_CURL_* stuff we need to since it's conditionally
using symbols etc., but in this case we can just define a fallback
centrally and not worry about it in the code.
So the pre-image really is much better.
next prev parent reply other threads:[~2022-03-16 14:46 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-16 14:01 [PATCH 0/2] addition of all symbols defined by curl Elia Pinto
2022-03-16 14:01 ` [PATCH 1/2] curl: streamline conditional compilation Elia Pinto
2022-03-16 14:43 ` Ævar Arnfjörð Bjarmason [this message]
2022-03-16 18:04 ` Junio C Hamano
2022-03-16 14:01 ` [PATCH 2/2] git-curl-compat.h: addition of all symbols defined by curl Elia Pinto
2022-03-16 14:47 ` Ævar Arnfjörð Bjarmason
2022-03-16 22:24 ` Elia Pinto
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=220316.86h77ydkfl.gmgdl@evledraar.gmail.com \
--to=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=gitter.spiros@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.