queue_pop(ctx->streams);
http_status_reinit(ctx, stream_id);
-
- nghttp2_submit_rst_stream(ctx->h2, NGHTTP2_FLAG_NONE, stream_id, NGHTTP2_REFUSED_STREAM);
}
/*
struct http_ctx *ctx = (struct http_ctx *)user_data;
ssize_t remaining;
ssize_t required;
- bool is_first;
+ assert(ctx->current_stream);
+ bool is_first = queue_len(ctx->streams) == 0 || queue_tail(ctx->streams) != ctx->current_stream->stream_id;
- if (ctx->current_stream == NULL || ctx->current_stream->stream_id != stream_id) {
- kr_log_verbose("[http] incomplete stream\n");
+ if (ctx->current_stream->stream_id != stream_id) {
+ kr_log_verbose(
+ "[http] stream %d incomplete\n",
+ ctx->current_stream->stream_id);
if (!set_error_status(ctx, stream_id, 501, "incomplete stream"))
return NGHTTP2_ERR_CALLBACK_FAILURE;
return 0;
remaining = ctx->buf_size - ctx->submitted - ctx->buf_pos;
required = len;
-
- is_first = queue_len(ctx->streams) == 0 || queue_tail(ctx->streams) != ctx->current_stream->stream_id;
/* First data chunk of the new stream */
if (is_first)
required += sizeof(uint16_t);