summaryrefslogtreecommitdiffstats
path: root/src/modules/module-protocol-stub.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2010-01-14 00:13:13 +0100
committerLennart Poettering <lennart@poettering.net>2010-01-14 00:13:13 +0100
commit76089b11eb27675bad4d929d34cc43639f0e54ee (patch)
tree148bbbef5b97c5617ed95898565c009dba57555b /src/modules/module-protocol-stub.c
parent21cbcc1a8a5900af9e820b10d5c1b28fc803f947 (diff)
native: fallback to another port if the default port is taken
Unless the port number is explicitly configured we will now fallback to a kernel picked port if the one we'd like by default we cannot get. http://pulseaudio.org/ticket/773
Diffstat (limited to 'src/modules/module-protocol-stub.c')
-rw-r--r--src/modules/module-protocol-stub.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/modules/module-protocol-stub.c b/src/modules/module-protocol-stub.c
index 5b351d19..e0e7aa1f 100644
--- a/src/modules/module-protocol-stub.c
+++ b/src/modules/module-protocol-stub.c
@@ -246,6 +246,7 @@ int pa__init(pa_module*m) {
#if defined(USE_TCP_SOCKETS)
uint32_t port = IPV4_PORT;
+ pa_bool_t port_fallback = TRUE;
const char *listen_on;
#else
int r;
@@ -293,6 +294,10 @@ int pa__init(pa_module*m) {
#endif
#if defined(USE_TCP_SOCKETS)
+
+ if (pa_modargs_get_value(ma, "port", NULL))
+ port_fallback = FALSE;
+
if (pa_modargs_get_value_u32(ma, "port", &port) < 0 || port < 1 || port > 0xFFFF) {
pa_log("port= expects a numerical argument between 1 and 65535.");
goto fail;
@@ -302,14 +307,14 @@ int pa__init(pa_module*m) {
if (listen_on) {
# ifdef HAVE_IPV6
- u->socket_server_ipv6 = pa_socket_server_new_ipv6_string(m->core->mainloop, listen_on, (uint16_t) port, TCPWRAP_SERVICE);
+ u->socket_server_ipv6 = pa_socket_server_new_ipv6_string(m->core->mainloop, listen_on, (uint16_t) port, port_fallback, TCPWRAP_SERVICE);
# endif
- u->socket_server_ipv4 = pa_socket_server_new_ipv4_string(m->core->mainloop, listen_on, (uint16_t) port, TCPWRAP_SERVICE);
+ u->socket_server_ipv4 = pa_socket_server_new_ipv4_string(m->core->mainloop, listen_on, (uint16_t) port, port_fallback, TCPWRAP_SERVICE);
} else {
# ifdef HAVE_IPV6
- u->socket_server_ipv6 = pa_socket_server_new_ipv6_any(m->core->mainloop, (uint16_t) port, TCPWRAP_SERVICE);
+ u->socket_server_ipv6 = pa_socket_server_new_ipv6_any(m->core->mainloop, (uint16_t) port, port_fallback, TCPWRAP_SERVICE);
# endif
- u->socket_server_ipv4 = pa_socket_server_new_ipv4_any(m->core->mainloop, (uint16_t) port, TCPWRAP_SERVICE);
+ u->socket_server_ipv4 = pa_socket_server_new_ipv4_any(m->core->mainloop, (uint16_t) port, port_fallback, TCPWRAP_SERVICE);
}
# ifdef HAVE_IPV6