[openssl.org #457] bug report: BIO_socket_nbio() can't set socket to non-blocking
[levitte - Fri Jan 31 00:02:41 2003]: Hmm, BIO_socket_ioctl() should really take a void* instead of an unsigned long *. Then, BIO_socket_nbio() should send a pointer to an int instead of a pointe to a long. The latter can be done anyway and pushed through useing a cast (ugly), or we could change that last argument type to BIO_socket_ioctl(), but that breaks the API (at least at source level). I ended up changing the type of the last argument to BIO_socket_ioctl(). This ticket is now resolved. -- Richard Levitte __ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]
[openssl.org #457] bug report: BIO_socket_nbio() can't set socket to non-blocking
Hmm, BIO_socket_ioctl() should really take a void* instead of an unsigned long *. Then, BIO_socket_nbio() should send a pointer to an int instead of a pointe to a long. The latter can be done anyway and pushed through useing a cast (ugly), or we could change that last argument type to BIO_socket_ioctl(), but that breaks the API (at least at source level). *sigh* [[EMAIL PROTECTED] - Tue Jan 14 09:48:11 2003]: bug report: openssl operating system: HP-UX11 openssl version 0.9.6b, 0.96g and probably 0.7 too. configuration options:./Configure hpux64-parisc-cc shared no-idea Description: BIO_socket_nbio() fails to set sockets to non-blocking mode. The call succeeds but the socket is still blocking I have noticed that BIO_socket_nbio() calls BIO_socket_ioctl() unsing FIONBIO. This ioctl, according to it's man page, takes one argument: a pointer to int, but the BIO_socket_ioctl() uses a pointer to long as the argument. This will result in that the os will only read the 32 most significant bits of the 64 bit long value that is set to 0 or 1 by BIO_socket_nbio(). These bits are always 0 and the call will always set the socket to blocking mode. (If I patch BIO_socket_ioctl() to send a pointer to int instead the calls to BIO_socket_nbio() work as expected.) Regards /Magnus Lind -- Richard Levitte __ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]
[openssl.org #457] bug report: BIO_socket_nbio() can't set socket to non-blocking
bug report: openssl operating system: HP-UX11 openssl version 0.9.6b, 0.96g and probably 0.7 too. configuration options:./Configure hpux64-parisc-cc shared no-idea Description: BIO_socket_nbio() fails to set sockets to non-blocking mode. The call succeeds but the socket is still blocking I have noticed that BIO_socket_nbio() calls BIO_socket_ioctl() unsing FIONBIO. This ioctl, according to it's man page, takes one argument: a pointer to int, but the BIO_socket_ioctl() uses a pointer to long as the argument. This will result in that the os will only read the 32 most significant bits of the 64 bit long value that is set to 0 or 1 by BIO_socket_nbio(). These bits are always 0 and the call will always set the socket to blocking mode. (If I patch BIO_socket_ioctl() to send a pointer to int instead the calls to BIO_socket_nbio() work as expected.) Regards /Magnus Lind __ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]