From 2a2bc33a8945c7a14436062247a52ca7d0c91fe5 Mon Sep 17 00:00:00 2001 From: Deomid Ryabkov Date: Wed, 5 Jul 2017 17:14:34 +0100 Subject: [PATCH] Add mg_strstr PUBLISHED_FROM=4306e870e2cab854febb6becc198ca2247e2e002 --- mongoose.c | 14 ++++++++++++++ mongoose.h | 2 ++ 2 files changed, 16 insertions(+) diff --git a/mongoose.c b/mongoose.c index 78024e36..4a8aea4f 100644 --- a/mongoose.c +++ b/mongoose.c @@ -1481,6 +1481,20 @@ int mg_strncmp(const struct mg_str str1, const struct mg_str str2, size_t n) { } return mg_strcmp(s1, s2); } + +const char *mg_strstr(const struct mg_str haystack, + const struct mg_str needle) WEAK; +const char *mg_strstr(const struct mg_str haystack, + const struct mg_str needle) { + size_t i; + if (needle.len > haystack.len) return NULL; + for (i = 0; i <= haystack.len - needle.len; i++) { + if (memcmp(haystack.p + i, needle.p, needle.len) == 0) { + return haystack.p + i; + } + } + return NULL; +} #ifdef MG_MODULE_LINES #line 1 "common/str_util.c" #endif diff --git a/mongoose.h b/mongoose.h index 4292276d..514b904e 100644 --- a/mongoose.h +++ b/mongoose.h @@ -1809,6 +1809,8 @@ const char *mg_strchr(const struct mg_str s, int c); int mg_strcmp(const struct mg_str str1, const struct mg_str str2); int mg_strncmp(const struct mg_str str1, const struct mg_str str2, size_t n); +const char *mg_strstr(const struct mg_str haystack, const struct mg_str needle); + #ifdef __cplusplus } #endif /* __cplusplus */