mirror of
https://github.com/git/git.git
synced 2024-10-28 04:49:43 +01:00
Merge branch 'jk/libcurl-8.7-regression-workaround'
Fix was added to work around a regression in libcURL 8.7.0 (which has already been fixed in their tip of the tree). * jk/libcurl-8.7-regression-workaround: remote-curl: add Transfer-Encoding header only for older curl INSTALL: bump libcurl version to 7.21.3 http: reset POSTFIELDSIZE when clearing curl handle
This commit is contained in:
commit
eba498a774
4 changed files with 14 additions and 1 deletions
2
INSTALL
2
INSTALL
|
@ -139,7 +139,7 @@ Issues of note:
|
|||
not need that functionality, use NO_CURL to build without
|
||||
it.
|
||||
|
||||
Git requires version "7.19.5" or later of "libcurl" to build
|
||||
Git requires version "7.21.3" or later of "libcurl" to build
|
||||
without NO_CURL. This version requirement may be bumped in
|
||||
the future.
|
||||
|
||||
|
|
|
@ -126,6 +126,15 @@
|
|||
#define GIT_CURL_HAVE_CURLSSLSET_NO_BACKENDS
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Versions before curl 7.66.0 (September 2019) required manually setting the
|
||||
* transfer-encoding for a streaming POST; after that this is handled
|
||||
* automatically.
|
||||
*/
|
||||
#if LIBCURL_VERSION_NUM < 0x074200
|
||||
#define GIT_CURL_NEED_TRANSFER_ENCODING_HEADER
|
||||
#endif
|
||||
|
||||
/**
|
||||
* CURLOPT_PROTOCOLS_STR and CURLOPT_REDIR_PROTOCOLS_STR were added in 7.85.0,
|
||||
* released in August 2022.
|
||||
|
|
1
http.c
1
http.c
|
@ -1452,6 +1452,7 @@ struct active_request_slot *get_active_slot(void)
|
|||
curl_easy_setopt(slot->curl, CURLOPT_READFUNCTION, NULL);
|
||||
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);
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#include "git-compat-util.h"
|
||||
#include "git-curl-compat.h"
|
||||
#include "config.h"
|
||||
#include "environment.h"
|
||||
#include "gettext.h"
|
||||
|
@ -955,7 +956,9 @@ static int post_rpc(struct rpc_state *rpc, int stateless_connect, int flush_rece
|
|||
/* The request body is large and the size cannot be predicted.
|
||||
* We must use chunked encoding to send it.
|
||||
*/
|
||||
#ifdef GIT_CURL_NEED_TRANSFER_ENCODING_HEADER
|
||||
headers = curl_slist_append(headers, "Transfer-Encoding: chunked");
|
||||
#endif
|
||||
rpc->initial_buffer = 1;
|
||||
curl_easy_setopt(slot->curl, CURLOPT_READFUNCTION, rpc_out);
|
||||
curl_easy_setopt(slot->curl, CURLOPT_INFILE, rpc);
|
||||
|
|
Loading…
Reference in a new issue