--- 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