mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-12-26 21:33:03 +03:00
Merge pull request #21612 from NeQuissimus/curl_7_52_1
curl: 7.51.0 -> 7.52.1
This commit is contained in:
commit
82b0ae1223
@ -18,11 +18,11 @@ assert scpSupport -> libssh2 != null;
|
||||
assert c-aresSupport -> c-ares != null;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "curl-7.51.0";
|
||||
name = "curl-7.52.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://curl.haxx.se/download/${name}.tar.bz2";
|
||||
sha256 = "1pldg1d8606p4q83k8fcp61kfcsbphln22mycw7h7r87i42410kz";
|
||||
sha256 = "16rqhyzlpnivifin8n7l2fr9ihay9v2nw2drsniinb6bcykqaqfi";
|
||||
};
|
||||
|
||||
outputs = [ "bin" "dev" "out" "man" "devdoc" ];
|
||||
@ -42,8 +42,6 @@ stdenv.mkDerivation rec {
|
||||
optional sslSupport openssl ++
|
||||
optional scpSupport libssh2;
|
||||
|
||||
patches = stdenv.lib.optional http2Support ./fix-http2-window-size.patch;
|
||||
|
||||
# for the second line see http://curl.haxx.se/mail/tracker-2014-03/0087.html
|
||||
preConfigure = ''
|
||||
sed -e 's|/usr/bin|/no-such-path|g' -i.bak configure
|
||||
|
@ -1,88 +0,0 @@
|
||||
From a4d888857ede39a8e2aa5f961048c6362d3a5377 Mon Sep 17 00:00:00 2001
|
||||
From: Jay Satiro <raysatiro@yahoo.com>
|
||||
Date: Wed, 16 Nov 2016 02:55:30 -0500
|
||||
Subject: [PATCH] http2: Use huge HTTP/2 windows
|
||||
|
||||
- Improve performance by using a huge HTTP/2 window size.
|
||||
|
||||
Bug: https://github.com/curl/curl/issues/1102
|
||||
Reported-by: afrind@users.noreply.github.com
|
||||
Assisted-by: Tatsuhiro Tsujikawa
|
||||
---
|
||||
docs/TODO | 8 --------
|
||||
lib/http2.c | 15 +++++++++++++--
|
||||
2 files changed, 13 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/docs/TODO b/docs/TODO
|
||||
index c3bc4eb..99c610f 100644
|
||||
--- a/docs/TODO
|
||||
+++ b/docs/TODO
|
||||
@@ -63,7 +63,6 @@
|
||||
5.1 Better persistency for HTTP 1.0
|
||||
5.2 support FF3 sqlite cookie files
|
||||
5.3 Rearrange request header order
|
||||
- 5.4 Use huge HTTP/2 windows
|
||||
5.5 auth= in URLs
|
||||
5.6 Refuse "downgrade" redirects
|
||||
5.7 Brotli compression
|
||||
@@ -528,13 +527,6 @@ This is not detailed in any FTP specification.
|
||||
headers use a default value so only headers that need to be moved have to be
|
||||
specified.
|
||||
|
||||
-5.4 Use huge HTTP/2 windows
|
||||
-
|
||||
- We're currently using nghttp2's default window size which is terribly small
|
||||
- (64K). This becomes a bottle neck over high bandwidth networks. We should
|
||||
- instead make the window size to be very big (512MB?) as we really don't do
|
||||
- much flow control anyway.
|
||||
-
|
||||
5.5 auth= in URLs
|
||||
|
||||
Add the ability to specify the preferred authentication mechanism to use by
|
||||
diff --git a/lib/http2.c b/lib/http2.c
|
||||
index 6720984..202ab1b 100644
|
||||
--- a/lib/http2.c
|
||||
+++ b/lib/http2.c
|
||||
@@ -59,6 +59,8 @@
|
||||
#define nghttp2_session_callbacks_set_error_callback(x,y)
|
||||
#endif
|
||||
|
||||
+#define HTTP2_HUGE_WINDOW_SIZE (1 << 30)
|
||||
+
|
||||
/*
|
||||
* Curl_http2_init_state() is called when the easy handle is created and
|
||||
* allows for HTTP/2 specific init of state.
|
||||
@@ -965,7 +967,7 @@ static ssize_t data_source_read_callback(nghttp2_session *session,
|
||||
*/
|
||||
static nghttp2_settings_entry settings[] = {
|
||||
{ NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS, 100 },
|
||||
- { NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE, NGHTTP2_INITIAL_WINDOW_SIZE },
|
||||
+ { NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE, HTTP2_HUGE_WINDOW_SIZE },
|
||||
};
|
||||
|
||||
#define H2_BUFSIZE 32768
|
||||
@@ -2031,7 +2033,8 @@ CURLcode Curl_http2_switched(struct connectdata *conn,
|
||||
else {
|
||||
/* stream ID is unknown at this point */
|
||||
stream->stream_id = -1;
|
||||
- rv = nghttp2_submit_settings(httpc->h2, NGHTTP2_FLAG_NONE, NULL, 0);
|
||||
+ rv = nghttp2_submit_settings(httpc->h2, NGHTTP2_FLAG_NONE, settings,
|
||||
+ sizeof(settings) / sizeof(settings[0]));
|
||||
if(rv != 0) {
|
||||
failf(data, "nghttp2_submit_settings() failed: %s(%d)",
|
||||
nghttp2_strerror(rv), rv);
|
||||
@@ -2039,6 +2042,14 @@ CURLcode Curl_http2_switched(struct connectdata *conn,
|
||||
}
|
||||
}
|
||||
|
||||
+ rv = nghttp2_session_set_local_window_size(httpc->h2, NGHTTP2_FLAG_NONE, 0,
|
||||
+ HTTP2_HUGE_WINDOW_SIZE);
|
||||
+ if(rv != 0) {
|
||||
+ failf(data, "nghttp2_session_set_local_window_size() failed: %s(%d)",
|
||||
+ nghttp2_strerror(rv), rv);
|
||||
+ return CURLE_HTTP2;
|
||||
+ }
|
||||
+
|
||||
/* we are going to copy mem to httpc->inbuf. This is required since
|
||||
mem is part of buffer pointed by stream->mem, and callbacks
|
||||
called by nghttp2_session_mem_recv() will write stream specific
|
Loading…
Reference in New Issue
Block a user