diff --git a/mongoose.c b/mongoose.c index 367f6193b60fe7559b8f48d5e7b3dba170ca4991..73a1f1791eb5191bfc16f6f420dc0fa6d6a12ccc 100644 --- a/mongoose.c +++ b/mongoose.c @@ -1551,9 +1551,7 @@ void cs_hmac_sha1(const unsigned char *key, size_t keylen, /* Amalgamated: #include "osdep.h" */ /* Amalgamated: #include "str_util.h" */ -#if !(_XOPEN_SOURCE >= 700 || _POSIX_C_SOURCE >= 200809L) && \ - !(__DARWIN_C_LEVEL >= 200809L) && !defined(RTOS_SDK) || \ - defined(_WIN32) +#ifdef _MG_PROVIDE_STRNLEN size_t strnlen(const char *s, size_t maxlen) { size_t l = 0; for (; l < maxlen && s[l] != '\0'; l++) { diff --git a/mongoose.h b/mongoose.h index 7d37254bacdab25632c2ccbe4b3c21aa7826e172..f8dd00fc9607a55c8c3d6f1433079e6f6c3d02a2 100644 --- a/mongoose.h +++ b/mongoose.h @@ -105,7 +105,6 @@ #include <assert.h> #include <ctype.h> -#include <errno.h> #include <limits.h> #include <stdarg.h> #include <stddef.h> @@ -234,8 +233,11 @@ struct dirent *readdir(DIR *dir); #include <sys/select.h> #endif -#ifndef _WIN32 +#ifndef LWIP_PROVIDE_ERRNO #include <errno.h> +#endif + +#ifndef _WIN32 #include <inttypes.h> #include <stdarg.h> @@ -519,9 +521,12 @@ extern "C" { int c_snprintf(char *buf, size_t buf_size, const char *format, ...); int c_vsnprintf(char *buf, size_t buf_size, const char *format, va_list ap); -#if !(_XOPEN_SOURCE >= 700 || _POSIX_C_SOURCE >= 200809L) && \ - !(__DARWIN_C_LEVEL >= 200809L) && !defined(RTOS_SDK) || \ +#if (!(defined(_XOPEN_SOURCE) && _XOPEN_SOURCE >= 700) && \ + !(defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 200809L) && \ + !(defined(__DARWIN_C_LEVEL) && __DARWIN_C_LEVEL >= 200809L) && \ + !defined(RTOS_SDK)) || \ defined(_WIN32) +#define _MG_PROVIDE_STRNLEN size_t strnlen(const char *s, size_t maxlen); #endif