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

Attachment: bio.patch
Description: Binary data


>> 
>> Best regards
>> Michael
>> 
> Great! Thanks!
> Justin
> ______________________________________________________________________
> OpenSSL Project                                 http://www.openssl.org
> User Support Mailing List                    openssl-users@openssl.org
> Automated List Manager                           majord...@openssl.org
> 

Reply via email to