summaryrefslogtreecommitdiffstats
path: root/src/polypcore
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2006-02-22 20:44:37 +0000
committerLennart Poettering <lennart@poettering.net>2006-02-22 20:44:37 +0000
commitecd346fa9a3ebf786bff8c5a9579b5096f90fc04 (patch)
tree3596c2eb402236d3a1ab50d94ba9779a9929e443 /src/polypcore
parent8df72bceb5c29aa0b5b974f0bc3a416b6733cbdb (diff)
add listen= parameter to tcp protocol modules
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@569 fefdeb5f-60dc-0310-8127-8f9354f1896f
Diffstat (limited to 'src/polypcore')
-rw-r--r--src/polypcore/socket-server.c18
-rw-r--r--src/polypcore/socket-server.h1
2 files changed, 19 insertions, 0 deletions
diff --git a/src/polypcore/socket-server.c b/src/polypcore/socket-server.c
index 5f84911d..b1297496 100644
--- a/src/polypcore/socket-server.c
+++ b/src/polypcore/socket-server.c
@@ -334,6 +334,24 @@ pa_socket_server* pa_socket_server_new_ip_any(pa_mainloop_api *m, uint16_t port,
return s;
}
+pa_socket_server* pa_socket_server_new_ip_string(pa_mainloop_api *m, const char *name, uint16_t port, const char *tcpwrap_service) {
+ uint8_t ipv6[16];
+ uint32_t ipv4;
+
+ assert(m);
+ assert(name);
+ assert(port > 0);
+
+ if (inet_pton(AF_INET6, name, ipv6) > 0)
+ return pa_socket_server_new_ipv6(m, ipv6, port, tcpwrap_service);
+
+ if (inet_pton(AF_INET, name, &ipv4) > 0)
+ return pa_socket_server_new_ipv4(m, ntohl(ipv4), port, tcpwrap_service);
+
+ pa_log_warn(__FILE__": failed to parse '%s'.\n", name);
+
+ return NULL;
+}
static void socket_server_free(pa_socket_server*s) {
assert(s);
diff --git a/src/polypcore/socket-server.h b/src/polypcore/socket-server.h
index d11cee49..3babbc14 100644
--- a/src/polypcore/socket-server.h
+++ b/src/polypcore/socket-server.h
@@ -36,6 +36,7 @@ pa_socket_server* pa_socket_server_new_ipv4(pa_mainloop_api *m, uint32_t address
pa_socket_server* pa_socket_server_new_ipv6(pa_mainloop_api *m, const uint8_t address[16], uint16_t port, const char *tcpwrap_service);
pa_socket_server* pa_socket_server_new_ip_loopback(pa_mainloop_api *m, uint16_t port, const char *tcpwrap_service);
pa_socket_server* pa_socket_server_new_ip_any(pa_mainloop_api *m, uint16_t port, const char *tcpwrap_service);
+pa_socket_server* pa_socket_server_new_ip_string(pa_mainloop_api *m, const char *name, uint16_t port, const char *tcpwrap_service);
void pa_socket_server_unref(pa_socket_server*s);
pa_socket_server* pa_socket_server_ref(pa_socket_server *s);