http2: s/priority/weight
authorDaniel Stenberg <daniel@haxx.se>
Wed, 21 Oct 2015 20:47:24 +0000 (22:47 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Fri, 23 Oct 2015 06:22:38 +0000 (08:22 +0200)
docs/libcurl/opts/CURLOPT_STREAM_DEPENDS.3
docs/libcurl/opts/CURLOPT_STREAM_DEPENDS_E.3
docs/libcurl/opts/CURLOPT_STREAM_WEIGHT.3 [moved from docs/libcurl/opts/CURLOPT_STREAM_PRIORITY.3 with 71% similarity]
docs/libcurl/symbols-in-versions
include/curl/curl.h
lib/http2.c
lib/url.c
lib/urldata.h

index f3dcff31dba112bbbe213d87762084a7d4c8532a..081a73250fe661f2aef400281cdd4f7c65f1b81f 100644 (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), "
index 1684c369d31e4166deed89bc033ba6a4f490ee27..1b3fbfa1ca9f35df700b6f0346fa3153eb315ec4 100644 (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), "
similarity index 71%
rename from docs/libcurl/opts/CURLOPT_STREAM_PRIORITY.3
rename to docs/libcurl/opts/CURLOPT_STREAM_WEIGHT.3
index 4b0f16a95f1426cfffc01c98d7a7475c18dea1cc..c292c02e31dc4f5e49f9054a7f929ade26c211cd 100644 (file)
 .\" *
 .\" **************************************************************************
 .\"
-.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
index 5f6d7e504e4d77b9042766d1249c68e83d1f34d7..732ad19ede79bf47be85f2ba314b40c656140596 100644 (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
index 5ea3d4ce958dd9dbe06adef714e4d2f96e1921f0..86692bbb72b4937235e0dd8326e31b73be0cdf1b 100644 (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),
index 87d4a19ec0db1155223486569eb83e992f8e9af1..261e7f98d5f5ba143aa5606a98feda2970489964 100644 (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 */
index 866fee2eb196a126de31e17ed514a4a715eada0d..94b906d7797a0ea9a88ed970ed344dbda4b53f1c 100644 (file)
--- a/lib/url.c
+++ b/lib/url.c
@@ -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:
index 7d6025cb512e2cc68228e349ec3e7ea49455b8ed..6ddf15e37231ae55b29851f1b54edb47a6195da4 100644 (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 {