Loading docs/TODO +0 −8 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading lib/http2.c +13 −2 Original line number Diff line number Diff line Loading @@ -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. Loading Loading @@ -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 Loading Loading @@ -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); Loading @@ -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 Loading
docs/TODO +0 −8 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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 Loading
lib/http2.c +13 −2 Original line number Diff line number Diff line Loading @@ -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. Loading Loading @@ -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 Loading Loading @@ -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); Loading @@ -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