From: Kurt Zeilenga Date: Sun, 25 Apr 2004 00:19:06 +0000 (+0000) Subject: AC_STRERROR_R X-Git-Tag: OPENDLAP_REL_ENG_2_2_MP~438 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=62da0b6738e9329e2715699b7ac9556575ba83f1;p=openldap AC_STRERROR_R --- diff --git a/include/ac/string.h b/include/ac/string.h index 791bb009c9..5ddc70900f 100644 --- a/include/ac/string.h +++ b/include/ac/string.h @@ -91,4 +91,17 @@ int (strncasecmp)(); #define STRLENOF(s) (sizeof(s)-1) +#if defined( HAVE_NONPOSIX_STRERROR_R ) +# define AC_STRERROR_R(e,b,l) (strerror_r((e), (b), (l))) +#elif defined( HAVE_STRERROR_R ) +# define AC_STRERROR_R(e,b,l) (strerror_r((e), (b), (l)) ? (b) : NULL) +#elif defined( HAVE_SYS_ERRLIST ) +# define AC_STRERROR_R(e,b,l) ((e) > -1 && (e) < sys_nerr \ + ? sys_errlist[(e)] : NULL ) +#elif defined( HAVE_STRERROR ) +# define AC_STRERROR_R(e,b,l) (strerror(e)) +#else +# define AC_STRERROR_R(e,b,l) (NULL) +#endif + #endif /* _AC_STRING_H */ diff --git a/libraries/liblber/sockbuf.c b/libraries/liblber/sockbuf.c index 3dcd510653..786eb51930 100644 --- a/libraries/liblber/sockbuf.c +++ b/libraries/liblber/sockbuf.c @@ -818,6 +818,7 @@ static ber_slen_t sb_debug_read( Sockbuf_IO_Desc *sbiod, void *buf, ber_len_t len ) { ber_slen_t ret; + char ebuf[128]; ret = LBER_SBIOD_READ_NEXT( sbiod, buf, len ); if (sbiod->sbiod_sb->sb_debug & LDAP_DEBUG_PACKETS) { @@ -825,7 +826,7 @@ sb_debug_read( Sockbuf_IO_Desc *sbiod, void *buf, ber_len_t len ) if ( ret < 0 ) { ber_log_printf( LDAP_DEBUG_PACKETS, sbiod->sbiod_sb->sb_debug, "%sread: want=%ld error=%s\n", (char *)sbiod->sbiod_pvt, - (long)len, STRERROR( errno ) ); + (long)len, AC_STRERROR_R( errno, ebuf, sizeof ebuf ) ); } else { ber_log_printf( LDAP_DEBUG_PACKETS, sbiod->sbiod_sb->sb_debug, "%sread: want=%ld, got=%ld\n", (char *)sbiod->sbiod_pvt, @@ -842,6 +843,7 @@ static ber_slen_t sb_debug_write( Sockbuf_IO_Desc *sbiod, void *buf, ber_len_t len ) { ber_slen_t ret; + char ebuf[128]; ret = LBER_SBIOD_WRITE_NEXT( sbiod, buf, len ); if (sbiod->sbiod_sb->sb_debug & LDAP_DEBUG_PACKETS) { @@ -850,7 +852,7 @@ sb_debug_write( Sockbuf_IO_Desc *sbiod, void *buf, ber_len_t len ) ber_log_printf( LDAP_DEBUG_PACKETS, sbiod->sbiod_sb->sb_debug, "%swrite: want=%ld error=%s\n", (char *)sbiod->sbiod_pvt, (long)len, - STRERROR( errno ) ); + AC_STRERROR_R( errno, ebuf, sizeof ebuf ) ); } else { ber_log_printf( LDAP_DEBUG_PACKETS, sbiod->sbiod_sb->sb_debug, "%swrite: want=%ld, written=%ld\n",