From 189c2f498987e443836aada953ace7795202e350 Mon Sep 17 00:00:00 2001
From: Daniel Stenberg <daniel@haxx.se>
Date: Thu, 25 Mar 2004 12:45:01 +0000
Subject: [PATCH] so there are at least two different strerror_r() versions and
 our brand new configure script detects them and now this code acts according
 to what API that was detected

---
 lib/curl_strerror.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/lib/curl_strerror.c b/lib/curl_strerror.c
index 0d4ecbef83..5707596036 100644
--- a/lib/curl_strerror.c
+++ b/lib/curl_strerror.c
@@ -506,10 +506,17 @@ const char *Curl_strerror(struct connectdata *conn, int err)
   if (err >= 0 && err < sys_nerr) {
     /* These should be atomic and hopefully thread-safe */
 #ifdef HAVE_STRERROR_R
+#ifdef HAVE_POSIX_STRERROR_R
     strerror_r(err, buf, max); 
     /* this may set errno to ERANGE if insufficient storage was supplied via
        strerrbuf and buflen to contain the generated message string, or EINVAL
        if the value of errnum is not a valid error number.*/
+#else
+    /* HAVE_GLIBC_STRERROR_R */
+    char buffer[256];
+    char *msg = strerror_r(err, buffer, sizeof(buffer));
+    strncpy(buf, msg, max);
+#endif
 #else
     strncpy(buf, strerror(err), max);
 #endif
-- 
GitLab