Add nghttp2_session_get_local_settings() API function
This commit is contained in:
parent
759f6c0b39
commit
e693f75670
|
@ -108,6 +108,7 @@ APIDOCS= \
|
||||||
nghttp2_session_get_effective_local_window_size.rst \
|
nghttp2_session_get_effective_local_window_size.rst \
|
||||||
nghttp2_session_get_effective_recv_data_length.rst \
|
nghttp2_session_get_effective_recv_data_length.rst \
|
||||||
nghttp2_session_get_last_proc_stream_id.rst \
|
nghttp2_session_get_last_proc_stream_id.rst \
|
||||||
|
nghttp2_session_get_local_settings.rst \
|
||||||
nghttp2_session_get_local_window_size.rst \
|
nghttp2_session_get_local_window_size.rst \
|
||||||
nghttp2_session_get_next_stream_id.rst \
|
nghttp2_session_get_next_stream_id.rst \
|
||||||
nghttp2_session_get_outbound_queue_size.rst \
|
nghttp2_session_get_outbound_queue_size.rst \
|
||||||
|
|
|
@ -3242,6 +3242,17 @@ NGHTTP2_EXTERN uint32_t
|
||||||
nghttp2_session_get_remote_settings(nghttp2_session *session,
|
nghttp2_session_get_remote_settings(nghttp2_session *session,
|
||||||
nghttp2_settings_id id);
|
nghttp2_settings_id id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @function
|
||||||
|
*
|
||||||
|
* Returns the value of SETTINGS |id| of local endpoint acknowledged
|
||||||
|
* by the remote endpoint. The |id| must be one of the values defined
|
||||||
|
* in :enum:`nghttp2_settings_id`.
|
||||||
|
*/
|
||||||
|
NGHTTP2_EXTERN uint32_t
|
||||||
|
nghttp2_session_get_local_settings(nghttp2_session *session,
|
||||||
|
nghttp2_settings_id id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @function
|
* @function
|
||||||
*
|
*
|
||||||
|
|
|
@ -7237,6 +7237,26 @@ uint32_t nghttp2_session_get_remote_settings(nghttp2_session *session,
|
||||||
assert(0);
|
assert(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint32_t nghttp2_session_get_local_settings(nghttp2_session *session,
|
||||||
|
nghttp2_settings_id id) {
|
||||||
|
switch (id) {
|
||||||
|
case NGHTTP2_SETTINGS_HEADER_TABLE_SIZE:
|
||||||
|
return session->local_settings.header_table_size;
|
||||||
|
case NGHTTP2_SETTINGS_ENABLE_PUSH:
|
||||||
|
return session->local_settings.enable_push;
|
||||||
|
case NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS:
|
||||||
|
return session->local_settings.max_concurrent_streams;
|
||||||
|
case NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE:
|
||||||
|
return session->local_settings.initial_window_size;
|
||||||
|
case NGHTTP2_SETTINGS_MAX_FRAME_SIZE:
|
||||||
|
return session->local_settings.max_frame_size;
|
||||||
|
case NGHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE:
|
||||||
|
return session->local_settings.max_header_list_size;
|
||||||
|
}
|
||||||
|
|
||||||
|
assert(0);
|
||||||
|
}
|
||||||
|
|
||||||
static int nghttp2_session_upgrade_internal(nghttp2_session *session,
|
static int nghttp2_session_upgrade_internal(nghttp2_session *session,
|
||||||
const uint8_t *settings_payload,
|
const uint8_t *settings_payload,
|
||||||
size_t settings_payloadlen,
|
size_t settings_payloadlen,
|
||||||
|
|
|
@ -5112,6 +5112,15 @@ void test_nghttp2_submit_settings(void) {
|
||||||
|
|
||||||
CU_ASSERT(50 == session->pending_local_max_concurrent_stream);
|
CU_ASSERT(50 == session->pending_local_max_concurrent_stream);
|
||||||
|
|
||||||
|
/* before receiving SETTINGS ACK, local settings have still default
|
||||||
|
values */
|
||||||
|
CU_ASSERT(NGHTTP2_DEFAULT_MAX_CONCURRENT_STREAMS ==
|
||||||
|
nghttp2_session_get_local_settings(
|
||||||
|
session, NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS));
|
||||||
|
CU_ASSERT(NGHTTP2_INITIAL_WINDOW_SIZE ==
|
||||||
|
nghttp2_session_get_local_settings(
|
||||||
|
session, NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE));
|
||||||
|
|
||||||
nghttp2_frame_settings_init(&ack_frame.settings, NGHTTP2_FLAG_ACK, NULL, 0);
|
nghttp2_frame_settings_init(&ack_frame.settings, NGHTTP2_FLAG_ACK, NULL, 0);
|
||||||
CU_ASSERT(0 == nghttp2_session_on_settings_received(session, &ack_frame, 0));
|
CU_ASSERT(0 == nghttp2_session_on_settings_received(session, &ack_frame, 0));
|
||||||
nghttp2_frame_settings_free(&ack_frame.settings, mem);
|
nghttp2_frame_settings_free(&ack_frame.settings, mem);
|
||||||
|
@ -5120,6 +5129,12 @@ void test_nghttp2_submit_settings(void) {
|
||||||
CU_ASSERT(1023 == session->hd_inflater.ctx.hd_table_bufsize_max);
|
CU_ASSERT(1023 == session->hd_inflater.ctx.hd_table_bufsize_max);
|
||||||
CU_ASSERT(111 == session->hd_inflater.min_hd_table_bufsize_max);
|
CU_ASSERT(111 == session->hd_inflater.min_hd_table_bufsize_max);
|
||||||
CU_ASSERT(50 == session->local_settings.max_concurrent_streams);
|
CU_ASSERT(50 == session->local_settings.max_concurrent_streams);
|
||||||
|
|
||||||
|
CU_ASSERT(50 == nghttp2_session_get_local_settings(
|
||||||
|
session, NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS));
|
||||||
|
CU_ASSERT(16 * 1024 == nghttp2_session_get_local_settings(
|
||||||
|
session, NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE));
|
||||||
|
|
||||||
/* We just keep the last seen value */
|
/* We just keep the last seen value */
|
||||||
CU_ASSERT(50 == session->pending_local_max_concurrent_stream);
|
CU_ASSERT(50 == session->pending_local_max_concurrent_stream);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue