mirror of
https://github.com/nginx/nginx.git
synced 2025-06-22 22:10:45 +08:00
Added parsing of STREAMS BLOCKED frames.
While there, added hex prefix for debug to avoid frame type confusion.
This commit is contained in:
parent
6aa611c314
commit
33d8317dd5
@ -722,7 +722,7 @@ ngx_quic_payload_handler(ngx_connection_t *c, ngx_quic_header_t *pkt)
|
|||||||
len = ngx_quic_parse_frame(p, end, &frame);
|
len = ngx_quic_parse_frame(p, end, &frame);
|
||||||
if (len < 0) {
|
if (len < 0) {
|
||||||
ngx_log_debug1(NGX_LOG_DEBUG_EVENT, c->log, 0,
|
ngx_log_debug1(NGX_LOG_DEBUG_EVENT, c->log, 0,
|
||||||
"failed to parse frame type %xi", frame.type);
|
"failed to parse frame type 0x%xi", frame.type);
|
||||||
return NGX_ERROR;
|
return NGX_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -840,6 +840,15 @@ ngx_quic_payload_handler(ngx_connection_t *c, ngx_quic_header_t *pkt)
|
|||||||
frame.u.stop_sending.error_code);
|
frame.u.stop_sending.error_code);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case NGX_QUIC_FT_STREAMS_BLOCKED:
|
||||||
|
case NGX_QUIC_FT_STREAMS_BLOCKED2:
|
||||||
|
ngx_log_debug2(NGX_LOG_DEBUG_EVENT, c->log, 0,
|
||||||
|
"STREAMS BLOCKED frame"
|
||||||
|
" { limit %i bidi: %d }",
|
||||||
|
frame.u.streams_blocked.limit,
|
||||||
|
frame.u.streams_blocked.bidi);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
ngx_log_error(NGX_LOG_INFO, c->log, 0,
|
ngx_log_error(NGX_LOG_INFO, c->log, 0,
|
||||||
"unsupported frame type 0x%xd in packet", frame.type);
|
"unsupported frame type 0x%xd in packet", frame.type);
|
||||||
|
@ -435,6 +435,16 @@ ngx_quic_parse_frame(u_char *start, u_char *end, ngx_quic_frame_t *frame)
|
|||||||
frame->u.stop_sending.error_code = ngx_quic_parse_int(&p);
|
frame->u.stop_sending.error_code = ngx_quic_parse_int(&p);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case NGX_QUIC_FT_STREAMS_BLOCKED:
|
||||||
|
frame->u.streams_blocked.limit = ngx_quic_parse_int(&p);
|
||||||
|
frame->u.streams_blocked.bidi = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case NGX_QUIC_FT_STREAMS_BLOCKED2:
|
||||||
|
frame->u.streams_blocked.limit = ngx_quic_parse_int(&p);
|
||||||
|
frame->u.streams_blocked.bidi = 0;
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return NGX_ERROR;
|
return NGX_ERROR;
|
||||||
}
|
}
|
||||||
|
@ -129,6 +129,12 @@ typedef struct {
|
|||||||
} ngx_quic_stop_sending_frame_t;
|
} ngx_quic_stop_sending_frame_t;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint64_t limit;
|
||||||
|
ngx_uint_t bidi; /* unsigned: bidi:1 */
|
||||||
|
} ngx_quic_streams_blocked_frame_t;
|
||||||
|
|
||||||
|
|
||||||
typedef struct ngx_quic_frame_s ngx_quic_frame_t;
|
typedef struct ngx_quic_frame_s ngx_quic_frame_t;
|
||||||
|
|
||||||
struct ngx_quic_frame_s {
|
struct ngx_quic_frame_s {
|
||||||
@ -143,6 +149,7 @@ struct ngx_quic_frame_s {
|
|||||||
ngx_quic_close_frame_t close;
|
ngx_quic_close_frame_t close;
|
||||||
ngx_quic_reset_stream_frame_t reset_stream;
|
ngx_quic_reset_stream_frame_t reset_stream;
|
||||||
ngx_quic_stop_sending_frame_t stop_sending;
|
ngx_quic_stop_sending_frame_t stop_sending;
|
||||||
|
ngx_quic_streams_blocked_frame_t streams_blocked;
|
||||||
} u;
|
} u;
|
||||||
u_char info[128]; // for debug
|
u_char info[128]; // for debug
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user