@@ -830,6 +830,85 @@ Unescaper::~Unescaper() {}
830830
831831void Unescaper::unescape (char * s) const {}
832832
833+ inline CreateWebserver::CreateWebserver ():
834+ _port(DEFAULT_WS_PORT ),
835+ _startMethod(HttpUtils::INTERNAL_SELECT ),
836+ _maxThreads(0 ),
837+ _maxConnections(0 ),
838+ _memoryLimit(0 ),
839+ _connectionTimeout(DEFAULT_WS_TIMEOUT ),
840+ _perIPConnectionLimit(0 ),
841+ _logDelegate(0x0 ),
842+ _validator(0x0 ),
843+ _unescaper(0x0 ),
844+ _maxThreadStackSize(0 ),
845+ _useSsl(false ),
846+ _useIpv6(false ),
847+ _debug(false ),
848+ _pedantic(false ),
849+ _httpsMemKey(" " ),
850+ _httpsMemCert(" " ),
851+ _httpsMemTrust(" " ),
852+ _httpsPriorities(" " ),
853+ _credType(HttpUtils::NONE ),
854+ _digestAuthRandom(" " ),
855+ _nonceNcSize(0 )
856+ {
857+ }
858+
859+ inline CreateWebserver::CreateWebserver (const int port):
860+ _port(port),
861+ _startMethod(HttpUtils::INTERNAL_SELECT ),
862+ _maxThreads(0 ),
863+ _maxConnections(0 ),
864+ _memoryLimit(0 ),
865+ _connectionTimeout(DEFAULT_WS_TIMEOUT ),
866+ _perIPConnectionLimit(0 ),
867+ _logDelegate(0x0 ),
868+ _validator(0x0 ),
869+ _unescaper(0x0 ),
870+ _maxThreadStackSize(0 ),
871+ _useSsl(false ),
872+ _useIpv6(false ),
873+ _debug(false ),
874+ _pedantic(false ),
875+ _httpsMemKey(" " ),
876+ _httpsMemCert(" " ),
877+ _httpsMemTrust(" " ),
878+ _httpsPriorities(" " ),
879+ _credType(HttpUtils::NONE ),
880+ _digestAuthRandom(" " ),
881+ _nonceNcSize(0 )
882+ {
883+ }
884+
885+ inline CreateWebserver& CreateWebserver::port (const int port) { _port = port; return *this ; }
886+ inline CreateWebserver& CreateWebserver::startMethod (const HttpUtils::StartMethod_T& startMethod) { _startMethod = startMethod; return *this ; }
887+ inline CreateWebserver& CreateWebserver::maxThreads (const int maxThreads) { _maxThreads = maxThreads; return *this ; }
888+ inline CreateWebserver& CreateWebserver::maxConnections (const int maxConnections) { _maxConnections = maxConnections; return *this ; }
889+ inline CreateWebserver& CreateWebserver::memoryLimit (const int memoryLimit) { _memoryLimit = memoryLimit; return *this ; }
890+ inline CreateWebserver& CreateWebserver::connectionTimeout (const int connectionTimeout) { _connectionTimeout = connectionTimeout; return *this ; }
891+ inline CreateWebserver& CreateWebserver::perIPConnectionLimit (const int perIPConnectionLimit) { _perIPConnectionLimit = perIPConnectionLimit; return *this ; }
892+ inline CreateWebserver& CreateWebserver::logDelegate (const LoggingDelegate* logDelegate) { _logDelegate = logDelegate; return *this ; }
893+ inline CreateWebserver& CreateWebserver::validator (const RequestValidator* validator) { _validator = validator; return *this ; }
894+ inline CreateWebserver& CreateWebserver::unescaper (const Unescaper* unescaper) { _unescaper = unescaper; return *this ; }
895+ inline CreateWebserver& CreateWebserver::maxThreadStackSize (const int maxThreadStackSize) { _maxThreadStackSize = maxThreadStackSize; return *this ; }
896+ inline CreateWebserver& CreateWebserver::useSsl () { _useSsl = true ; return *this ; }
897+ inline CreateWebserver& CreateWebserver::noSsl () { _useSsl = false ; return *this ; }
898+ inline CreateWebserver& CreateWebserver::useIpv6 () { _useIpv6 = true ; return *this ; }
899+ inline CreateWebserver& CreateWebserver::noIpv6 () { _useIpv6 = false ; return *this ; }
900+ inline CreateWebserver& CreateWebserver::debug () { _debug = true ; return *this ; }
901+ inline CreateWebserver& CreateWebserver::noDebug () { _debug = false ; return *this ; }
902+ inline CreateWebserver& CreateWebserver::pedantic () { _pedantic = true ; return *this ; }
903+ inline CreateWebserver& CreateWebserver::noPedantic () { _pedantic = false ; return *this ; }
904+ inline CreateWebserver& CreateWebserver::httpsMemKey (const string& httpsMemKey) { _httpsMemKey = httpsMemKey; return *this ; }
905+ inline CreateWebserver& CreateWebserver::httpsMemCert (const string& httpsMemCert) { _httpsMemCert = httpsMemCert; return *this ; }
906+ inline CreateWebserver& CreateWebserver::httpsMemTrust (const string& httpsMemTrust) { _httpsMemTrust = httpsMemTrust; return *this ; }
907+ inline CreateWebserver& CreateWebserver::httpsPriorities (const string& httpsPriorities) { _httpsPriorities = httpsPriorities; return *this ; }
908+ inline CreateWebserver& CreateWebserver::credType (const HttpUtils::CredType_T& credType) { _credType = credType; return *this ; }
909+ inline CreateWebserver& CreateWebserver::digestAuthRandom (const string& digestAuthRandom) { _digestAuthRandom = digestAuthRandom; return *this ; }
910+ inline CreateWebserver& CreateWebserver::nonceNcSize (const int nonceNcSize) { _nonceNcSize = nonceNcSize; return *this ; }
911+
833912// WEBSERVER
834913Webserver::Webserver
835914(
@@ -882,6 +961,33 @@ Webserver::Webserver
882961 ignore_sigpipe ();
883962}
884963
964+ Webserver::Webserver (const CreateWebserver& params):
965+ port(params._port),
966+ maxThreads(params._maxThreads),
967+ maxConnections(params._maxConnections),
968+ memoryLimit(params._memoryLimit),
969+ connectionTimeout(params._connectionTimeout),
970+ perIPConnectionLimit(params._perIPConnectionLimit),
971+ logDelegate(params._logDelegate),
972+ validator(params._validator),
973+ unescaper(params._unescaper),
974+ maxThreadStackSize(params._maxThreadStackSize),
975+ useSsl(params._useSsl),
976+ useIpv6(params._useIpv6),
977+ debug(params._debug),
978+ pedantic(params._pedantic),
979+ httpsMemKey(params._httpsMemKey),
980+ httpsMemCert(params._httpsMemCert),
981+ httpsMemTrust(params._httpsMemTrust),
982+ httpsPriorities(params._httpsPriorities),
983+ credType(params._credType),
984+ digestAuthRandom(params._digestAuthRandom),
985+ nonceNcSize(params._nonceNcSize),
986+ running(false )
987+ {
988+ ignore_sigpipe ();
989+ }
990+
885991Webserver::~Webserver ()
886992{
887993 this ->stop ();
@@ -1097,6 +1203,7 @@ size_t internal_unescaper(void* cls, struct MHD_Connection *c, char* s)
10971203 }
10981204}
10991205
1206+
11001207int Webserver::post_iterator (void *cls, enum MHD_ValueKind kind,
11011208 const char *key,
11021209 const char *filename,
0 commit comments