diff options
Diffstat (limited to 'stream')
-rw-r--r-- | stream/udp.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/stream/udp.c b/stream/udp.c index 889c23826d..67e8f04f98 100644 --- a/stream/udp.c +++ b/stream/udp.c @@ -43,6 +43,8 @@ #include "url.h" #include "udp.h" +int reuse_socket=0; + /* Start listening on a UDP port. If multicast, join the group. */ int udp_open_socket (URL_t *url) @@ -55,6 +57,7 @@ udp_open_socket (URL_t *url) struct ip_mreq mcast; struct timeval tv; struct hostent *hp; + int reuse=reuse_socket; mp_msg (MSGT_NETWORK, MSGL_V, "Listening for traffic on %s:%d ...\n", url->hostname, url->port); @@ -98,6 +101,9 @@ udp_open_socket (URL_t *url) server_address.sin_family = AF_INET; server_address.sin_port = htons (url->port); + if(reuse_socket && setsockopt(socket_server_fd, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof(reuse))) + mp_msg(MSGT_NETWORK, MSGL_ERR, "SO_REUSEADDR failed! ignore.\n"); + if (bind (socket_server_fd, (struct sockaddr *) &server_address, sizeof (server_address)) == -1) { |