summaryrefslogtreecommitdiffstats
path: root/stream/udp.c
diff options
context:
space:
mode:
authornicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-03-08 20:47:10 +0000
committernicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-03-08 20:47:10 +0000
commit2cefb53a764d63b69a58ad168481c93efb5d34ca (patch)
treeaeeb7649976ea49f8bd7a769f99f9b1cf774b6a1 /stream/udp.c
parent195ebfbef8d4b8c5f9565819b700286b0b4023a2 (diff)
downloadmpv-2cefb53a764d63b69a58ad168481c93efb5d34ca.tar.bz2
mpv-2cefb53a764d63b69a58ad168481c93efb5d34ca.tar.xz
optionally reuse the socket if -reuse-socket is selected; patch by Yong Hwan (sio4 users sf net) simplified by me
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22491 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'stream/udp.c')
-rw-r--r--stream/udp.c6
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)
{