diff options
Diffstat (limited to 'src/polypcore/socket-server.c')
| -rw-r--r-- | src/polypcore/socket-server.c | 49 | 
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;  }  | 
