diff options
author | Jonas Boberg <[email protected]> | 2020-09-30 22:35:55 +0900 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2020-10-23 13:06:59 +0200 |
commit | c20c37dec04f6d27382c7e754f2ba74d4faec517 (patch) | |
tree | 937833bd11ff46613e951a7a20b9eee56c56fdfe /src | |
parent | be9e57032f95fe8a2d8403ca792345770cdaa8b1 (diff) | |
download | cowlib-c20c37dec04f6d27382c7e754f2ba74d4faec517.tar.gz cowlib-c20c37dec04f6d27382c7e754f2ba74d4faec517.tar.bz2 cowlib-c20c37dec04f6d27382c7e754f2ba74d4faec517.zip |
Add cow_http2_machine:get_remote_settings/12.10.0
LH: I've updated the code to include enable_connect_protocol
conditionally depending on the endpoint.
Diffstat (limited to 'src')
-rw-r--r-- | src/cow_http2_machine.erl | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/cow_http2_machine.erl b/src/cow_http2_machine.erl index 4da7cdf..2d7fbf5 100644 --- a/src/cow_http2_machine.erl +++ b/src/cow_http2_machine.erl @@ -31,6 +31,7 @@ -export([reset_stream/2]). -export([get_connection_local_buffer_size/1]). -export([get_local_setting/2]). +-export([get_remote_settings/1]). -export([get_last_streamid/1]). -export([get_stream_local_buffer_size/2]). -export([get_stream_local_state/2]). @@ -1495,6 +1496,24 @@ get_connection_local_buffer_size(#http2_machine{streams=Streams}) -> get_local_setting(Key, #http2_machine{local_settings=Settings}) -> maps:get(Key, Settings, default_setting_value(Key)). +-spec get_remote_settings(http2_machine()) -> map(). +get_remote_settings(#http2_machine{mode=Mode, remote_settings=Settings}) -> + Defaults0 = #{ + header_table_size => default_setting_value(header_table_size), + enable_push => default_setting_value(enable_push), + max_concurrent_streams => default_setting_value(max_concurrent_streams), + initial_window_size => default_setting_value(initial_window_size), + max_frame_size => default_setting_value(max_frame_size), + max_header_list_size => default_setting_value(max_header_list_size) + }, + Defaults = case Mode of + server -> + Defaults0#{enable_connect_protocol => default_setting_value(enable_connect_protocol)}; + client -> + Defaults0 + end, + maps:merge(Defaults, Settings). + default_setting_value(header_table_size) -> 4096; default_setting_value(enable_push) -> true; default_setting_value(max_concurrent_streams) -> infinity; |