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