Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions http-push.c
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ static char *xml_entities(const char *s)
static void curl_setup_http_get(CURL *curl, const char *url,
const char *custom_req)
{
curl_easy_setopt(curl, CURLOPT_HTTPGET, 1);
curl_easy_setopt(curl, CURLOPT_HTTPGET, 1L);
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, custom_req);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, fwrite_null);
Expand All @@ -205,17 +205,17 @@ static void curl_setup_http(CURL *curl, const char *url,
const char *custom_req, struct buffer *buffer,
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On the Git mailing list, Jeff King wrote (reply to this):

On Fri, Jun 06, 2025 at 09:29:24AM +0000, Johannes Schindelin via GitGitGadget wrote:

> Nearly identical compile errors afflicted recently-updated Debian
> setups, which have been addressed by `jk/curl-easy-setopt-typefix`.
> 
> However, on macOS Git is built with different build options, which
> uncovered more instances of `int` values that need to be cast to
> constants, which were not covered by 6f11c42e8edc (curl: fix integer
> constant typechecks with curl_easy_setopt(), 2025-06-04). Let's
> explicitly convert even those remaining `int` constants in
> `curl_easy_setopt()` calls to `long` parameters.

What different build options? The extra fixes are in code that is
compiled on all platforms. E.g.:

> --- a/remote-curl.c
> +++ b/remote-curl.c
> @@ -970,8 +970,8 @@ retry:
>  
>  	slot = get_active_slot();
>  
> -	curl_easy_setopt(slot->curl, CURLOPT_NOBODY, 0);
> -	curl_easy_setopt(slot->curl, CURLOPT_POST, 1);
> +	curl_easy_setopt(slot->curl, CURLOPT_NOBODY, 0L);
> +	curl_easy_setopt(slot->curl, CURLOPT_POST, 1L);
>  	curl_easy_setopt(slot->curl, CURLOPT_URL, rpc->service_url);
>  	curl_easy_setopt(slot->curl, CURLOPT_ENCODING, "");

So I think the root cause of the difference remains a mystery.

Curiously, if I build libcurl from source and link against it on my
Debian system, I get all of the errors (including the ones you're fixing
here). But with the exact same compile options (modulo pointing
CURL_CONFIG at the right spot), building against the Debian-packaged
libcurl is OK. Weird.

> In addition to looking at the compile errors of the `osx-gcc` job, I
> verified that there are no other instances of the same issue that need
> to be handled in this manner (and that might not be caught by our CI
> builds because of yet other build options that might skip those code
> parts), I ran the following command and inspected all 23 results
> manually to ensure that the fix is now actually complete:
> 
>   git grep -n curl_easy_setopt |
>   grep -ve ',.*, *[A-Za-z_"&]' \
>     -e ',.*, *[-0-9]*L)' \
>     -e ',.*,.* (long)'

I don't think that's sufficient for a full audit, because the first
"grep -v" regex is removing variable names and symbolic constants, which
might also need to be cast to long (i.e., my patches 2 and 3).

But as your patch fixes the exact set that I also needed when building
against my custom-built libcurl, I'm content to say we have spent enough
time digging. If there is some platform or makefile knob combination
that triggers one we missed, then curl's type-checker will catch it and
we can fix it then.

-Peff

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On the Git mailing list, Junio C Hamano wrote (reply to this):

Jeff King <[email protected]> writes:

> But as your patch fixes the exact set that I also needed when building
> against my custom-built libcurl, I'm content to say we have spent enough
> time digging. If there is some platform or makefile knob combination
> that triggers one we missed, then curl's type-checker will catch it and
> we can fix it then.

Yeah, thanks, both.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On the Git mailing list, Junio C Hamano wrote (reply to this):

"Johannes Schindelin via GitGitGadget" <[email protected]>
writes:

> From: Johannes Schindelin <[email protected]>
>
> As of Homebrew's update to cURL v8.14.0, there are new compile errors to
> be observed in the `osx-gcc` job of Git's CI builds:
>
>   In file included from http.h:8,
>                    from imap-send.c:36:
>   In function 'setup_curl',
>       inlined from 'curl_append_msgs_to_imap' at imap-send.c:1460:9,
>       inlined from 'cmd_main' at imap-send.c:1581:9:
>   /usr/local/Cellar/curl/8.14.0/include/curl/typecheck-gcc.h:50:15: error: call to '_curl_easy_setopt_err_long' declared with attribute warning: curl_easy_setopt expects a long argument [-Werror=attribute-warning]
>      50 |               _curl_easy_setopt_err_long();                             \
>         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
>   /usr/local/Cellar/curl/8.14.0/include/curl/curl.h:54:7: note: in definition of macro 'CURL_IGNORE_DEPRECATION'
>      54 |       statements \
>         |       ^~~~~~~~~~
>   imap-send.c:1423:9: note: in expansion of macro 'curl_easy_setopt'
>    1423 |         curl_easy_setopt(curl, CURLOPT_PORT, srvc->port);
>         |         ^~~~~~~~~~~~~~~~
>   [... many more instances of nearly identical warnings...]
>
> See for example this CI workflow run:
> https://github.com/git/git/actions/runs/15454602308/job/43504278284#step:4:307
>
> The most likely explanation is the entry "typecheck-gcc.h: fix the
> typechecks" in cURL's release notes (https://curl.se/ch/8.14.0.html).

All of the above were good descriptions in a standalone patch.

However.

The first two lines that mention that osx-gcc job was broken are
valuable introduction to flow into "Nearly identical ... Debian",
but except that, but as part of a series it is probably a tad too
verbose.

> Nearly identical compile errors afflicted recently-updated Debian
> setups, which have been addressed by `jk/curl-easy-setopt-typefix`.
>
> However, on macOS Git is built with different build options, which
> uncovered more instances of `int` values that need to be cast to
> constants, which were not covered by 6f11c42e8edc (curl: fix integer
> constant typechecks with curl_easy_setopt(), 2025-06-04). Let's
> explicitly convert even those remaining `int` constants in
> `curl_easy_setopt()` calls to `long` parameters.

It is a but curious what build option differences caused it, as I do
not think any "#ifdef DARWIN" is involved.

By the way, I notice that we refer to 6f11c42e (curl: fix integer
constant typechecks with curl_easy_setopt(), 2025-06-04), so I won't
be requeueing Peff's patches.  I locally applied these four patches
and the result of applying the first three on the same base was
identical to what I already had in jk/curl-easy-setopt-typefix topic
(you didn't have to resend them---which was unnecessary confusing).

> In addition to looking at the compile errors of the `osx-gcc` job, I
> verified that there are no other instances of the same issue that need
> to be handled in this manner (and that might not be caught by our CI
> builds because of yet other build options that might skip those code
> parts), I ran the following command and inspected all 23 results
> manually to ensure that the fix is now actually complete:
>
>   git grep -n curl_easy_setopt |
>   grep -ve ',.*, *[A-Za-z_"&]' \
>     -e ',.*, *[-0-9]*L)' \
>     -e ',.*,.* (long)'

Thanks for being careful.  But I think it is probably counter
productive to exclud the first pattern (presumably to catch CURL*
and other symbols), as the symbols defined by the library headers
still require to be cast to long; see:

  https://lore.kernel.org/git/[email protected]/

Anyway, the change this patch makes matches what you sent as a
"these still remain" yesterday, so I understand that your inspecting
the 23 results manually did not find any "ah, this too needs updated
but was missing from the one we saw yesterday", which is a wonderful
news.

With this patch replaced (but not 3 from Peff), I'll redo the 'next'
(thank me, whatever your deity is, and your good luck that I haven't
pushed it out, even though I did it with yesterday's material late
last night) and push the result out, but it won't be a while (even
though we already know the tree objects should be the same), as I
want to see if there are other urgent changes that have to go to
'next' before doing so.

Thanks.

> Signed-off-by: Johannes Schindelin <[email protected]>
> ---
>  http-push.c   |  6 +++---
>  http.c        | 22 +++++++++++-----------
>  remote-curl.c |  6 +++---
>  3 files changed, 17 insertions(+), 17 deletions(-)
>
> diff --git a/http-push.c b/http-push.c
> index 591e46ab260d..f5a92529a840 100644
> --- a/http-push.c
> +++ b/http-push.c
> @@ -205,7 +205,7 @@ static void curl_setup_http(CURL *curl, const char *url,
>  		const char *custom_req, struct buffer *buffer,
>  		curl_write_callback write_fn)
>  {
> -	curl_easy_setopt(curl, CURLOPT_UPLOAD, 1);
> +	curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L);
>  	curl_easy_setopt(curl, CURLOPT_URL, url);
>  	curl_easy_setopt(curl, CURLOPT_INFILE, buffer);
>  	curl_easy_setopt(curl, CURLOPT_INFILESIZE, buffer->buf.len);
> @@ -213,9 +213,9 @@ static void curl_setup_http(CURL *curl, const char *url,
>  	curl_easy_setopt(curl, CURLOPT_SEEKFUNCTION, seek_buffer);
>  	curl_easy_setopt(curl, CURLOPT_SEEKDATA, buffer);
>  	curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_fn);
> -	curl_easy_setopt(curl, CURLOPT_NOBODY, 0);
> +	curl_easy_setopt(curl, CURLOPT_NOBODY, 0L);
>  	curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, custom_req);
> -	curl_easy_setopt(curl, CURLOPT_UPLOAD, 1);
> +	curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L);
>  }
>  
>  static struct curl_slist *get_dav_token_headers(struct remote_lock *lock, enum dav_header_flag options)
> diff --git a/http.c b/http.c
> index ecbc47ea4b3f..d88e79fbde9c 100644
> --- a/http.c
> +++ b/http.c
> @@ -1540,9 +1540,9 @@ struct active_request_slot *get_active_slot(void)
>  	curl_easy_setopt(slot->curl, CURLOPT_WRITEFUNCTION, NULL);
>  	curl_easy_setopt(slot->curl, CURLOPT_POSTFIELDS, NULL);
>  	curl_easy_setopt(slot->curl, CURLOPT_POSTFIELDSIZE, -1L);
> -	curl_easy_setopt(slot->curl, CURLOPT_UPLOAD, 0);
> -	curl_easy_setopt(slot->curl, CURLOPT_HTTPGET, 1);
> -	curl_easy_setopt(slot->curl, CURLOPT_FAILONERROR, 1);
> +	curl_easy_setopt(slot->curl, CURLOPT_UPLOAD, 0L);
> +	curl_easy_setopt(slot->curl, CURLOPT_HTTPGET, 1L);
> +	curl_easy_setopt(slot->curl, CURLOPT_FAILONERROR, 1L);
>  	curl_easy_setopt(slot->curl, CURLOPT_RANGE, NULL);
>  
>  	/*
> @@ -1551,9 +1551,9 @@ struct active_request_slot *get_active_slot(void)
>  	 * HTTP_FOLLOW_* cases themselves.
>  	 */
>  	if (http_follow_config == HTTP_FOLLOW_ALWAYS)
> -		curl_easy_setopt(slot->curl, CURLOPT_FOLLOWLOCATION, 1);
> +		curl_easy_setopt(slot->curl, CURLOPT_FOLLOWLOCATION, 1L);
>  	else
> -		curl_easy_setopt(slot->curl, CURLOPT_FOLLOWLOCATION, 0);
> +		curl_easy_setopt(slot->curl, CURLOPT_FOLLOWLOCATION, 0L);
>  
>  	curl_easy_setopt(slot->curl, CURLOPT_IPRESOLVE, git_curl_ipresolve);
>  	curl_easy_setopt(slot->curl, CURLOPT_HTTPAUTH, http_auth_methods);
> @@ -2120,12 +2120,12 @@ static int http_request(const char *url,
>  	int ret;
>  
>  	slot = get_active_slot();
> -	curl_easy_setopt(slot->curl, CURLOPT_HTTPGET, 1);
> +	curl_easy_setopt(slot->curl, CURLOPT_HTTPGET, 1L);
>  
>  	if (!result) {
> -		curl_easy_setopt(slot->curl, CURLOPT_NOBODY, 1);
> +		curl_easy_setopt(slot->curl, CURLOPT_NOBODY, 1L);
>  	} else {
> -		curl_easy_setopt(slot->curl, CURLOPT_NOBODY, 0);
> +		curl_easy_setopt(slot->curl, CURLOPT_NOBODY, 0L);
>  		curl_easy_setopt(slot->curl, CURLOPT_WRITEDATA, result);
>  
>  		if (target == HTTP_REQUEST_FILE) {
> @@ -2151,7 +2151,7 @@ static int http_request(const char *url,
>  		strbuf_addstr(&buf, " no-cache");
>  	if (options && options->initial_request &&
>  	    http_follow_config == HTTP_FOLLOW_INITIAL)
> -		curl_easy_setopt(slot->curl, CURLOPT_FOLLOWLOCATION, 1);
> +		curl_easy_setopt(slot->curl, CURLOPT_FOLLOWLOCATION, 1L);
>  
>  	headers = curl_slist_append(headers, buf.buf);
>  
> @@ -2170,7 +2170,7 @@ static int http_request(const char *url,
>  	curl_easy_setopt(slot->curl, CURLOPT_URL, url);
>  	curl_easy_setopt(slot->curl, CURLOPT_HTTPHEADER, headers);
>  	curl_easy_setopt(slot->curl, CURLOPT_ENCODING, "");
> -	curl_easy_setopt(slot->curl, CURLOPT_FAILONERROR, 0);
> +	curl_easy_setopt(slot->curl, CURLOPT_FAILONERROR, 0L);
>  
>  	ret = run_one_slot(slot, &results);
>  
> @@ -2750,7 +2750,7 @@ struct http_object_request *new_http_object_request(const char *base_url,
>  	freq->headers = object_request_headers();
>  
>  	curl_easy_setopt(freq->slot->curl, CURLOPT_WRITEDATA, freq);
> -	curl_easy_setopt(freq->slot->curl, CURLOPT_FAILONERROR, 0);
> +	curl_easy_setopt(freq->slot->curl, CURLOPT_FAILONERROR, 0L);
>  	curl_easy_setopt(freq->slot->curl, CURLOPT_WRITEFUNCTION, fwrite_sha1_file);
>  	curl_easy_setopt(freq->slot->curl, CURLOPT_ERRORBUFFER, freq->errorstr);
>  	curl_easy_setopt(freq->slot->curl, CURLOPT_URL, freq->url);
> diff --git a/remote-curl.c b/remote-curl.c
> index 6183772191f2..b8bc3a80cf41 100644
> --- a/remote-curl.c
> +++ b/remote-curl.c
> @@ -970,8 +970,8 @@ retry:
>  
>  	slot = get_active_slot();
>  
> -	curl_easy_setopt(slot->curl, CURLOPT_NOBODY, 0);
> -	curl_easy_setopt(slot->curl, CURLOPT_POST, 1);
> +	curl_easy_setopt(slot->curl, CURLOPT_NOBODY, 0L);
> +	curl_easy_setopt(slot->curl, CURLOPT_POST, 1L);
>  	curl_easy_setopt(slot->curl, CURLOPT_URL, rpc->service_url);
>  	curl_easy_setopt(slot->curl, CURLOPT_ENCODING, "");
>  
> @@ -1058,7 +1058,7 @@ retry:
>  	rpc_in_data.check_pktline = stateless_connect;
>  	memset(&rpc_in_data.pktline_state, 0, sizeof(rpc_in_data.pktline_state));
>  	curl_easy_setopt(slot->curl, CURLOPT_WRITEDATA, &rpc_in_data);
> -	curl_easy_setopt(slot->curl, CURLOPT_FAILONERROR, 0);
> +	curl_easy_setopt(slot->curl, CURLOPT_FAILONERROR, 0L);
>  
>  
>  	rpc->any_written = 0;

curl_write_callback write_fn)
{
curl_easy_setopt(curl, CURLOPT_UPLOAD, 1);
curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L);
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_INFILE, buffer);
curl_easy_setopt(curl, CURLOPT_INFILESIZE, buffer->buf.len);
curl_easy_setopt(curl, CURLOPT_READFUNCTION, fread_buffer);
curl_easy_setopt(curl, CURLOPT_SEEKFUNCTION, seek_buffer);
curl_easy_setopt(curl, CURLOPT_SEEKDATA, buffer);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_fn);
curl_easy_setopt(curl, CURLOPT_NOBODY, 0);
curl_easy_setopt(curl, CURLOPT_NOBODY, 0L);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, custom_req);
curl_easy_setopt(curl, CURLOPT_UPLOAD, 1);
curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L);
}

