http2: s/priority/weight

This commit is contained in:
Daniel Stenberg 2015-10-21 22:47:24 +02:00
parent 419d410ca0
commit d31ed6ac71
8 changed files with 28 additions and 23 deletions

View File

@ -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), "

View File

@ -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), "

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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