From ecd346fa9a3ebf786bff8c5a9579b5096f90fc04 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 22 Feb 2006 20:44:37 +0000 Subject: add listen= parameter to tcp protocol modules git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@569 fefdeb5f-60dc-0310-8127-8f9354f1896f --- src/polypcore/socket-server.c | 18 ++++++++++++++++++ src/polypcore/socket-server.h | 1 + 2 files changed, 19 insertions(+) (limited to 'src/polypcore') 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); -- cgit