static struct curl_slist *get_dav_token_headers(struct remote_lock *lock, enum dav_header_flag options)
Expand Down
50 changes: 25 additions & 25 deletions http.c
Original file line number Diff line number Diff line change
Expand Up @@ -1019,13 +1019,13 @@ static CURL *get_curl_handle(void)
die("curl_easy_init failed");

if (!curl_ssl_verify) {
curl_easy_setopt(result, CURLOPT_SSL_VERIFYPEER, 0);
curl_easy_setopt(result, CURLOPT_SSL_VERIFYHOST, 0);
curl_easy_setopt(result, CURLOPT_SSL_VERIFYPEER, 0L);
curl_easy_setopt(result, CURLOPT_SSL_VERIFYHOST, 0L);
} else {
/* Verify authenticity of the peer's certificate */
curl_easy_setopt(result, CURLOPT_SSL_VERIFYPEER, 1);
curl_easy_setopt(result, CURLOPT_SSL_VERIFYPEER, 1L);
/* The name in the cert must match whom we tried to connect */
curl_easy_setopt(result, CURLOPT_SSL_VERIFYHOST, 2);
curl_easy_setopt(result, CURLOPT_SSL_VERIFYHOST, 2L);
}

if (curl_http_version) {
Expand Down Expand Up @@ -1057,7 +1057,7 @@ static CURL *get_curl_handle(void)

if (http_ssl_backend && !strcmp("schannel", http_ssl_backend) &&
!http_schannel_check_revoke) {
curl_easy_setopt(result, CURLOPT_SSL_OPTIONS, CURLSSLOPT_NO_REVOKE);
curl_easy_setopt(result, CURLOPT_SSL_OPTIONS, (long)CURLSSLOPT_NO_REVOKE);
}

if (http_proactive_auth != PROACTIVE_AUTH_NONE)
Expand Down Expand Up @@ -1117,8 +1117,8 @@ static CURL *get_curl_handle(void)
curl_low_speed_time);
}

