mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-30 18:57:27 +02:00
add wc_strcasecmp() and wc_strncasecmp() to wc_port.c, and set up (USE_WOLF_STR[N]CASECMP) in types.h for targets lacking native implementations (including WOLF_C89);
define USE_WOLF_STRSEP if defined(WOLF_C89).
This commit is contained in:
@ -1081,6 +1081,48 @@ size_t wc_strlcat(char *dst, const char *src, size_t dstSize)
|
|||||||
}
|
}
|
||||||
#endif /* USE_WOLF_STRLCAT */
|
#endif /* USE_WOLF_STRLCAT */
|
||||||
|
|
||||||
|
#ifdef USE_WOLF_STRCASECMP
|
||||||
|
int wc_strcasecmp(const char *s1, const char *s2)
|
||||||
|
{
|
||||||
|
char c1, c2;
|
||||||
|
for (;
|
||||||
|
;
|
||||||
|
++s1, ++s2)
|
||||||
|
{
|
||||||
|
c1 = *s1;
|
||||||
|
if ((c1 >= 'a') && (c1 <= 'z'))
|
||||||
|
c1 -= ('a' - 'A');
|
||||||
|
c2 = *s2;
|
||||||
|
if ((c2 >= 'a') && (c2 <= 'z'))
|
||||||
|
c2 -= ('a' - 'A');
|
||||||
|
if ((c1 != c2) || (c1 == 0))
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return (c1 - c2);
|
||||||
|
}
|
||||||
|
#endif /* USE_WOLF_STRCASECMP */
|
||||||
|
|
||||||
|
#ifdef USE_WOLF_STRNCASECMP
|
||||||
|
int wc_strncasecmp(const char *s1, const char *s2, size_t n)
|
||||||
|
{
|
||||||
|
char c1, c2;
|
||||||
|
for (c1 = 0, c2 = 0;
|
||||||
|
n > 0;
|
||||||
|
--n, ++s1, ++s2)
|
||||||
|
{
|
||||||
|
c1 = *s1;
|
||||||
|
if ((c1 >= 'a') && (c1 <= 'z'))
|
||||||
|
c1 -= ('a' - 'A');
|
||||||
|
c2 = *s2;
|
||||||
|
if ((c2 >= 'a') && (c2 <= 'z'))
|
||||||
|
c2 -= ('a' - 'A');
|
||||||
|
if ((c1 != c2) || (c1 == 0))
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return (c1 - c2);
|
||||||
|
}
|
||||||
|
#endif /* USE_WOLF_STRNCASECMP */
|
||||||
|
|
||||||
#if !defined(SINGLE_THREADED) && !defined(HAVE_C___ATOMIC)
|
#if !defined(SINGLE_THREADED) && !defined(HAVE_C___ATOMIC)
|
||||||
void wolfSSL_RefInit(wolfSSL_Ref* ref, int* err)
|
void wolfSSL_RefInit(wolfSSL_Ref* ref, int* err)
|
||||||
{
|
{
|
||||||
|
@ -640,7 +640,7 @@ typedef struct w64wrapper {
|
|||||||
defined(WOLFSSL_TIRTOS) || defined(WOLF_C99))
|
defined(WOLFSSL_TIRTOS) || defined(WOLF_C99))
|
||||||
#define USE_WOLF_STRTOK
|
#define USE_WOLF_STRTOK
|
||||||
#endif
|
#endif
|
||||||
#if !defined(USE_WOLF_STRSEP) && (defined(WOLF_C99))
|
#if !defined(USE_WOLF_STRSEP) && (defined(WOLF_C89) || defined(WOLF_C99))
|
||||||
#define USE_WOLF_STRSEP
|
#define USE_WOLF_STRSEP
|
||||||
#endif
|
#endif
|
||||||
#if !defined(XSTRLCPY) && !defined(USE_WOLF_STRLCPY)
|
#if !defined(XSTRLCPY) && !defined(USE_WOLF_STRLCPY)
|
||||||
@ -684,10 +684,9 @@ typedef struct w64wrapper {
|
|||||||
#define XSTRCASECMP(s1,s2) strcasecmp((s1),(s2))
|
#define XSTRCASECMP(s1,s2) strcasecmp((s1),(s2))
|
||||||
#elif defined(MICROCHIP_PIC32) || defined(WOLFSSL_TIRTOS) || \
|
#elif defined(MICROCHIP_PIC32) || defined(WOLFSSL_TIRTOS) || \
|
||||||
defined(WOLFSSL_ZEPHYR)
|
defined(WOLFSSL_ZEPHYR)
|
||||||
/* XC32 version < 1.0 does not support strcasecmp, so use
|
/* XC32 version < 1.0 does not support strcasecmp. */
|
||||||
* case sensitive one.
|
#define USE_WOLF_STRCASECMP
|
||||||
*/
|
#define XSTRCASECMP(s1,s2) wc_strcasecmp(s1,s2)
|
||||||
#define XSTRCASECMP(s1,s2) strcmp((s1),(s2))
|
|
||||||
#elif defined(USE_WINDOWS_API) || defined(FREERTOS_TCP_WINSIM)
|
#elif defined(USE_WINDOWS_API) || defined(FREERTOS_TCP_WINSIM)
|
||||||
#define XSTRCASECMP(s1,s2) _stricmp((s1),(s2))
|
#define XSTRCASECMP(s1,s2) _stricmp((s1),(s2))
|
||||||
#else
|
#else
|
||||||
@ -697,8 +696,10 @@ typedef struct w64wrapper {
|
|||||||
#endif
|
#endif
|
||||||
#if defined(WOLFSSL_DEOS)
|
#if defined(WOLFSSL_DEOS)
|
||||||
#define XSTRCASECMP(s1,s2) stricmp((s1),(s2))
|
#define XSTRCASECMP(s1,s2) stricmp((s1),(s2))
|
||||||
#elif defined(WOLFSSL_CMSIS_RTOSv2) || defined(WOLFSSL_AZSPHERE)
|
#elif defined(WOLFSSL_CMSIS_RTOSv2) || defined(WOLFSSL_AZSPHERE) \
|
||||||
#define XSTRCASECMP(s1,s2) strcmp((s1),(s2))
|
|| defined(WOLF_C89)
|
||||||
|
#define USE_WOLF_STRCASECMP
|
||||||
|
#define XSTRCASECMP(s1,s2) wc_strcasecmp(s1, s2)
|
||||||
#elif defined(WOLF_C89)
|
#elif defined(WOLF_C89)
|
||||||
#define XSTRCASECMP(s1,s2) strcmp((s1),(s2))
|
#define XSTRCASECMP(s1,s2) strcmp((s1),(s2))
|
||||||
#else
|
#else
|
||||||
@ -713,10 +714,9 @@ typedef struct w64wrapper {
|
|||||||
#define XSTRNCASECMP(s1,s2,n) strncasecmp((s1),(s2),(n))
|
#define XSTRNCASECMP(s1,s2,n) strncasecmp((s1),(s2),(n))
|
||||||
#elif defined(MICROCHIP_PIC32) || defined(WOLFSSL_TIRTOS) || \
|
#elif defined(MICROCHIP_PIC32) || defined(WOLFSSL_TIRTOS) || \
|
||||||
defined(WOLFSSL_ZEPHYR)
|
defined(WOLFSSL_ZEPHYR)
|
||||||
/* XC32 version < 1.0 does not support strncasecmp, so use case
|
/* XC32 version < 1.0 does not support strncasecmp. */
|
||||||
* sensitive one.
|
#define USE_WOLF_STRNCASECMP
|
||||||
*/
|
#define XSTRNCASECMP(s1,s2) wc_strncasecmp(s1,s2)
|
||||||
#define XSTRNCASECMP(s1,s2,n) strncmp((s1),(s2),(n))
|
|
||||||
#elif defined(USE_WINDOWS_API) || defined(FREERTOS_TCP_WINSIM)
|
#elif defined(USE_WINDOWS_API) || defined(FREERTOS_TCP_WINSIM)
|
||||||
#define XSTRNCASECMP(s1,s2,n) _strnicmp((s1),(s2),(n))
|
#define XSTRNCASECMP(s1,s2,n) _strnicmp((s1),(s2),(n))
|
||||||
#else
|
#else
|
||||||
@ -726,8 +726,10 @@ typedef struct w64wrapper {
|
|||||||
#endif
|
#endif
|
||||||
#if defined(WOLFSSL_DEOS)
|
#if defined(WOLFSSL_DEOS)
|
||||||
#define XSTRNCASECMP(s1,s2,n) strnicmp((s1),(s2),(n))
|
#define XSTRNCASECMP(s1,s2,n) strnicmp((s1),(s2),(n))
|
||||||
#elif defined(WOLFSSL_CMSIS_RTOSv2) || defined(WOLFSSL_AZSPHERE)
|
#elif defined(WOLFSSL_CMSIS_RTOSv2) || defined(WOLFSSL_AZSPHERE) \
|
||||||
#define XSTRNCASECMP(s1,s2,n) strncmp((s1),(s2),(n))
|
|| defined(WOLF_C89)
|
||||||
|
#define USE_WOLF_STRNCASECMP
|
||||||
|
#define XSTRNCASECMP(s1,s2,n) wc_strncasecmp(s1, s2 ,n)
|
||||||
#elif defined(WOLF_C89)
|
#elif defined(WOLF_C89)
|
||||||
#define XSTRNCASECMP(s1,s2,n) strncmp((s1),(s2),(n))
|
#define XSTRNCASECMP(s1,s2,n) strncmp((s1),(s2),(n))
|
||||||
#else
|
#else
|
||||||
@ -855,6 +857,12 @@ typedef struct w64wrapper {
|
|||||||
WOLFSSL_API size_t wc_strlcat(char *dst, const char *src, size_t dstSize);
|
WOLFSSL_API size_t wc_strlcat(char *dst, const char *src, size_t dstSize);
|
||||||
#define XSTRLCAT(s1,s2,n) wc_strlcat((s1),(s2),(n))
|
#define XSTRLCAT(s1,s2,n) wc_strlcat((s1),(s2),(n))
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef USE_WOLF_STRCASECMP
|
||||||
|
WOLFSSL_API int wc_strcasecmp(const char *s1, const char *s2);
|
||||||
|
#endif
|
||||||
|
#ifdef USE_WOLF_STRNCASECMP
|
||||||
|
WOLFSSL_API int wc_strncasecmp(const char *s1, const char *s2, size_t n);
|
||||||
|
#endif
|
||||||
|
|
||||||
#if !defined(NO_FILESYSTEM) && !defined(NO_STDIO_FILESYSTEM)
|
#if !defined(NO_FILESYSTEM) && !defined(NO_STDIO_FILESYSTEM)
|
||||||
#ifndef XGETENV
|
#ifndef XGETENV
|
||||||
|
Reference in New Issue
Block a user