49 lines
2.4 KiB
Diff
49 lines
2.4 KiB
Diff
adapted from: https://git.alpinelinux.org/aports/tree/community/gsoap/musl-fixes.patch
|
|
with help from paper42
|
|
|
|
--- a/gsoap/stdsoap2.c
|
|
+++ b/gsoap/stdsoap2.c
|
|
@@ -5125,7 +5125,7 @@
|
|
hostent = NULL;
|
|
soap->errnum = h_errno;
|
|
}
|
|
-#elif (!defined(_GNU_SOURCE) || (!(~_GNU_SOURCE+1) && !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600 || defined(__ANDROID__) || defined(FREEBSD) || defined(__FreeBSD__)) && !defined(SUN_OS) && defined(HAVE_GETHOSTBYNAME_R)
|
|
+#elif defined(LINUX) && defined(HAVE_GETHOSTBYNAME_R)
|
|
while ((r = gethostbyname_r(addr, hostent, tmpbuf, tmplen, &hostent, &soap->errnum)) < 0)
|
|
{
|
|
if (tmpbuf != soap->tmpbuf)
|
|
--- a/gsoap/stdsoap2.cpp
|
|
+++ b/gsoap/stdsoap2.cpp
|
|
@@ -5092,7 +5092,7 @@
|
|
{
|
|
#if (defined(_AIX43) || defined(TRU64) || defined(HP_UX)) && defined(HAVE_GETHOSTBYNAME_R)
|
|
struct hostent_data ht_data;
|
|
-#elif (!defined(_GNU_SOURCE) || (!(~_GNU_SOURCE+1) && !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600 || defined(__ANDROID__) || defined(FREEBSD) || defined(__FreeBSD__)) && defined(HAVE_GETHOSTBYNAME_R)
|
|
+#elif defined(LINUX) && defined(HAVE_GETHOSTBYNAME_R)
|
|
int r;
|
|
char *tmpbuf = soap->tmpbuf;
|
|
size_t tmplen = sizeof(soap->tmpbuf);
|
|
@@ -5125,7 +5125,7 @@
|
|
hostent = NULL;
|
|
soap->errnum = h_errno;
|
|
}
|
|
-#elif (!defined(_GNU_SOURCE) || (!(~_GNU_SOURCE+1) && !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600 || defined(__ANDROID__) || defined(FREEBSD) || defined(__FreeBSD__)) && !defined(SUN_OS) && defined(HAVE_GETHOSTBYNAME_R)
|
|
+#elif defined(LINUX) && defined(HAVE_GETHOSTBYNAME_R)
|
|
while ((r = gethostbyname_r(addr, hostent, tmpbuf, tmplen, &hostent, &soap->errnum)) < 0)
|
|
{
|
|
if (tmpbuf != soap->tmpbuf)
|
|
--- a/gsoap/stdsoap2.cpp
|
|
+++ b/gsoap/stdsoap2.cpp
|
|
@@ -22618,9 +22618,9 @@
|
|
{
|
|
#ifndef WIN32
|
|
# ifdef HAVE_STRERROR_R
|
|
-# if !defined(_GNU_SOURCE) || (!(~_GNU_SOURCE+1) && ((!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600)))
|
|
+# ifndef __GLIBC__
|
|
err = strerror_r(err, soap->msgbuf, sizeof(soap->msgbuf)); /* XSI-compliant */
|
|
if (err != 0)
|
|
soap_strcpy(soap->msgbuf, sizeof(soap->msgbuf), "unknown error");
|
|
# else
|
|
return strerror_r(err, soap->msgbuf, sizeof(soap->msgbuf)); /* GNU-specific */
|
|
# endif
|