dnl Checks for library functions.
dnl the *_r functions are in posix so we can use them unconditionally, but the ext/yahttp code is
dnl using the defines.
-AC_CHECK_FUNCS_ONCE([strcasestr localtime_r gmtime_r recvmmsg sched_setscheduler])
+AC_CHECK_FUNCS_ONCE([localtime_r gmtime_r recvmmsg sched_setscheduler])
AC_CHECK_FUNCS_ONCE([getrandom getentropy arc4random arc4random_uniform arc4random_buf])
PDNS_CHECK_SECURE_MEMSET
dnl the *_r functions are in posix so we can use them unconditionally, but the ext/yahttp code is
dnl using the defines.
-AC_CHECK_FUNCS_ONCE([localtime_r gmtime_r strcasestr])
+AC_CHECK_FUNCS_ONCE([localtime_r gmtime_r])
AC_CHECK_FUNCS_ONCE([getrandom getentropy arc4random arc4random_uniform arc4random_buf])
PDNS_CHECK_SECURE_MEMSET
extern StatBag S;
#endif
-#ifndef HAVE_STRCASESTR
-
-/*
- * strcasestr() locates the first occurrence in the string s1 of the
- * sequence of characters (excluding the terminating null character)
- * in the string s2, ignoring case. strcasestr() returns a pointer
- * to the located string, or a null pointer if the string is not found.
- * If s2 is empty, the function returns s1.
- */
-
-static char*
-strcasestr(const char* s1, const char* s2)
-{
- int* cm = __trans_lower;
- const uchar_t* us1 = (const uchar_t*)s1;
- const uchar_t* us2 = (const uchar_t*)s2;
- const uchar_t* tptr;
- int c;
-
- if (us2 == NULL || *us2 == '\0')
- return ((char*)us1);
-
- c = cm[*us2];
- while (*us1 != '\0') {
- if (c == cm[*us1++]) {
- tptr = us1;
- while (cm[c = *++us2] == cm[*us1++] && c != '\0')
- continue;
- if (c == '\0')
- return ((char*)tptr - 1);
- us1 = tptr;
- us2 = (const uchar_t*)s2;
- c = cm[*us2];
- }
- }
-
- return (NULL);
-}
-
-#endif // HAVE_STRCASESTR
-
static Json getServerDetail()
{
return Json::object{