From 189c2f498987e443836aada953ace7795202e350 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Thu, 25 Mar 2004 12:45:01 +0000 Subject: 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(+) (limited to 'lib') diff --git a/lib/curl_strerror.c b/lib/curl_strerror.c index 0d4ecbef8..570759603 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 -- cgit v1.2.3