mirror of
https://github.com/moparisthebest/curl
synced 2024-08-13 17:03:50 -04: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
|
.SH RETURN VALUE
|
||||||
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
|
||||||
.SH "SEE ALSO"
|
.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
|
.SH RETURN VALUE
|
||||||
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
|
||||||
.SH "SEE ALSO"
|
.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
|
.SH NAME
|
||||||
CURLOPT_STREAM_PRIORITY \- set numerical stream priority
|
CURLOPT_STREAM_WEIGHT \- set numerical stream priority
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
#include <curl/curl.h>
|
#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
|
.SH DESCRIPTION
|
||||||
Set the long \fIprio\fP to a number between 1 and 256.
|
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
|
When using HTTP/2, this option can be used to set an individual weight for
|
||||||
used to set an individual priority for this particular stream used by the easy
|
this particular stream used by the easy \fIhandle\fP. Setting and using
|
||||||
\fIhandle\fP. Setting and using priorities really only makes sense and is only
|
weights really only makes sense and is only usable when doing multiple streams
|
||||||
usable when doing multiple streams over the same connections, which thus
|
over the same connections, which thus implies that you use
|
||||||
implies that you use \fICURLMOPT_PIPELINING(3)\fP.
|
\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:
|
See section 5.3 of RFC 7540 for protocol details:
|
||||||
https://httpwg.github.io/specs/rfc7540.html#StreamPriority
|
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_VERIFYPEER 7.4.2
|
||||||
CURLOPT_SSL_VERIFYSTATUS 7.41.0
|
CURLOPT_SSL_VERIFYSTATUS 7.41.0
|
||||||
CURLOPT_STDERR 7.1
|
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_KEEPALIVE 7.25.0
|
||||||
CURLOPT_TCP_KEEPIDLE 7.25.0
|
CURLOPT_TCP_KEEPIDLE 7.25.0
|
||||||
CURLOPT_TCP_KEEPINTVL 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_GLOBAL_WIN32 7.8.1
|
||||||
CURL_HTTP_VERSION_1_0 7.9.1
|
CURL_HTTP_VERSION_1_0 7.9.1
|
||||||
CURL_HTTP_VERSION_1_1 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 7.43.0
|
||||||
|
CURL_HTTP_VERSION_2_0 7.33.0
|
||||||
CURL_HTTP_VERSION_NONE 7.9.1
|
CURL_HTTP_VERSION_NONE 7.9.1
|
||||||
CURL_IPRESOLVE_V4 7.10.8
|
CURL_IPRESOLVE_V4 7.10.8
|
||||||
CURL_IPRESOLVE_V6 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 */
|
/* Set the protocol used when curl is given a URL without a protocol */
|
||||||
CINIT(DEFAULT_PROTOCOL, OBJECTPOINT, 238),
|
CINIT(DEFAULT_PROTOCOL, OBJECTPOINT, 238),
|
||||||
|
|
||||||
/* Set stream priority, 1 - 256 */
|
/* Set stream weight, 1 - 256 (default is 16) */
|
||||||
CINIT(STREAM_PRIORITY, LONG, 239),
|
CINIT(STREAM_WEIGHT, LONG, 239),
|
||||||
|
|
||||||
/* Set stream dependency on another CURL handle */
|
/* Set stream dependency on another CURL handle */
|
||||||
CINIT(STREAM_DEPENDS, OBJECTPOINT, 240),
|
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)
|
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)
|
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,
|
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?
|
struct HTTP *depstream = (data->set.stream_depends_on?
|
||||||
data->set.stream_depends_on->req.protop:NULL);
|
data->set.stream_depends_on->req.protop:NULL);
|
||||||
int32_t depstream_id = depstream? depstream->stream_id:0;
|
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->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_e = data->set.stream_depends_e;
|
||||||
data->state.stream_depends_on = data->set.stream_depends_on;
|
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)
|
nghttp2_session *h2)
|
||||||
{
|
{
|
||||||
struct HTTP *stream = data->req.protop;
|
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_e != data->state.stream_depends_e) ||
|
||||||
(data->set.stream_depends_on != data->state.stream_depends_on) ) {
|
(data->set.stream_depends_on != data->state.stream_depends_on) ) {
|
||||||
/* send new weight and/or dependency */
|
/* send new weight and/or dependency */
|
||||||
|
@ -2663,13 +2663,13 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
|
|||||||
case CURLOPT_PIPEWAIT:
|
case CURLOPT_PIPEWAIT:
|
||||||
data->set.pipewait = (0 != va_arg(param, long))?TRUE:FALSE;
|
data->set.pipewait = (0 != va_arg(param, long))?TRUE:FALSE;
|
||||||
break;
|
break;
|
||||||
case CURLOPT_STREAM_PRIORITY:
|
case CURLOPT_STREAM_WEIGHT:
|
||||||
#ifndef USE_NGHTTP2
|
#ifndef USE_NGHTTP2
|
||||||
return CURLE_NOT_BUILT_IN;
|
return CURLE_NOT_BUILT_IN;
|
||||||
#else
|
#else
|
||||||
arg = va_arg(param, long);
|
arg = va_arg(param, long);
|
||||||
if((arg>=1) && (arg <= 256))
|
if((arg>=1) && (arg <= 256))
|
||||||
data->set.stream_prio = (int)arg;
|
data->set.stream_weight = (int)arg;
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
case CURLOPT_STREAM_DEPENDS:
|
case CURLOPT_STREAM_DEPENDS:
|
||||||
|
@ -1340,7 +1340,7 @@ struct UrlState {
|
|||||||
|
|
||||||
struct SessionHandle *stream_depends_on;
|
struct SessionHandle *stream_depends_on;
|
||||||
bool stream_depends_e; /* set or don't set the Exclusive bit */
|
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;
|
struct SessionHandle *stream_depends_on;
|
||||||
bool stream_depends_e; /* set or don't set the Exclusive bit */
|
bool stream_depends_e; /* set or don't set the Exclusive bit */
|
||||||
int stream_prio;
|
int stream_weight;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Names {
|
struct Names {
|
||||||
|
Loading…
Reference in New Issue
Block a user