mirror of
https://github.com/moparisthebest/curl
synced 2025-02-28 17:31:46 -05:00
http2: s/priority/weight
This commit is contained in:
parent
419d410ca0
commit
d31ed6ac71
@ -53,4 +53,4 @@ Added in 7.46.0
|
||||
.SH RETURN VALUE
|
||||
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
|
||||
.SH "SEE ALSO"
|
||||
.BR CURLOPT_STREAM_PRIORITY "(3), " CURLOPT_STREAM_DEPENDS_E "(3), "
|
||||
.BR CURLOPT_STREAM_WEIGHT "(3), " CURLOPT_STREAM_DEPENDS_E "(3), "
|
||||
|
@ -56,4 +56,4 @@ Added in 7.46.0
|
||||
.SH RETURN VALUE
|
||||
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
|
||||
.SH "SEE ALSO"
|
||||
.BR CURLOPT_STREAM_PRIORITY "(3), " CURLOPT_STREAM_DEPENDS "(3), "
|
||||
.BR CURLOPT_STREAM_WEIGHT "(3), " CURLOPT_STREAM_DEPENDS "(3), "
|
||||
|
@ -20,23 +20,25 @@
|
||||
.\" *
|
||||
.\" **************************************************************************
|
||||
.\"
|
||||
.TH CURLOPT_STREAM_PRIORITY 3 "13 Sep 2015" "libcurl 7.46.0" "curl_easy_setopt options"
|
||||
.TH CURLOPT_STREAM_WEIGHT 3 "13 Sep 2015" "libcurl 7.46.0" "curl_easy_setopt options"
|
||||
.SH NAME
|
||||
CURLOPT_STREAM_PRIORITY \- set numerical stream priority
|
||||
CURLOPT_STREAM_WEIGHT \- set numerical stream priority
|
||||
.SH SYNOPSIS
|
||||
#include <curl/curl.h>
|
||||
|
||||
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_STREAM_PRIORITY, long prio);
|
||||
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_STREAM_WEIGHT, long prio);
|
||||
.SH DESCRIPTION
|
||||
Set the long \fIprio\fP to a number between 1 and 256.
|
||||
|
||||
For protocols with priorities on streams, such as HTTP/2, this option can be
|
||||
used to set an individual priority for this particular stream used by the easy
|
||||
\fIhandle\fP. Setting and using priorities really only makes sense and is only
|
||||
usable when doing multiple streams over the same connections, which thus
|
||||
implies that you use \fICURLMOPT_PIPELINING(3)\fP.
|
||||
When using HTTP/2, this option can be used to set an individual weight for
|
||||
this particular stream used by the easy \fIhandle\fP. Setting and using
|
||||
weights really only makes sense and is only usable when doing multiple streams
|
||||
over the same connections, which thus implies that you use
|
||||
\fICURLMOPT_PIPELINING(3)\fP.
|
||||
|
||||
This option can be set during transfer.
|
||||
This option can be set during transfer and will then cause the updated weight
|
||||
info get sent to the server the next time a HTTP/2 frame is sent to the
|
||||
server.
|
||||
|
||||
See section 5.3 of RFC 7540 for protocol details:
|
||||
https://httpwg.github.io/specs/rfc7540.html#StreamPriority
|
@ -526,6 +526,9 @@ CURLOPT_SSL_VERIFYHOST 7.8.1
|
||||
CURLOPT_SSL_VERIFYPEER 7.4.2
|
||||
CURLOPT_SSL_VERIFYSTATUS 7.41.0
|
||||
CURLOPT_STDERR 7.1
|
||||
CURLOPT_STREAM_DEPENDS 7.46.0
|
||||
CURLOPT_STREAM_DEPENDS_E 7.46.0
|
||||
CURLOPT_STREAM_WEIGHT 7.46.0
|
||||
CURLOPT_TCP_KEEPALIVE 7.25.0
|
||||
CURLOPT_TCP_KEEPIDLE 7.25.0
|
||||
CURLOPT_TCP_KEEPINTVL 7.25.0
|
||||
@ -677,8 +680,8 @@ CURL_GLOBAL_SSL 7.8
|
||||
CURL_GLOBAL_WIN32 7.8.1
|
||||
CURL_HTTP_VERSION_1_0 7.9.1
|
||||
CURL_HTTP_VERSION_1_1 7.9.1
|
||||
CURL_HTTP_VERSION_2_0 7.33.0
|
||||
CURL_HTTP_VERSION_2 7.43.0
|
||||
CURL_HTTP_VERSION_2_0 7.33.0
|
||||
CURL_HTTP_VERSION_NONE 7.9.1
|
||||
CURL_IPRESOLVE_V4 7.10.8
|
||||
CURL_IPRESOLVE_V6 7.10.8
|
||||
|
@ -1648,8 +1648,8 @@ typedef enum {
|
||||
/* Set the protocol used when curl is given a URL without a protocol */
|
||||
CINIT(DEFAULT_PROTOCOL, OBJECTPOINT, 238),
|
||||
|
||||
/* Set stream priority, 1 - 256 */
|
||||
CINIT(STREAM_PRIORITY, LONG, 239),
|
||||
/* Set stream weight, 1 - 256 (default is 16) */
|
||||
CINIT(STREAM_WEIGHT, LONG, 239),
|
||||
|
||||
/* Set stream dependency on another CURL handle */
|
||||
CINIT(STREAM_DEPENDS, OBJECTPOINT, 240),
|
||||
|
10
lib/http2.c
10
lib/http2.c
@ -52,7 +52,7 @@
|
||||
*/
|
||||
void Curl_http2_init_state(struct UrlState *state)
|
||||
{
|
||||
state->stream_prio = NGHTTP2_DEFAULT_WEIGHT;
|
||||
state->stream_weight = NGHTTP2_DEFAULT_WEIGHT;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -61,7 +61,7 @@ void Curl_http2_init_state(struct UrlState *state)
|
||||
*/
|
||||
void Curl_http2_init_userset(struct UserDefined *set)
|
||||
{
|
||||
set->stream_prio = NGHTTP2_DEFAULT_WEIGHT;
|
||||
set->stream_weight = NGHTTP2_DEFAULT_WEIGHT;
|
||||
}
|
||||
|
||||
static int http2_perform_getsock(const struct connectdata *conn,
|
||||
@ -1013,9 +1013,9 @@ static void h2_pri_spec(struct SessionHandle *data,
|
||||
struct HTTP *depstream = (data->set.stream_depends_on?
|
||||
data->set.stream_depends_on->req.protop:NULL);
|
||||
int32_t depstream_id = depstream? depstream->stream_id:0;
|
||||
nghttp2_priority_spec_init(pri_spec, depstream_id, data->set.stream_prio,
|
||||
nghttp2_priority_spec_init(pri_spec, depstream_id, data->set.stream_weight,
|
||||
data->set.stream_depends_e);
|
||||
data->state.stream_prio = data->set.stream_prio;
|
||||
data->state.stream_weight = data->set.stream_weight;
|
||||
data->state.stream_depends_e = data->set.stream_depends_e;
|
||||
data->state.stream_depends_on = data->set.stream_depends_on;
|
||||
}
|
||||
@ -1029,7 +1029,7 @@ static int h2_session_send(struct SessionHandle *data,
|
||||
nghttp2_session *h2)
|
||||
{
|
||||
struct HTTP *stream = data->req.protop;
|
||||
if((data->set.stream_prio != data->state.stream_prio) ||
|
||||
if((data->set.stream_weight != data->state.stream_weight) ||
|
||||
(data->set.stream_depends_e != data->state.stream_depends_e) ||
|
||||
(data->set.stream_depends_on != data->state.stream_depends_on) ) {
|
||||
/* send new weight and/or dependency */
|
||||
|
@ -2663,13 +2663,13 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
|
||||
case CURLOPT_PIPEWAIT:
|
||||
data->set.pipewait = (0 != va_arg(param, long))?TRUE:FALSE;
|
||||
break;
|
||||
case CURLOPT_STREAM_PRIORITY:
|
||||
case CURLOPT_STREAM_WEIGHT:
|
||||
#ifndef USE_NGHTTP2
|
||||
return CURLE_NOT_BUILT_IN;
|
||||
#else
|
||||
arg = va_arg(param, long);
|
||||
if((arg>=1) && (arg <= 256))
|
||||
data->set.stream_prio = (int)arg;
|
||||
data->set.stream_weight = (int)arg;
|
||||
break;
|
||||
#endif
|
||||
case CURLOPT_STREAM_DEPENDS:
|
||||
|
@ -1340,7 +1340,7 @@ struct UrlState {
|
||||
|
||||
struct SessionHandle *stream_depends_on;
|
||||
bool stream_depends_e; /* set or don't set the Exclusive bit */
|
||||
int stream_prio;
|
||||
int stream_weight;
|
||||
};
|
||||
|
||||
|
||||
@ -1660,7 +1660,7 @@ struct UserDefined {
|
||||
|
||||
struct SessionHandle *stream_depends_on;
|
||||
bool stream_depends_e; /* set or don't set the Exclusive bit */
|
||||
int stream_prio;
|
||||
int stream_weight;
|
||||
};
|
||||
|
||||
struct Names {
|
||||
|
Loading…
x
Reference in New Issue
Block a user