1
0
Fork 0
mirror of https://github.com/warmcat/libwebsockets.git synced 2025-03-09 00:00:04 +01:00

h2: bump window for network stream too

This commit is contained in:
Andy Green 2018-02-04 08:34:45 +08:00
parent d6de3de732
commit 5c00887054

View file

@ -810,22 +810,33 @@ lws_h2_parse_frame_header(struct lws *wsi)
if (!h2n->swsi)
break;
/* account for both network and stream wsi windows */
wsi->h2.peer_tx_cr_est -= h2n->length;
h2n->swsi->h2.peer_tx_cr_est -= h2n->length;
lwsl_debug(" peer_tx_cr_est %d\n",
h2n->swsi->h2.peer_tx_cr_est);
if (h2n->swsi->h2.peer_tx_cr_est < (int32_t)h2n->length + 265536) {
h2n->swsi->h2.peer_tx_cr_est += h2n->length + 265536;
lwsl_debug(" peer_tx_cr_est %d, parent %d\n",
h2n->swsi->h2.peer_tx_cr_est, wsi->h2.peer_tx_cr_est);
if (h2n->swsi->h2.peer_tx_cr_est < (int)(2 * h2n->length) + 65536) {
pps = lws_h2_new_pps(LWS_H2_PPS_UPDATE_WINDOW);
if (!pps)
return 1;
pps->u.update_window.sid = h2n->sid;
pps->u.update_window.credit = h2n->length + 265536;
pps->u.update_window.credit = (2 * h2n->length) + 65536;
h2n->swsi->h2.peer_tx_cr_est += pps->u.update_window.credit;
lws_pps_schedule(wsi, pps);
pps = lws_h2_new_pps(LWS_H2_PPS_UPDATE_WINDOW);
if (!pps)
return 1;
}
if (wsi->h2.peer_tx_cr_est < (int)(2 * h2n->length) + 65536) {
pps = lws_h2_new_pps(LWS_H2_PPS_UPDATE_WINDOW);
if (!pps)
return 1;
pps->u.update_window.sid = 0;
pps->u.update_window.credit = h2n->length + 265536;
pps->u.update_window.credit = (2 * h2n->length) + 65536;
wsi->h2.peer_tx_cr_est += pps->u.update_window.credit;
lws_pps_schedule(wsi, pps);
}