Support IPv6 address in pa_socket_client_new_string()
authorHajime Fujita <crisp.fujita@nifty.com>
Mon, 1 Feb 2016 04:15:58 +0000 (22:15 -0600)
committerTanu Kaskinen <tanuk@iki.fi>
Thu, 19 Jan 2017 00:56:53 +0000 (02:56 +0200)
commit017ed3e7fa50bbb6e1e2b6731e5cfa79d5e3f459
treeafdb6d41c03828f57d30fcf120f93f367f40838b
parent84952e6a092b6a0c5b153bd7a4f6e490810681c8
Support IPv6 address in pa_socket_client_new_string()

pa_socket_client_new_string() did 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 then 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]"). [1]

This patch fixes pa_socket_client_new_string() so that it internally
adds brackets to an IPv6 address. This decision is based on a
discussion at [2].

[1]: http://lists.freedesktop.org/archives/pulseaudio-discuss/2014-October/022010.html
[2]: http://lists.freedesktop.org/archives/pulseaudio-discuss/2014-November/022401.html

Reviewed-by: Anton Lundin <glance@acc.umu.se>
src/pulsecore/parseaddr.c
src/pulsecore/parseaddr.h
src/pulsecore/socket-client.c