[pulseaudio-discuss] incomplete IPv6 support in pa_socket_client_new_string()

Hajime Fujita crisp.fujita at nifty.com
Wed Nov 5 20:29:14 PST 2014


Hi Tanu,

Thank you for your comment and sorry for the late reply.

Tanu Kaskinen wrote:
> On Tue, 2014-10-21 at 00:49 -0500, Hajime Fujita wrote:
>> Hello,
>>
>> I'm currently working on IPv6 support for the raop module [1].
>>
>> During the work I found a potential issue in
>> pa_socket_client_new_string() (in pulsecore/socket-client.c) as pointed
>> out in [1].
>>
>> It does not work as expected when an IPv6 address string like
>> "2001:db8::1" is passed as the "name" parameter. This is because the
>> name parameter is passed to pa_parse_address(), which thinks the last
>> colon as a separator between hostname (or address) and a port number. To
>> prevent pa_parse_address() from doing this, an IPv6 address must be
>> bracketed with "[]" (e.g. "[2001:db8::1]").
>>
>> I'm wondering what would be the best solution for this situation.
>> a. Modify callers: callers of pa_socket_client_new_string() must add
>> brackets to IPv6 addresses.
>> b. Modify pa_socket_client_new_string(): if an IPv6 address is given as
>> the name parameter, it will be bracketed before being passed to
>> pa_parse_address().
>>
>> Any opinions or suggestions?
>
> I think it makes more sense to fix this in the callers of
> pa_socket_client_new_string(). It would be good to also add a comment in
> socket-client.h saying that the name parameter can include also the port
> using the usual syntax, and for that reason IPv6 addresses must be
> enclosed in brackets.
>

Do you have any justification behind this?


Thanks,
Hajime



More information about the pulseaudio-discuss mailing list