deps: update nghttp2 to 1.37.0 · nodejs/node@247700f (original) (raw)

`@@ -30,6 +30,7 @@

`

30

30

`#include "nghttp2_session.h"

`

31

31

`#include "nghttp2_helper.h"

`

32

32

`#include "nghttp2_debug.h"

`

``

33

`+

#include "nghttp2_frame.h"

`

33

34

``

34

35

`/* Maximum distance between any two stream's cycle in the same

`

35

36

` prirority queue. Imagine stream A's cycle is A, and stream B's

`

`@@ -40,7 +41,8 @@

`

40

41

` words, B is really greater than or equal to A. Otherwise, A is a

`

41

42

` result of overflow, and it is actually A > B if we consider that

`

42

43

` fact. */

`

43

``

`-

#define NGHTTP2_MAX_CYCLE_DISTANCE (16384 * 256 + 255)

`

``

44

`+

#define NGHTTP2_MAX_CYCLE_DISTANCE \

`

``

45

`+

((uint64_t)NGHTTP2_MAX_FRAME_SIZE_MAX * 256 + 255)

`

44

46

``

45

47

`static int stream_less(const void *lhsx, const void *rhsx) {

`

46

48

`const nghttp2_stream *lhs, *rhs;

`

`@@ -52,11 +54,7 @@ static int stream_less(const void *lhsx, const void *rhsx) {

`

52

54

`return lhs->seq < rhs->seq;

`

53

55

` }

`

54

56

``

55

``

`-

if (lhs->cycle < rhs->cycle) {

`

56

``

`-

return rhs->cycle - lhs->cycle <= NGHTTP2_MAX_CYCLE_DISTANCE;

`

57

``

`-

}

`

58

``

-

59

``

`-

return lhs->cycle - rhs->cycle > NGHTTP2_MAX_CYCLE_DISTANCE;

`

``

57

`+

return rhs->cycle - lhs->cycle <= NGHTTP2_MAX_CYCLE_DISTANCE;

`

60

58

`}

`

61

59

``

62

60

`void nghttp2_stream_init(nghttp2_stream *stream, int32_t stream_id,

`

`@@ -135,14 +133,14 @@ static int stream_subtree_active(nghttp2_stream *stream) {

`

135

133

`/*

`

136

134

` * Returns next cycle for |stream|.

`

137

135

` */

`

138

``

`-

static void stream_next_cycle(nghttp2_stream *stream, uint32_t last_cycle) {

`

139

``

`-

uint32_t penalty;

`

``

136

`+

static void stream_next_cycle(nghttp2_stream *stream, uint64_t last_cycle) {

`

``

137

`+

uint64_t penalty;

`

140

138

``

141

``

`-

penalty = (uint32_t)stream->last_writelen * NGHTTP2_MAX_WEIGHT +

`

``

139

`+

penalty = (uint64_t)stream->last_writelen * NGHTTP2_MAX_WEIGHT +

`

142

140

`stream->pending_penalty;

`

143

141

``

144

142

`stream->cycle = last_cycle + penalty / (uint32_t)stream->weight;

`

145

``

`-

stream->pending_penalty = penalty % (uint32_t)stream->weight;

`

``

143

`+

stream->pending_penalty = (uint32_t)(penalty % (uint32_t)stream->weight);

`

146

144

`}

`

147

145

``

148

146

`static int stream_obq_push(nghttp2_stream *dep_stream, nghttp2_stream *stream) {

`

`@@ -153,7 +151,7 @@ static int stream_obq_push(nghttp2_stream *dep_stream, nghttp2_stream *stream) {

`

153

151

`stream_next_cycle(stream, dep_stream->descendant_last_cycle);

`

154

152

`stream->seq = dep_stream->descendant_next_seq++;

`

155

153

``

156

``

`-

DEBUGF("stream: stream=%d obq push cycle=%d\n", stream->stream_id,

`

``

154

`+

DEBUGF("stream: stream=%d obq push cycle=%lu\n", stream->stream_id,

`

157

155

`stream->cycle);

`

158

156

``

159

157

`DEBUGF("stream: push stream %d to stream %d\n", stream->stream_id,

`

`@@ -239,7 +237,7 @@ void nghttp2_stream_reschedule(nghttp2_stream *stream) {

`

239

237

``

240

238

`nghttp2_pq_push(&dep_stream->obq, &stream->pq_entry);

`

241

239

``

242

``

`-

DEBUGF("stream: stream=%d obq resched cycle=%d\n", stream->stream_id,

`

``

240

`+

DEBUGF("stream: stream=%d obq resched cycle=%lu\n", stream->stream_id,

`

243

241

`stream->cycle);

`

244

242

``

245

243

`dep_stream->last_writelen = stream->last_writelen;

`

`@@ -248,9 +246,9 @@ void nghttp2_stream_reschedule(nghttp2_stream *stream) {

`

248

246

``

249

247

`void nghttp2_stream_change_weight(nghttp2_stream *stream, int32_t weight) {

`

250

248

`nghttp2_stream *dep_stream;

`

251

``

`-

uint32_t last_cycle;

`

``

249

`+

uint64_t last_cycle;

`

252

250

`int32_t old_weight;

`

253

``

`-

uint32_t wlen_penalty;

`

``

251

`+

uint64_t wlen_penalty;

`

254

252

``

255

253

`if (stream->weight == weight) {

`

256

254

`return;

`

`@@ -273,7 +271,7 @@ void nghttp2_stream_change_weight(nghttp2_stream *stream, int32_t weight) {

`

273

271

``

274

272

`nghttp2_pq_remove(&dep_stream->obq, &stream->pq_entry);

`

275

273

``

276

``

`-

wlen_penalty = (uint32_t)stream->last_writelen * NGHTTP2_MAX_WEIGHT;

`

``

274

`+

wlen_penalty = (uint64_t)stream->last_writelen * NGHTTP2_MAX_WEIGHT;

`

277

275

``

278

276

`/* Compute old stream->pending_penalty we used to calculate

`

279

277

` stream->cycle */

`

`@@ -289,17 +287,16 @@ void nghttp2_stream_change_weight(nghttp2_stream *stream, int32_t weight) {

`

289

287

` place */

`

290

288

`stream_next_cycle(stream, last_cycle);

`

291

289

``

292

``

`-

if (stream->cycle < dep_stream->descendant_last_cycle &&

`

293

``

`-

(dep_stream->descendant_last_cycle - stream->cycle) <=

`

294

``

`-

NGHTTP2_MAX_CYCLE_DISTANCE) {

`

``

290

`+

if (dep_stream->descendant_last_cycle - stream->cycle <=

`

``

291

`+

NGHTTP2_MAX_CYCLE_DISTANCE) {

`

295

292

`stream->cycle = dep_stream->descendant_last_cycle;

`

296

293

` }

`

297

294

``

298

295

`/* Continue to use same stream->seq */

`

299

296

``

300

297

`nghttp2_pq_push(&dep_stream->obq, &stream->pq_entry);

`

301

298

``

302

``

`-

DEBUGF("stream: stream=%d obq resched cycle=%d\n", stream->stream_id,

`

``

299

`+

DEBUGF("stream: stream=%d obq resched cycle=%lu\n", stream->stream_id,

`

303

300

`stream->cycle);

`

304

301

`}

`

305

302

``