mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-12 10:54:48 +08:00
ITS#9328 cldap: check for error on connected socket
libldap doesn't use a connected socket for UDP sessions, but 3rd parties can, passed in with ldap_init_fd().
This commit is contained in:
parent
9900794af1
commit
e3faae939c
@ -486,7 +486,8 @@ retry:
|
||||
#ifdef LDAP_CONNECTIONLESS
|
||||
if ( LDAP_IS_UDP(ld) ) {
|
||||
struct sockaddr_storage from;
|
||||
ber_int_sb_read( lc->lconn_sb, &from, sizeof(struct sockaddr_storage) );
|
||||
if ( ber_int_sb_read( lc->lconn_sb, &from, sizeof(struct sockaddr_storage) ) < 0 )
|
||||
goto fail;
|
||||
if ( ld->ld_options.ldo_version == LDAP_VERSION2 ) isv2 = 1;
|
||||
}
|
||||
nextresp3:
|
||||
@ -502,10 +503,11 @@ nextresp3:
|
||||
break;
|
||||
|
||||
case LBER_DEFAULT:
|
||||
fail:
|
||||
err = sock_errno();
|
||||
#ifdef LDAP_DEBUG
|
||||
Debug0( LDAP_DEBUG_CONNS,
|
||||
"ber_get_next failed.\n" );
|
||||
Debug1( LDAP_DEBUG_CONNS,
|
||||
"ber_get_next failed, errno=%d.\n", err );
|
||||
#endif
|
||||
if ( err == EWOULDBLOCK ) return LDAP_MSG_X_KEEP_LOOKING;
|
||||
if ( err == EAGAIN ) return LDAP_MSG_X_KEEP_LOOKING;
|
||||
|
Loading…
Reference in New Issue
Block a user