nghttp: Adjust priority upon upgrade

This commit is contained in:
Tatsuhiro Tsujikawa 2014-12-18 20:43:59 +09:00
parent 079682f313
commit 39eb1e4753
1 changed files with 24 additions and 7 deletions

View File

@ -799,8 +799,29 @@ struct HttpClient {
if (rv != 0) { if (rv != 0) {
return -1; return -1;
} }
}
if (need_upgrade()) {
// Amend the priority because we cannot send priority in
// HTTP/1.1 Upgrade.
nghttp2_priority_spec_init(&pri_spec, ANCHOR_ID_HIGH, config.weight, 0);
rv = nghttp2_submit_priority(session, NGHTTP2_FLAG_NONE, 1, &pri_spec);
if (rv != 0) {
return -1;
}
}
} else if (need_upgrade() && config.weight != NGHTTP2_DEFAULT_WEIGHT) {
// Amend the priority because we cannot send priority in
// HTTP/1.1 Upgrade.
nghttp2_priority_spec pri_spec;
nghttp2_priority_spec_init(&pri_spec, 0, config.weight, 0);
rv = nghttp2_submit_priority(session, NGHTTP2_FLAG_NONE, 1, &pri_spec);
if (rv != 0) {
return -1;
}
}
assert(settings_timerev == nullptr); assert(settings_timerev == nullptr);
settings_timerev = evtimer_new(evbase, settings_timeout_cb, this); settings_timerev = evtimer_new(evbase, settings_timeout_cb, this);
// SETTINGS ACK timeout is 10 seconds for now // SETTINGS ACK timeout is 10 seconds for now
@ -1922,12 +1943,8 @@ int communicate(
if (!config.no_dep && config.dep_idle) { if (!config.no_dep && config.dep_idle) {
dep_stream_id = ANCHOR_ID_HIGH; dep_stream_id = ANCHOR_ID_HIGH;
} }
if (config.weight != NGHTTP2_DEFAULT_WEIGHT) {
nghttp2_priority_spec_init(&pri_spec, dep_stream_id, config.weight, 0); nghttp2_priority_spec_init(&pri_spec, dep_stream_id, config.weight, 0);
} else {
nghttp2_priority_spec_init(&pri_spec, dep_stream_id,
NGHTTP2_DEFAULT_WEIGHT, 0);
}
for (auto req : requests) { for (auto req : requests) {
for (int i = 0; i < config.multiply; ++i) { for (int i = 0; i < config.multiply; ++i) {