Add more debug output
This commit is contained in:
parent
067a4d05c3
commit
bac31e844a
|
@ -1010,6 +1010,10 @@ static size_t nghttp2_session_next_data_read(nghttp2_session *session,
|
||||||
nghttp2_stream *stream)
|
nghttp2_stream *stream)
|
||||||
{
|
{
|
||||||
int32_t window_size = NGHTTP2_DATA_PAYLOAD_LENGTH;
|
int32_t window_size = NGHTTP2_DATA_PAYLOAD_LENGTH;
|
||||||
|
|
||||||
|
DEBUGF(fprintf(stderr, "connection remote_window_size=%d\n",
|
||||||
|
session->remote_window_size));
|
||||||
|
|
||||||
/* Take into account both connection-level flow control here */
|
/* Take into account both connection-level flow control here */
|
||||||
window_size = nghttp2_min(window_size, session->remote_window_size);
|
window_size = nghttp2_min(window_size, session->remote_window_size);
|
||||||
window_size = nghttp2_min(window_size, stream->remote_window_size);
|
window_size = nghttp2_min(window_size, stream->remote_window_size);
|
||||||
|
@ -1788,9 +1792,12 @@ int nghttp2_session_send(nghttp2_session *session)
|
||||||
}
|
}
|
||||||
framebuflen = nghttp2_session_prep_frame(session, item);
|
framebuflen = nghttp2_session_prep_frame(session, item);
|
||||||
if(framebuflen == NGHTTP2_ERR_DEFERRED) {
|
if(framebuflen == NGHTTP2_ERR_DEFERRED) {
|
||||||
|
DEBUGF(fprintf(stderr, "frame deferred\n"));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if(framebuflen < 0) {
|
if(framebuflen < 0) {
|
||||||
|
DEBUGF(fprintf(stderr, "frame preparation failed with %s\n",
|
||||||
|
nghttp2_strerror(framebuflen)));
|
||||||
/* TODO If the error comes from compressor, the connection
|
/* TODO If the error comes from compressor, the connection
|
||||||
must be closed. */
|
must be closed. */
|
||||||
if(item->frame_cat == NGHTTP2_CAT_CTRL &&
|
if(item->frame_cat == NGHTTP2_CAT_CTRL &&
|
||||||
|
@ -3484,6 +3491,9 @@ ssize_t nghttp2_session_mem_recv(nghttp2_session *session,
|
||||||
nghttp2_frame_hd cont_hd;
|
nghttp2_frame_hd cont_hd;
|
||||||
nghttp2_stream *stream;
|
nghttp2_stream *stream;
|
||||||
|
|
||||||
|
DEBUGF(fprintf(stderr, "connection recv_window_size=%d, local_window=%d\n",
|
||||||
|
session->recv_window_size, session->local_window_size));
|
||||||
|
|
||||||
for(;;) {
|
for(;;) {
|
||||||
switch(iframe->state) {
|
switch(iframe->state) {
|
||||||
case NGHTTP2_IB_READ_HEAD:
|
case NGHTTP2_IB_READ_HEAD:
|
||||||
|
@ -3571,6 +3581,19 @@ ssize_t nghttp2_session_mem_recv(nghttp2_session *session,
|
||||||
case NGHTTP2_PRIORITY:
|
case NGHTTP2_PRIORITY:
|
||||||
case NGHTTP2_RST_STREAM:
|
case NGHTTP2_RST_STREAM:
|
||||||
case NGHTTP2_WINDOW_UPDATE:
|
case NGHTTP2_WINDOW_UPDATE:
|
||||||
|
#ifdef DEBUGBUILD
|
||||||
|
switch(iframe->frame.hd.type) {
|
||||||
|
case NGHTTP2_PRIORITY:
|
||||||
|
DEBUGF(fprintf(stderr, "PRIORITY\n"));
|
||||||
|
break;
|
||||||
|
case NGHTTP2_RST_STREAM:
|
||||||
|
DEBUGF(fprintf(stderr, "RST_STREAM\n"));
|
||||||
|
break;
|
||||||
|
case NGHTTP2_WINDOW_UPDATE:
|
||||||
|
DEBUGF(fprintf(stderr, "WINDOW_UPDATE\n"));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#endif /* DEBUGBUILD */
|
||||||
if(iframe->payloadleft != 4) {
|
if(iframe->payloadleft != 4) {
|
||||||
busy = 1;
|
busy = 1;
|
||||||
iframe->state = NGHTTP2_IB_FRAME_SIZE_ERROR;
|
iframe->state = NGHTTP2_IB_FRAME_SIZE_ERROR;
|
||||||
|
@ -3598,6 +3621,7 @@ ssize_t nghttp2_session_mem_recv(nghttp2_session *session,
|
||||||
inbound_frame_reset_left(iframe, 0);
|
inbound_frame_reset_left(iframe, 0);
|
||||||
break;
|
break;
|
||||||
case NGHTTP2_PUSH_PROMISE:
|
case NGHTTP2_PUSH_PROMISE:
|
||||||
|
DEBUGF(fprintf(stderr, "PUSH_PROMISE\n"));
|
||||||
if(iframe->payloadleft < 4) {
|
if(iframe->payloadleft < 4) {
|
||||||
busy = 1;
|
busy = 1;
|
||||||
iframe->state = NGHTTP2_IB_FRAME_SIZE_ERROR;
|
iframe->state = NGHTTP2_IB_FRAME_SIZE_ERROR;
|
||||||
|
@ -3607,6 +3631,7 @@ ssize_t nghttp2_session_mem_recv(nghttp2_session *session,
|
||||||
inbound_frame_reset_left(iframe, 4);
|
inbound_frame_reset_left(iframe, 4);
|
||||||
break;
|
break;
|
||||||
case NGHTTP2_PING:
|
case NGHTTP2_PING:
|
||||||
|
DEBUGF(fprintf(stderr, "PING\n"));
|
||||||
if(iframe->payloadleft != 8) {
|
if(iframe->payloadleft != 8) {
|
||||||
busy = 1;
|
busy = 1;
|
||||||
iframe->state = NGHTTP2_IB_FRAME_SIZE_ERROR;
|
iframe->state = NGHTTP2_IB_FRAME_SIZE_ERROR;
|
||||||
|
@ -3616,6 +3641,7 @@ ssize_t nghttp2_session_mem_recv(nghttp2_session *session,
|
||||||
inbound_frame_reset_left(iframe, 8);
|
inbound_frame_reset_left(iframe, 8);
|
||||||
break;
|
break;
|
||||||
case NGHTTP2_GOAWAY:
|
case NGHTTP2_GOAWAY:
|
||||||
|
DEBUGF(fprintf(stderr, "GOAWAY\n"));
|
||||||
if(iframe->payloadleft < 8) {
|
if(iframe->payloadleft < 8) {
|
||||||
busy = 1;
|
busy = 1;
|
||||||
iframe->state = NGHTTP2_IB_FRAME_SIZE_ERROR;
|
iframe->state = NGHTTP2_IB_FRAME_SIZE_ERROR;
|
||||||
|
@ -3625,6 +3651,7 @@ ssize_t nghttp2_session_mem_recv(nghttp2_session *session,
|
||||||
inbound_frame_reset_left(iframe, 8);
|
inbound_frame_reset_left(iframe, 8);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
DEBUGF(fprintf(stderr, "unknown frame\n"));
|
||||||
/* Receiving unknown frame type and CONTINUATION in this state
|
/* Receiving unknown frame type and CONTINUATION in this state
|
||||||
are subject to connection error of type PROTOCOL_ERROR */
|
are subject to connection error of type PROTOCOL_ERROR */
|
||||||
rv = nghttp2_session_terminate_session(session,
|
rv = nghttp2_session_terminate_session(session,
|
||||||
|
@ -4320,6 +4347,8 @@ ssize_t nghttp2_session_pack_data(nghttp2_session *session,
|
||||||
|
|
||||||
if(payloadlen == NGHTTP2_ERR_DEFERRED ||
|
if(payloadlen == NGHTTP2_ERR_DEFERRED ||
|
||||||
payloadlen == NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE) {
|
payloadlen == NGHTTP2_ERR_TEMPORAL_CALLBACK_FAILURE) {
|
||||||
|
DEBUGF(fprintf(stderr, "DATA postponed due to %s\n",
|
||||||
|
nghttp2_strerror(payloadlen)));
|
||||||
return payloadlen;
|
return payloadlen;
|
||||||
}
|
}
|
||||||
if(payloadlen < 0 || datamax < (size_t)payloadlen) {
|
if(payloadlen < 0 || datamax < (size_t)payloadlen) {
|
||||||
|
|
Loading…
Reference in New Issue