Thanks. Finally got an opportunity to reboot the machine and install the new OpenSSL. This patch works correctly for me.

Thanks,
Justin

On 08/05/11 19:02, Michael Tüxen wrote:
On May 7, 2011, at 11:14 PM, Justin Schoeman wrote:

Michael Tüxen wrote:
On May 7, 2011, at 10:40 PM, Justin Schoeman wrote:


William A. Rowe Jr. wrote:

On 5/7/2011 7:16 AM, Justin Schoeman wrote:

It does not matter which of these I try, openssl always binds to '::1:8008', 
which does
not accept IPV4.


I have tried various combinations of:
BIO_new_accept("0.0.0.0:8008")

This syntax should have bound to all IPv4 interfaces alone,
so as Michael suggests, it's certainly a bug.


Thanks.  If I get a chance I will have a further look on Monday.  Can I just 
post a patch here if I manage to figure it out?

I know what is going on... I contacted Stephen to figure out what
the correct behavior is for
BIO_new_accept("8008")
BIO_new_accept("*:8080")
Currently it is platform specific whether it returns an IPv4 or IPv6
socket.

The fix is that you need to add
hint.ai_family = AI_PASSIVE;
and depending on the semantic of the above hint.ai_family = AF_INET or
hint.ai_family = AF_INET6 for the above cases in BIO_get_accept_socket().

As soon as I get an answer from Stephen, I provide a patch.
Hi,

the attached patch (submitted to the RT tracker) does the following:
1. BIO_new_accept("8008") will give an IPv4 or IPv6 socket, depending on the 
system.
2. BIO_new_accept("*:8080") will give an IPv4 socket.
3. BIO_new_accept("::8080") will give an IPv6 socket.

Best regards
Michael

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to