]> git.sur5r.net Git - openldap/commitdiff
in sb_debug_read/write save errno before logging a failure.
authorHoward Chu <hyc@openldap.org>
Mon, 31 Dec 2001 12:50:09 +0000 (12:50 +0000)
committerHoward Chu <hyc@openldap.org>
Mon, 31 Dec 2001 12:50:09 +0000 (12:50 +0000)
ber_log_printf can cause errors of its own and obscure the original.

libraries/liblber/sockbuf.c

index 5ce23ac656d310ccd7c246544d4adf27f903fe9b..dc31e8696e04743324c301e31fb474b3da0269b5 100644 (file)
@@ -822,10 +822,11 @@ sb_debug_read( Sockbuf_IO_Desc *sbiod, void *buf, ber_len_t len )
        if (sbiod->sbiod_sb->sb_debug & LDAP_DEBUG_PACKETS)
        {
            if ( ret < 0 ) {
+               int err = errno;
                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 ) );
-
+               errno = err;
            } else {
                ber_log_printf( LDAP_DEBUG_PACKETS, sbiod->sbiod_sb->sb_debug,
                        "%sread: want=%ld, got=%ld\n", (char *)sbiod->sbiod_pvt,
@@ -846,11 +847,12 @@ sb_debug_write( Sockbuf_IO_Desc *sbiod, void *buf, ber_len_t len )
        if (sbiod->sbiod_sb->sb_debug & LDAP_DEBUG_PACKETS)
        {
            if ( ret < 0 ) {
+               int err = errno;
                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 ) );
-
+               errno = err;
            } else {
                ber_log_printf( LDAP_DEBUG_PACKETS, sbiod->sbiod_sb->sb_debug,
                        "%swrite: want=%ld, written=%ld\n",