File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -84,6 +84,17 @@ class BCS_API settings
8484 virtual bool enabled () const NOEXCEPT;
8585 };
8686
87+ struct electrum_server
88+ : public network::settings::tls_server
89+ {
90+ using base = network::settings::tls_server;
91+ using base::base;
92+
93+ // Maximum number of headers the server will return in single request.
94+ // Recommended to be multiple of difficulty retarget period, e.g. 2016.
95+ uint32_t maximum_headers{ 10 * 2016 };
96+ };
97+
8798 // / html (http/s) document server settings (has directory/default).
8899 // / This is for web servers that expose a local file system directory.
89100 struct html_server
@@ -128,7 +139,7 @@ class BCS_API settings
128139 network::settings::http_server bitcoind{ " bitcoind" };
129140
130141 // / electrum compat interface (tcp/s, json-rpc-v2)
131- network::settings::tls_server electrum{ " electrum" };
142+ electrum_server electrum{ " electrum" };
132143
133144 // / stratum v1 compat interface (tcp/s, json-rpc-v1, auth handshake)
134145 network::settings::tls_server stratum_v1{ " stratum_v1" };
Original file line number Diff line number Diff line change @@ -1129,6 +1129,11 @@ options_metadata parser::load_settings() THROWS
11291129 value<uint32_t >(&configured.server .electrum .maximum_request ),
11301130 " The maximum allowed request size, defaults to '4000000'."
11311131 )
1132+ (
1133+ " electrum.maximum_headers" ,
1134+ value<uint32_t >(&configured.server .electrum .maximum_headers ),
1135+ " The maximum allowed header request cound, defaults to '20160'."
1136+ )
11321137
11331138 /* [stratum_v1] */
11341139 (
Original file line number Diff line number Diff line change @@ -230,6 +230,9 @@ BOOST_AUTO_TEST_CASE(server__electrum_server__defaults__expected)
230230 BOOST_REQUIRE (server.cert_path .empty ());
231231 BOOST_REQUIRE (server.key_path .empty ());
232232 BOOST_REQUIRE (server.key_pass .empty ());
233+
234+ // electrum_server
235+ BOOST_REQUIRE_EQUAL (server.maximum_headers , 10u * 2016u );
233236}
234237
235238BOOST_AUTO_TEST_CASE (server__stratum_v1_server__defaults__expected)
You can’t perform that action at this time.
0 commit comments