curl: update to 8.6.0
* add patch to fix `time_starttransfer` Signed-off-by: sbwml <admin@cooluc.com>
This commit is contained in:
parent
bbc8a53265
commit
580e85b934
4
Makefile
4
Makefile
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
|||||||
include $(INCLUDE_DIR)/nls.mk
|
include $(INCLUDE_DIR)/nls.mk
|
||||||
|
|
||||||
PKG_NAME:=curl
|
PKG_NAME:=curl
|
||||||
PKG_VERSION:=8.5.0
|
PKG_VERSION:=8.6.0
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||||
@ -17,7 +17,7 @@ PKG_SOURCE_URL:=https://github.com/curl/curl/releases/download/curl-$(subst .,_,
|
|||||||
https://dl.uxnr.de/mirror/curl/ \
|
https://dl.uxnr.de/mirror/curl/ \
|
||||||
https://curl.askapache.com/download/ \
|
https://curl.askapache.com/download/ \
|
||||||
https://curl.se/download/
|
https://curl.se/download/
|
||||||
PKG_HASH:=ce4b6a6655431147624aaf582632a36fe1ade262d5fab385c60f78942dd8d87b
|
PKG_HASH:=b4785f2d8877fa92c0e45d7155cf8cc6750dbda961f4b1a45bcbec990cf2fa9b
|
||||||
|
|
||||||
PKG_LICENSE:=MIT
|
PKG_LICENSE:=MIT
|
||||||
PKG_LICENSE_FILES:=COPYING
|
PKG_LICENSE_FILES:=COPYING
|
||||||
|
@ -0,0 +1,93 @@
|
|||||||
|
From 1db0792c0d11855dcad1ac78817818f8f270c241 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Stefan Eissing <stefan@eissing.org>
|
||||||
|
Date: Tue, 5 Mar 2024 11:48:16 +0100
|
||||||
|
Subject: [PATCH] TIMER_STARTTRANSFER: set the same for everyone
|
||||||
|
|
||||||
|
- set TIMER_STARTTRANSFER on seeing the first response bytes
|
||||||
|
in the download client writer, not coming from a CONNECT
|
||||||
|
- initialized the timer the same way for all protocols
|
||||||
|
- remove explicit setting of TIMER_STARTTRANSFER in file.c
|
||||||
|
and c-hyper.c
|
||||||
|
|
||||||
|
Closes #13052
|
||||||
|
---
|
||||||
|
lib/c-hyper.c | 3 ---
|
||||||
|
lib/file.c | 2 --
|
||||||
|
lib/sendf.c | 22 +++++++++++++---------
|
||||||
|
3 files changed, 13 insertions(+), 14 deletions(-)
|
||||||
|
|
||||||
|
--- a/lib/c-hyper.c
|
||||||
|
+++ b/lib/c-hyper.c
|
||||||
|
@@ -152,9 +152,6 @@ static int hyper_each_header(void *userd
|
||||||
|
return HYPER_ITER_BREAK;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if(!data->req.bytecount)
|
||||||
|
- Curl_pgrsTime(data, TIMER_STARTTRANSFER);
|
||||||
|
-
|
||||||
|
Curl_dyn_reset(&data->state.headerb);
|
||||||
|
if(name_len) {
|
||||||
|
if(Curl_dyn_addf(&data->state.headerb, "%.*s: %.*s\r\n",
|
||||||
|
--- a/lib/file.c
|
||||||
|
+++ b/lib/file.c
|
||||||
|
@@ -541,8 +541,6 @@ static CURLcode file_do(struct Curl_easy
|
||||||
|
return CURLE_BAD_DOWNLOAD_RESUME;
|
||||||
|
}
|
||||||
|
|
||||||
|
- Curl_pgrsTime(data, TIMER_STARTTRANSFER);
|
||||||
|
-
|
||||||
|
while(!result) {
|
||||||
|
char tmpbuf[8*1024];
|
||||||
|
ssize_t nread;
|
||||||
|
--- a/lib/sendf.c
|
||||||
|
+++ b/lib/sendf.c
|
||||||
|
@@ -541,28 +541,32 @@ static size_t get_max_body_write_len(str
|
||||||
|
return SIZE_T_MAX;
|
||||||
|
}
|
||||||
|
|
||||||
|
+struct cw_download_ctx {
|
||||||
|
+ struct Curl_cwriter super;
|
||||||
|
+ BIT(started_response);
|
||||||
|
+};
|
||||||
|
/* Download client writer in phase CURL_CW_PROTOCOL that
|
||||||
|
* sees the "real" download body data. */
|
||||||
|
static CURLcode cw_download_write(struct Curl_easy *data,
|
||||||
|
struct Curl_cwriter *writer, int type,
|
||||||
|
const char *buf, size_t nbytes)
|
||||||
|
{
|
||||||
|
+ struct cw_download_ctx *ctx = (struct cw_download_ctx *)writer;
|
||||||
|
CURLcode result;
|
||||||
|
size_t nwrite, excess_len = 0;
|
||||||
|
+ bool is_connect = !!(type & CLIENTWRITE_CONNECT);
|
||||||
|
+
|
||||||
|
+ if(!is_connect && !ctx->started_response) {
|
||||||
|
+ Curl_pgrsTime(data, TIMER_STARTTRANSFER);
|
||||||
|
+ ctx->started_response = TRUE;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
if(!(type & CLIENTWRITE_BODY)) {
|
||||||
|
- if((type & CLIENTWRITE_CONNECT) && data->set.suppress_connect_headers)
|
||||||
|
+ if(is_connect && data->set.suppress_connect_headers)
|
||||||
|
return CURLE_OK;
|
||||||
|
return Curl_cwriter_write(data, writer->next, type, buf, nbytes);
|
||||||
|
}
|
||||||
|
|
||||||
|
- if(!data->req.bytecount) {
|
||||||
|
- Curl_pgrsTime(data, TIMER_STARTTRANSFER);
|
||||||
|
- if(data->req.exp100 > EXP100_SEND_DATA)
|
||||||
|
- /* set time stamp to compare with when waiting for the 100 */
|
||||||
|
- data->req.start100 = Curl_now();
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
/* Here, we deal with REAL BODY bytes. All filtering and transfer
|
||||||
|
* encodings have been applied and only the true content, e.g. BODY,
|
||||||
|
* bytes are passed here.
|
||||||
|
@@ -646,7 +650,7 @@ static const struct Curl_cwtype cw_downl
|
||||||
|
Curl_cwriter_def_init,
|
||||||
|
cw_download_write,
|
||||||
|
Curl_cwriter_def_close,
|
||||||
|
- sizeof(struct Curl_cwriter)
|
||||||
|
+ sizeof(struct cw_download_ctx)
|
||||||
|
};
|
||||||
|
|
||||||
|
/* RAW client writer in phase CURL_CW_RAW that
|
@ -1,6 +1,6 @@
|
|||||||
--- a/Makefile.am
|
--- a/Makefile.am
|
||||||
+++ b/Makefile.am
|
+++ b/Makefile.am
|
||||||
@@ -134,7 +134,7 @@ CLEANFILES = $(VC14_LIBVCXPROJ) \
|
@@ -135,7 +135,7 @@ CLEANFILES = $(VC14_LIBVCXPROJ) $(VC14_S
|
||||||
bin_SCRIPTS = curl-config
|
bin_SCRIPTS = curl-config
|
||||||
|
|
||||||
SUBDIRS = lib src
|
SUBDIRS = lib src
|
||||||
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
pkgconfigdir = $(libdir)/pkgconfig
|
pkgconfigdir = $(libdir)/pkgconfig
|
||||||
pkgconfig_DATA = libcurl.pc
|
pkgconfig_DATA = libcurl.pc
|
||||||
@@ -248,8 +248,6 @@ cygwinbin:
|
@@ -243,8 +243,6 @@ cygwinbin:
|
||||||
# We extend the standard install with a custom hook:
|
# We extend the standard install with a custom hook:
|
||||||
install-data-hook:
|
install-data-hook:
|
||||||
(cd include && $(MAKE) install)
|
(cd include && $(MAKE) install)
|
||||||
|
Loading…
Reference in New Issue
Block a user