mirror of
https://github.com/curl/curl.git
synced 2025-01-18 14:04:30 +08:00
http2: receive and log the received header frames
This commit is contained in:
parent
be84524cc2
commit
b451c10d1e
52
lib/http2.c
52
lib/http2.c
@ -130,22 +130,50 @@ static ssize_t recv_callback(nghttp2_session *h2,
|
||||
return nread;
|
||||
}
|
||||
|
||||
|
||||
/* frame->hd.type is either NGHTTP2_HEADERS or NGHTTP2_PUSH_PROMISE */
|
||||
static int got_header(nghttp2_session *session, const nghttp2_frame *frame,
|
||||
const uint8_t *name, size_t namelen,
|
||||
const uint8_t *value, size_t valuelen,
|
||||
void *userp)
|
||||
{
|
||||
struct connectdata *conn = (struct connectdata *)userp;
|
||||
(void)session;
|
||||
(void)frame;
|
||||
|
||||
if(namelen + valuelen < 200) {
|
||||
char buffer[256];
|
||||
memcpy(buffer, name, namelen);
|
||||
buffer[namelen]=':';
|
||||
memcpy(&buffer[namelen+1], value, valuelen);
|
||||
buffer[namelen + valuelen + 1]=0;
|
||||
infof(conn->data, "Got '%s'\n", buffer);
|
||||
/* TODO: the headers need to be passed to the http parser */
|
||||
}
|
||||
else {
|
||||
infof(conn->data, "Got header with no name or too long\n",
|
||||
namelen, name, valuelen, value);
|
||||
}
|
||||
|
||||
return 0; /* 0 is successful */
|
||||
}
|
||||
|
||||
/*
|
||||
* This is all callbacks nghttp2 calls
|
||||
*/
|
||||
static const nghttp2_session_callbacks callbacks = {
|
||||
send_callback,
|
||||
recv_callback,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
send_callback, /* nghttp2_send_callback */
|
||||
recv_callback, /* nghttp2_recv_callback */
|
||||
NULL, /* nghttp2_on_frame_recv_callback */
|
||||
NULL, /* nghttp2_on_invalid_frame_recv_callback */
|
||||
NULL, /* nghttp2_on_data_chunk_recv_callback */
|
||||
NULL, /* nghttp2_before_frame_send_callback */
|
||||
NULL, /* nghttp2_on_frame_send_callback */
|
||||
NULL, /* nghttp2_on_frame_not_send_callback */
|
||||
NULL, /* nghttp2_on_stream_close_callback */
|
||||
NULL, /* nghttp2_on_unknown_frame_recv_callback */
|
||||
NULL, /* nghttp2_on_begin_headers_callback */
|
||||
got_header /* nghttp2_on_header_callback */
|
||||
};
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user