]> git.sur5r.net Git - openldap/commitdiff
AC_STRERROR_R
authorKurt Zeilenga <kurt@openldap.org>
Sun, 25 Apr 2004 00:19:06 +0000 (00:19 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Sun, 25 Apr 2004 00:19:06 +0000 (00:19 +0000)
include/ac/string.h
libraries/liblber/sockbuf.c

index 791bb009c9ea090051c2d4371bc419a3d23de72a..5ddc70900f07f3b5b5c7a9d2f947b4eef6e63533 100644 (file)
@@ -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 */
index 3dcd510653b1b2194baf872e453fa6c1bf8d960d..786eb51930dbeb2cd888e7cef313f607eb3704c1 100644 (file)
@@ -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",