--- libraries/liblber/io.c 2008/01/07 23:20:03 1.120 +++ libraries/liblber/io.c 2008/06/27 00:36:41 1.121 @@ -1,5 +1,5 @@ /* io.c - ber general i/o routines */ -/* $OpenLDAP: pkg/ldap/libraries/liblber/io.c,v 1.119 2007/10/17 23:35:07 hyc Exp $ */ +/* $OpenLDAP: pkg/ldap/libraries/liblber/io.c,v 1.120 2008/01/07 23:20:03 kurt Exp $ */ /* This work is part of OpenLDAP Software . * * Copyright 1998-2008 The OpenLDAP Foundation. @@ -584,13 +584,11 @@ ber_get_next( return LBER_DEFAULT; } /* Not enough bytes? */ - if (ber->ber_rwptr - (char *)p < llen) { -#if defined( EWOULDBLOCK ) - sock_errset(EWOULDBLOCK); -#elif defined( EAGAIN ) - sock_errset(EAGAIN); -#endif - return LBER_DEFAULT; + i = ber->ber_rwptr - (char *)p; + if (i < llen) { + sblen=ber_int_sb_read( sb, ber->ber_rwptr, i ); + if (sblenber_rwptr += sblen; } for (i=0; i