curl_easy_setopt(result, CURLOPT_MAXREDIRS, 20);
curl_easy_setopt(result, CURLOPT_POSTREDIR, CURL_REDIR_POST_ALL);
curl_easy_setopt(result, CURLOPT_MAXREDIRS, 20L);
curl_easy_setopt(result, CURLOPT_POSTREDIR, (long)CURL_REDIR_POST_ALL);

#ifdef GIT_CURL_HAVE_CURLOPT_PROTOCOLS_STR
{
Expand Down Expand Up @@ -1151,7 +1151,7 @@ static CURL *get_curl_handle(void)
user_agent ? user_agent : git_user_agent());

if (curl_ftp_no_epsv)
curl_easy_setopt(result, CURLOPT_FTP_USE_EPSV, 0);
curl_easy_setopt(result, CURLOPT_FTP_USE_EPSV, 0L);

if (curl_ssl_try)
curl_easy_setopt(result, CURLOPT_USE_SSL, CURLUSESSL_TRY);
Expand Down Expand Up @@ -1193,18 +1193,18 @@ static CURL *get_curl_handle(void)

if (starts_with(curl_http_proxy, "socks5h"))
curl_easy_setopt(result,
CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5_HOSTNAME);
CURLOPT_PROXYTYPE, (long)CURLPROXY_SOCKS5_HOSTNAME);
else if (starts_with(curl_http_proxy, "socks5"))
curl_easy_setopt(result,
CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
CURLOPT_PROXYTYPE, (long)CURLPROXY_SOCKS5);
else if (starts_with(curl_http_proxy, "socks4a"))
curl_easy_setopt(result,
CURLOPT_PROXYTYPE, CURLPROXY_SOCKS4A);
CURLOPT_PROXYTYPE, (long)CURLPROXY_SOCKS4A);
else if (starts_with(curl_http_proxy, "socks"))
curl_easy_setopt(result,
CURLOPT_PROXYTYPE, CURLPROXY_SOCKS4);
CURLOPT_PROXYTYPE, (long)CURLPROXY_SOCKS4);
else if (starts_with(curl_http_proxy, "https")) {
curl_easy_setopt(result, CURLOPT_PROXYTYPE, CURLPROXY_HTTPS);
curl_easy_setopt(result, CURLOPT_PROXYTYPE, (long)CURLPROXY_HTTPS);

if (http_proxy_ssl_cert)
curl_easy_setopt(result, CURLOPT_PROXY_SSLCERT, http_proxy_ssl_cert);
Expand Down Expand Up @@ -1254,7 +1254,7 @@ static CURL *get_curl_handle(void)
}
init_curl_proxy_auth(result);

