@@ -59,8 +59,15 @@ enum Http2OptionsIndex {
5959 IDX_OPTIONS_FLAGS
6060};
6161
62+ enum Http2PaddingBufferFields {
63+ PADDING_BUF_FRAME_LENGTH,
64+ PADDING_BUF_MAX_PAYLOAD_LENGTH,
65+ PADDING_BUF_RETURN_VALUE,
66+ PADDING_BUF_FIELD_COUNT
67+ };
68+
6269struct http2_state {
63- uint32_t padding_buffer[3 ];
70+ uint32_t padding_buffer[PADDING_BUF_FIELD_COUNT ];
6471 uint32_t options_buffer[IDX_OPTIONS_FLAGS + 1 ];
6572 uint32_t settings_buffer[IDX_SETTINGS_COUNT + 1 ];
6673 double session_state_buffer[IDX_SESSION_STATE_COUNT];
@@ -120,10 +127,10 @@ ssize_t Http2Session::OnCallbackPadding(size_t frameLen,
120127
121128 if (object ()->Has (context, env ()->ongetpadding_string ()).FromJust ()) {
122129 uint32_t * buffer = env ()->http2_state_buffer ()->padding_buffer ;
123- buffer[0 ] = frameLen;
124- buffer[1 ] = maxPayloadLen;
130+ buffer[PADDING_BUF_FRAME_LENGTH ] = frameLen;
131+ buffer[PADDING_BUF_MAX_PAYLOAD_LENGTH ] = maxPayloadLen;
125132 MakeCallback (env ()->ongetpadding_string (), 0 , nullptr );
126- uint32_t retval = buffer[2 ];
133+ uint32_t retval = buffer[PADDING_BUF_RETURN_VALUE ];
127134 retval = retval <= maxPayloadLen ? retval : maxPayloadLen;
128135 retval = retval >= frameLen ? retval : frameLen;
129136 CHECK_GE (retval, frameLen);
@@ -1167,6 +1174,10 @@ void Initialize(Local<Object> target,
11671174 SET_STATE_TYPEDARRAY (" optionsBuffer" , Uint32Array, options_buffer);
11681175#undef SET_STATE_TYPEDARRAY
11691176
1177+ NODE_DEFINE_CONSTANT (target, PADDING_BUF_FRAME_LENGTH);
1178+ NODE_DEFINE_CONSTANT (target, PADDING_BUF_MAX_PAYLOAD_LENGTH);
1179+ NODE_DEFINE_CONSTANT (target, PADDING_BUF_RETURN_VALUE);
1180+
11701181 // Method to fetch the nghttp2 string description of an nghttp2 error code
11711182 env->SetMethod (target, " nghttp2ErrorString" , HttpErrorString);
11721183
0 commit comments