|
@@ -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;
|