curl_easy_setopt(result, CURLOPT_TCP_KEEPALIVE, 1);
curl_easy_setopt(result, CURLOPT_TCP_KEEPALIVE, 1L);

if (curl_tcp_keepidle > -1)
curl_easy_setopt(result, CURLOPT_TCP_KEEPIDLE,
Expand Down Expand Up @@ -1540,9 +1540,9 @@ struct active_request_slot *get_active_slot(void)
curl_easy_setopt(slot->curl, CURLOPT_WRITEFUNCTION, NULL);
curl_easy_setopt(slot->curl, CURLOPT_POSTFIELDS, NULL);
curl_easy_setopt(slot->curl, CURLOPT_POSTFIELDSIZE, -1L);
curl_easy_setopt(slot->curl, CURLOPT_UPLOAD, 0);
curl_easy_setopt(slot->curl, CURLOPT_HTTPGET, 1);
curl_easy_setopt(slot->curl, CURLOPT_FAILONERROR, 1);
curl_easy_setopt(slot->curl, CURLOPT_UPLOAD, 0L);
curl_easy_setopt(slot->curl, CURLOPT_HTTPGET, 1L);
curl_easy_setopt(slot->curl, CURLOPT_FAILONERROR, 1L);
curl_easy_setopt(slot->curl, CURLOPT_RANGE, NULL);

/*
Expand All @@ -1551,9 +1551,9 @@ struct active_request_slot *get_active_slot(void)
* HTTP_FOLLOW_* cases themselves.
*/
if (http_follow_config == HTTP_FOLLOW_ALWAYS)
curl_easy_setopt(slot->curl, CURLOPT_FOLLOWLOCATION, 1);
curl_easy_setopt(slot->curl, CURLOPT_FOLLOWLOCATION, 1L);
else
curl_easy_setopt(slot->curl, CURLOPT_FOLLOWLOCATION, 0);
curl_easy_setopt(slot->curl, CURLOPT_FOLLOWLOCATION, 0L);

curl_easy_setopt(slot->curl, CURLOPT_IPRESOLVE, git_curl_ipresolve);
curl_easy_setopt(slot->curl, CURLOPT_HTTPAUTH, http_auth_methods);
Expand Down Expand Up @@ -2120,12 +2120,12 @@ static int http_request(const char *url,
int ret;

slot = get_active_slot();
curl_easy_setopt(slot->curl, CURLOPT_HTTPGET, 1);
curl_easy_setopt(slot->curl, CURLOPT_HTTPGET, 1L);

if (!result) {
curl_easy_setopt(slot->curl, CURLOPT_NOBODY, 1);
curl_easy_setopt(slot->curl, CURLOPT_NOBODY, 1L);
} else {
curl_easy_setopt(slot->curl, CURLOPT_NOBODY, 0);
curl_easy_setopt(slot->curl, CURLOPT_NOBODY, 0L);
curl_easy_setopt(slot->curl, CURLOPT_WRITEDATA, result);

if (target == HTTP_REQUEST_FILE) {
Expand All @@ -2151,7 +2151,7 @@ static int http_request(const char *url,
strbuf_addstr(&buf, " no-cache");
if (options && options->initial_request &&
http_follow_config == HTTP_FOLLOW_INITIAL)
curl_easy_setopt(slot->curl, CURLOPT_FOLLOWLOCATION, 1);
curl_easy_setopt(slot->curl, CURLOPT_FOLLOWLOCATION, 1L);

headers = curl_slist_append(headers, buf.buf);

Expand All @@ -2170,7 +2170,7 @@ static int http_request(const char *url,
curl_easy_setopt(slot->curl, CURLOPT_URL, url);
curl_easy_setopt(slot->curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(slot->curl, CURLOPT_ENCODING, "");
curl_easy_setopt(slot->curl, CURLOPT_FAILONERROR, 0);
curl_easy_setopt(slot->curl, CURLOPT_FAILONERROR, 0L);

ret = run_one_slot(slot, &results);

Expand Down Expand Up @@ -2750,7 +2750,7 @@ struct http_object_request *new_http_object_request(const char *base_url,
freq->headers = object_request_headers();

curl_easy_setopt(freq->slot->curl, CURLOPT_WRITEDATA, freq);
curl_easy_setopt(freq->slot->curl, CURLOPT_FAILONERROR, 0);
curl_easy_setopt(freq->slot->curl, CURLOPT_FAILONERROR, 0L);
curl_easy_setopt(freq->slot->curl, CURLOPT_WRITEFUNCTION, fwrite_sha1_file);
curl_easy_setopt(freq->slot->curl, CURLOPT_ERRORBUFFER, freq->errorstr);
curl_easy_setopt(freq->slot->curl, CURLOPT_URL, freq->url);
Expand Down
6 changes: 3 additions & 3 deletions imap-send.c
Original file line number Diff line number Diff line change
Expand Up @@ -1420,7 +1420,7 @@ static CURL *setup_curl(struct imap_server_conf *srvc, struct credential *cred)

curl_easy_setopt(curl, CURLOPT_URL, path.buf);
strbuf_release(&path);
curl_easy_setopt(curl, CURLOPT_PORT, srvc->port);
curl_easy_setopt(curl, CURLOPT_PORT, (long)srvc->port);

if (srvc->auth_method) {
struct strbuf auth = STRBUF_INIT;
Expand All @@ -1433,8 +1433,8 @@ static CURL *setup_curl(struct imap_server_conf *srvc, struct credential *cred)
if (!srvc->use_ssl)
curl_easy_setopt(curl, CURLOPT_USE_SSL, (long)CURLUSESSL_TRY);

curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, srvc->ssl_verify);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, srvc->ssl_verify);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, (long)srvc->ssl_verify);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, (long)srvc->ssl_verify);

curl_easy_setopt(curl, CURLOPT_READFUNCTION, fread_buffer);

Expand Down
12 changes: 6 additions & 6 deletions remote-curl.c
Original file line number Diff line number Diff line change
Expand Up @@ -877,12 +877,12 @@ static int probe_rpc(struct rpc_state *rpc, struct slot_results *results)
headers = curl_slist_append(headers, rpc->hdr_content_type);
headers = curl_slist_append(headers, rpc->hdr_accept);

curl_easy_setopt(slot->curl, CURLOPT_NOBODY, 0);
curl_easy_setopt(slot->curl, CURLOPT_POST, 1);
curl_easy_setopt(slot->curl, CURLOPT_NOBODY, 0L);
curl_easy_setopt(slot->curl, CURLOPT_POST, 1L);
curl_easy_setopt(slot->curl, CURLOPT_URL, rpc->service_url);
curl_easy_setopt(slot->curl, CURLOPT_ENCODING, NULL);
curl_easy_setopt(slot->curl, CURLOPT_POSTFIELDS, "0000");
curl_easy_setopt(slot->curl, CURLOPT_POSTFIELDSIZE, 4);
curl_easy_setopt(slot->curl, CURLOPT_POSTFIELDSIZE, 4L);
curl_easy_setopt(slot->curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(slot->curl, CURLOPT_WRITEFUNCTION, fwrite_buffer);
curl_easy_setopt(slot->curl, CURLOPT_WRITEDATA, &buf);
Expand Down Expand Up @@ -970,8 +970,8 @@ static int post_rpc(struct rpc_state *rpc, int stateless_connect, int flush_rece

slot = get_active_slot();

curl_easy_setopt(slot->curl, CURLOPT_NOBODY, 0);
curl_easy_setopt(slot->curl, CURLOPT_POST, 1);
curl_easy_setopt(slot->curl, CURLOPT_NOBODY, 0L);
curl_easy_setopt(slot->curl, CURLOPT_POST, 1L);
curl_easy_setopt(slot->curl, CURLOPT_URL, rpc->service_url);
curl_easy_setopt(slot->curl, CURLOPT_ENCODING, "");

Expand Down Expand Up @@ -1058,7 +1058,7 @@ static int post_rpc(struct rpc_state *rpc, int stateless_connect, int flush_rece
rpc_in_data.check_pktline = stateless_connect;
memset(&rpc_in_data.pktline_state, 0, sizeof(rpc_in_data.pktline_state));
curl_easy_setopt(slot->curl, CURLOPT_WRITEDATA, &rpc_in_data);
curl_easy_setopt(slot->curl, CURLOPT_FAILONERROR, 0);
curl_easy_setopt(slot->curl, CURLOPT_FAILONERROR, 0L);


rpc->any_written = 0;
Expand Down
Loading