@@ -175,7 +175,13 @@ class webserver
175175 const http_utils::cred_type_T& cred_type= http_utils::NONE,
176176 const std::string digest_auth_random = " " , // IT'S CORRECT TO PASS THIS PARAMETER BY VALUE
177177 int nonce_nc_size = 0 ,
178- const http_utils::policy_T& default_policy = http_utils::ACCEPT
178+ const http_utils::policy_T& default_policy = http_utils::ACCEPT,
179+ bool basic_auth_enabled = true ,
180+ bool digest_auth_enabled = true ,
181+ bool regex_checking = true ,
182+ bool ban_system_enabled = true ,
183+ bool post_process_enabled = true ,
184+ http_resource* single_resource = 0x0
179185 );
180186 webserver (const create_webserver& params);
181187 /* *
@@ -243,6 +249,12 @@ class webserver
243249 int nonce_nc_size;
244250 bool running;
245251 http_utils::policy_T default_policy;
252+ bool basic_auth_enabled;
253+ bool digest_auth_enabled;
254+ bool regex_checking;
255+ bool ban_system_enabled;
256+ bool post_process_enabled;
257+ bool single_resource;
246258
247259 std::map<http_endpoint, http_resource* > registered_resources;
248260#ifdef USE_CPP_ZEROX
@@ -326,7 +338,13 @@ class create_webserver
326338 _cred_type (http_utils::NONE),
327339 _digest_auth_random (" " ),
328340 _nonce_nc_size (0 ),
329- _default_policy (http_utils::ACCEPT)
341+ _default_policy (http_utils::ACCEPT),
342+ _basic_auth_enabled (true ),
343+ _digest_auth_enabled (true ),
344+ _regex_checking (true ),
345+ _ban_system_enabled (true ),
346+ _post_process_enabled (true ),
347+ _single_resource (0x0 )
330348 {
331349 }
332350
@@ -355,7 +373,13 @@ class create_webserver
355373 _cred_type(http_utils::NONE),
356374 _digest_auth_random(" " ),
357375 _nonce_nc_size(0 ),
358- _default_policy(http_utils::ACCEPT)
376+ _default_policy(http_utils::ACCEPT),
377+ _basic_auth_enabled(true ),
378+ _digest_auth_enabled(true ),
379+ _regex_checking(true ),
380+ _ban_system_enabled(true ),
381+ _post_process_enabled(true ),
382+ _single_resource(0x0 )
359383 {
360384 }
361385
@@ -391,6 +415,17 @@ class create_webserver
391415 create_webserver& digest_auth_random (const std::string& digest_auth_random) { _digest_auth_random = digest_auth_random; return *this ; }
392416 create_webserver& nonce_nc_size (int nonce_nc_size) { _nonce_nc_size = nonce_nc_size; return *this ; }
393417 create_webserver& default_policy (const http_utils::policy_T& default_policy) { _default_policy = default_policy; return *this ; }
418+ create_webserver& basic_auth () { _basic_auth_enabled = true ; return *this ; }
419+ create_webserver& no_basic_auth () { _basic_auth_enabled = false ; return *this ; }
420+ create_webserver& digest_auth () { _digest_auth_enabled = true ; return *this ; }
421+ create_webserver& no_digest_auth () { _digest_auth_enabled = false ; return *this ; }
422+ create_webserver& regex_checking () { _regex_checking = true ; return *this ; }
423+ create_webserver& no_regex_checking () { _regex_checking = false ; return *this ; }
424+ create_webserver& ban_system () { _ban_system_enabled = true ; return *this ; }
425+ create_webserver& no_ban_system () { _ban_system_enabled = false ; return *this ; }
426+ create_webserver& post_process () { _post_process_enabled = true ; return *this ; }
427+ create_webserver& no_post_process () { _post_process_enabled = false ; return *this ; }
428+ create_webserver& single_resource (http_resource* single_resource) { _single_resource = single_resource; return *this ; }
394429 private:
395430 int _port;
396431 http_utils::start_method_T _start_method;
@@ -417,6 +452,12 @@ class create_webserver
417452 std::string _digest_auth_random;
418453 int _nonce_nc_size;
419454 http_utils::policy_T _default_policy;
455+ bool _basic_auth_enabled;
456+ bool _digest_auth_enabled;
457+ bool _regex_checking;
458+ bool _ban_system_enabled;
459+ bool _post_process_enabled;
460+ http_resource* _single_resource;
420461
421462 friend class webserver ;
422463};
0 commit comments