summaryrefslogtreecommitdiffstats
path: root/src/polypcore/socket-server.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/polypcore/socket-server.c')
-rw-r--r--src/polypcore/socket-server.c49
1 files changed, 30 insertions, 19 deletions
diff --git a/src/polypcore/socket-server.c b/src/polypcore/socket-server.c
index d457d626..baa31e68 100644
--- a/src/polypcore/socket-server.c
+++ b/src/polypcore/socket-server.c
@@ -314,45 +314,56 @@ fail:
return NULL;
}
-pa_socket_server* pa_socket_server_new_ip_loopback(pa_mainloop_api *m, uint16_t port, const char *tcpwrap_service) {
- pa_socket_server *s;
-
+pa_socket_server* pa_socket_server_new_ipv4_loopback(pa_mainloop_api *m, uint16_t port, const char *tcpwrap_service) {
assert(m);
assert(port > 0);
-
- if (!(s = pa_socket_server_new_ipv6(m, in6addr_loopback.s6_addr, port, tcpwrap_service)))
- s = pa_socket_server_new_ipv4(m, INADDR_LOOPBACK, port, tcpwrap_service);
- return s;
+ return pa_socket_server_new_ipv4(m, INADDR_LOOPBACK, port, 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 *s;
-
+pa_socket_server* pa_socket_server_new_ipv6_loopback(pa_mainloop_api *m, uint16_t port, const char *tcpwrap_service) {
+ assert(m);
+ assert(port > 0);
+
+ return pa_socket_server_new_ipv6(m, in6addr_loopback.s6_addr, port, tcpwrap_service);
+}
+
+pa_socket_server* pa_socket_server_new_ipv4_any(pa_mainloop_api *m, uint16_t port, const char *tcpwrap_service) {
assert(m);
assert(port > 0);
- if (!(s = pa_socket_server_new_ipv6(m, in6addr_any.s6_addr, port, tcpwrap_service)))
- s = pa_socket_server_new_ipv4(m, INADDR_ANY, port, tcpwrap_service);
+ return pa_socket_server_new_ipv4(m, INADDR_ANY, port, tcpwrap_service);
+}
- return s;
+pa_socket_server* pa_socket_server_new_ipv6_any(pa_mainloop_api *m, uint16_t port, const char *tcpwrap_service) {
+ assert(m);
+ assert(port > 0);
+
+ return pa_socket_server_new_ipv6(m, in6addr_any.s6_addr, port, 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) {
- struct in6_addr ipv6;
+pa_socket_server* pa_socket_server_new_ipv4_string(pa_mainloop_api *m, const char *name, uint16_t port, const char *tcpwrap_service) {
struct in_addr ipv4;
assert(m);
assert(name);
assert(port > 0);
- if (inet_pton(AF_INET6, name, &ipv6) > 0)
- return pa_socket_server_new_ipv6(m, ipv6.s6_addr, port, tcpwrap_service);
-
if (inet_pton(AF_INET, name, &ipv4) > 0)
return pa_socket_server_new_ipv4(m, ntohl(ipv4.s_addr), port, tcpwrap_service);
- pa_log_warn(__FILE__": failed to parse '%s'.", name);
+ return NULL;
+}
+
+pa_socket_server* pa_socket_server_new_ipv6_string(pa_mainloop_api *m, const char *name, uint16_t port, const char *tcpwrap_service) {
+ struct in6_addr ipv6;
+
+ assert(m);
+ assert(name);
+ assert(port > 0);
+
+ if (inet_pton(AF_INET6, name, &ipv6) > 0)
+ return pa_socket_server_new_ipv6(m, ipv6.s6_addr, port, tcpwrap_service);
return NULL;
}