@@ -610,15 +610,29 @@ class Server {
610610 virtual bool is_valid () const ;
611611
612612 Server &Get (const char *pattern, Handler handler);
613+ Server &Get (const char *pattern, size_t pattern_len, Handler handler);
613614 Server &Post (const char *pattern, Handler handler);
615+ Server &Post (const char *pattern, size_t pattern_len, Handler handler);
614616 Server &Post (const char *pattern, HandlerWithContentReader handler);
617+ Server &Post (const char *pattern, size_t pattern_len,
618+ HandlerWithContentReader handler);
615619 Server &Put (const char *pattern, Handler handler);
620+ Server &Put (const char *pattern, size_t pattern_len, Handler handler);
616621 Server &Put (const char *pattern, HandlerWithContentReader handler);
622+ Server &Put (const char *pattern, size_t pattern_len,
623+ HandlerWithContentReader handler);
617624 Server &Patch (const char *pattern, Handler handler);
625+ Server &Patch (const char *pattern, size_t pattern_len, Handler handler);
618626 Server &Patch (const char *pattern, HandlerWithContentReader handler);
627+ Server &Patch (const char *pattern, size_t pattern_len,
628+ HandlerWithContentReader handler);
619629 Server &Delete (const char *pattern, Handler handler);
630+ Server &Delete (const char *pattern, size_t pattern_len, Handler handler);
620631 Server &Delete (const char *pattern, HandlerWithContentReader handler);
632+ Server &Delete (const char *pattern, size_t pattern_len,
633+ HandlerWithContentReader handler);
621634 Server &Options (const char *pattern, Handler handler);
635+ Server &Options (const char *pattern, size_t pattern_len, Handler handler);
622636
623637 bool set_base_dir (const char *dir, const char *mount_point = nullptr );
624638 bool set_mount_point (const char *mount_point, const char *dir,
@@ -4069,66 +4083,116 @@ inline Server::Server()
40694083inline Server::~Server () {}
40704084
40714085inline Server &Server::Get (const char *pattern, Handler handler) {
4086+ return Get (pattern, strlen (pattern), handler);
4087+ }
4088+
4089+ inline Server &Server::Get (const char *pattern, size_t pattern_len,
4090+ Handler handler) {
40724091 get_handlers_.push_back (
4073- std::make_pair (std::regex (pattern), std::move (handler)));
4092+ std::make_pair (std::regex (pattern, pattern_len ), std::move (handler)));
40744093 return *this ;
40754094}
40764095
40774096inline Server &Server::Post (const char *pattern, Handler handler) {
4097+ return Post (pattern, strlen (pattern), handler);
4098+ }
4099+
4100+ inline Server &Server::Post (const char *pattern, size_t pattern_len,
4101+ Handler handler) {
40784102 post_handlers_.push_back (
4079- std::make_pair (std::regex (pattern), std::move (handler)));
4103+ std::make_pair (std::regex (pattern, pattern_len ), std::move (handler)));
40804104 return *this ;
40814105}
40824106
40834107inline Server &Server::Post (const char *pattern,
40844108 HandlerWithContentReader handler) {
4109+ return Post (pattern, strlen (pattern), handler);
4110+ }
4111+
4112+ inline Server &Server::Post (const char *pattern, size_t pattern_len,
4113+ HandlerWithContentReader handler) {
40854114 post_handlers_for_content_reader_.push_back (
4086- std::make_pair (std::regex (pattern), std::move (handler)));
4115+ std::make_pair (std::regex (pattern, pattern_len ), std::move (handler)));
40874116 return *this ;
40884117}
40894118
40904119inline Server &Server::Put (const char *pattern, Handler handler) {
4120+ return Put (pattern, strlen (pattern), handler);
4121+ }
4122+
4123+ inline Server &Server::Put (const char *pattern, size_t pattern_len,
4124+ Handler handler) {
40914125 put_handlers_.push_back (
4092- std::make_pair (std::regex (pattern), std::move (handler)));
4126+ std::make_pair (std::regex (pattern, pattern_len ), std::move (handler)));
40934127 return *this ;
40944128}
40954129
40964130inline Server &Server::Put (const char *pattern,
40974131 HandlerWithContentReader handler) {
4132+ return Put (pattern, strlen (pattern), handler);
4133+ }
4134+
4135+ inline Server &Server::Put (const char *pattern, size_t pattern_len,
4136+ HandlerWithContentReader handler) {
40984137 put_handlers_for_content_reader_.push_back (
4099- std::make_pair (std::regex (pattern), std::move (handler)));
4138+ std::make_pair (std::regex (pattern, pattern_len ), std::move (handler)));
41004139 return *this ;
41014140}
41024141
41034142inline Server &Server::Patch (const char *pattern, Handler handler) {
4143+ return Patch (pattern, strlen (pattern), handler);
4144+ }
4145+
4146+ inline Server &Server::Patch (const char *pattern, size_t pattern_len,
4147+ Handler handler) {
41044148 patch_handlers_.push_back (
4105- std::make_pair (std::regex (pattern), std::move (handler)));
4149+ std::make_pair (std::regex (pattern, pattern_len ), std::move (handler)));
41064150 return *this ;
41074151}
41084152
41094153inline Server &Server::Patch (const char *pattern,
41104154 HandlerWithContentReader handler) {
4155+ return Patch (pattern, strlen (pattern), handler);
4156+ }
4157+
4158+ inline Server &Server::Patch (const char *pattern, size_t pattern_len,
4159+ HandlerWithContentReader handler) {
41114160 patch_handlers_for_content_reader_.push_back (
4112- std::make_pair (std::regex (pattern), std::move (handler)));
4161+ std::make_pair (std::regex (pattern, pattern_len ), std::move (handler)));
41134162 return *this ;
41144163}
41154164
41164165inline Server &Server::Delete (const char *pattern, Handler handler) {
4166+ return Delete (pattern, strlen (pattern), handler);
4167+ }
4168+
4169+ inline Server &Server::Delete (const char *pattern, size_t pattern_len,
4170+ Handler handler) {
41174171 delete_handlers_.push_back (
4118- std::make_pair (std::regex (pattern), std::move (handler)));
4172+ std::make_pair (std::regex (pattern, pattern_len ), std::move (handler)));
41194173 return *this ;
41204174}
41214175
41224176inline Server &Server::Delete (const char *pattern,
41234177 HandlerWithContentReader handler) {
4178+ return Delete (pattern, strlen (pattern), handler);
4179+ }
4180+
4181+ inline Server &Server::Delete (const char *pattern, size_t pattern_len,
4182+ HandlerWithContentReader handler) {
41244183 delete_handlers_for_content_reader_.push_back (
4125- std::make_pair (std::regex (pattern), std::move (handler)));
4184+ std::make_pair (std::regex (pattern, pattern_len ), std::move (handler)));
41264185 return *this ;
41274186}
41284187
41294188inline Server &Server::Options (const char *pattern, Handler handler) {
4189+ return Options (pattern, strlen (pattern), handler);
4190+ }
4191+
4192+ inline Server &Server::Options (const char *pattern, size_t pattern_len,
4193+ Handler handler) {
41304194 options_handlers_.push_back (
4131- std::make_pair (std::regex (pattern), std::move (handler)));
4195+ std::make_pair (std::regex (pattern, pattern_len ), std::move (handler)));
41324196 return *this ;
41334197}
41344198
0 commit comments