Compare commits

..

No commits in common. "2aa1d5a3fadc3ba42dcd3a18bb44851b202b5332" and "580e85b934ff8eb2468eb85fe61001973a7aaa1f" have entirely different histories.

4 changed files with 103 additions and 21 deletions

View File

@ -111,13 +111,8 @@ config LIBCURL_NGHTTP3
default n
config LIBCURL_NGTCP2
bool "QUIC protocol (ngtcp2)"
depends on LIBCURL_OPENSSL && LIBCURL_NGHTTP3
default n
config LIBCURL_OPENSSL_QUIC
bool "QUIC protocol (openssl quic)"
depends on LIBCURL_OPENSSL && LIBCURL_NGHTTP3
bool "QUIC protocol"
depends on LIBCURL_OPENSSL
default n
comment "Miscellaneous"

View File

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/nls.mk
PKG_NAME:=curl
PKG_VERSION:=8.11.1
PKG_VERSION:=8.6.0
PKG_RELEASE:=1
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://curl.askapache.com/download/ \
https://curl.se/download/
PKG_HASH:=e9773ad1dfa21aedbfe8e1ef24c9478fa780b1b3d4f763c98dd04629b5e43485
PKG_HASH:=b4785f2d8877fa92c0e45d7155cf8cc6750dbda961f4b1a45bcbec990cf2fa9b
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=COPYING
@ -60,7 +60,6 @@ PKG_CONFIG_DEPENDS:= \
CONFIG_LIBCURL_NGHTTP2 \
CONFIG_LIBCURL_NGHTTP3 \
CONFIG_LIBCURL_NGTCP2 \
CONFIG_LIBCURL_OPENSSL_QUIC \
\
CONFIG_LIBCURL_COOKIES \
CONFIG_LIBCURL_CRYPTO_AUTH \
@ -140,7 +139,6 @@ CONFIGURE_ARGS += \
$(if $(CONFIG_LIBCURL_NGHTTP2),--with-nghttp2="$(STAGING_DIR)/usr",--without-nghttp2) \
$(if $(CONFIG_LIBCURL_NGHTTP3),--with-nghttp3="$(STAGING_DIR)/usr",--without-nghttp3) \
$(if $(CONFIG_LIBCURL_NGTCP2),--with-ngtcp2="$(STAGING_DIR)/usr",--without-ngtcp2) \
$(if $(CONFIG_LIBCURL_OPENSSL_QUIC),--with-openssl-quic,--without-openssl-quic) \
\
$(call autoconf_bool,CONFIG_LIBCURL_DICT,dict) \
$(call autoconf_bool,CONFIG_LIBCURL_FILE,file) \

View File

@ -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

View File

@ -1,24 +1,20 @@
--- a/Makefile.am
+++ b/Makefile.am
@@ -96,7 +96,7 @@ DISTCLEANFILES = buildinfo.txt
@@ -135,7 +135,7 @@ CLEANFILES = $(VC14_LIBVCXPROJ) $(VC14_S
bin_SCRIPTS = curl-config
SUBDIRS = lib docs src scripts
-DIST_SUBDIRS = $(SUBDIRS) tests packages include docs
SUBDIRS = lib src
-DIST_SUBDIRS = $(SUBDIRS) tests packages scripts include docs
+DIST_SUBDIRS = $(SUBDIRS) packages include
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libcurl.pc
@@ -217,12 +217,9 @@ cygwinbin:
if BUILD_DOCS
@@ -243,8 +243,6 @@ cygwinbin:
# We extend the standard install with a custom hook:
install-data-hook:
(cd include && $(MAKE) install)
- (cd docs && $(MAKE) install)
- (cd docs/libcurl && $(MAKE) install)
else
install-data-hook:
(cd include && $(MAKE) install)
- (cd docs && $(MAKE) install)
endif
# We extend the standard uninstall with a custom hook:
uninstall-hook: