From 62da0b6738e9329e2715699b7ac9556575ba83f1 Mon Sep 17 00:00:00 2001 From: Kurt Zeilenga Date: Sun, 25 Apr 2004 00:19:06 +0000 Subject: [PATCH] AC_STRERROR_R --- include/ac/string.h | 13 +++++++++++++ libraries/liblber/sockbuf.c | 6 ++++-- 2 files changed, 17 insertions(+), 2 deletions(-) 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", -- 2.39.5