]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
allow other programs such as vlc, udpxy, etc.. to bind to the same udp port 46/head
authorStefan Saraev <stefan@saraev.ca>
Tue, 15 Nov 2011 15:41:31 +0000 (17:41 +0200)
committerStefan Saraev <stefan@saraev.ca>
Tue, 15 Nov 2011 15:41:31 +0000 (17:41 +0200)
src/iptv_input.c

index 09b13a472253768d21779d2f41b463eaf533f97b..0bfc31124aaed20d2bccf73268b5bd318193f13c 100644 (file)
@@ -248,6 +248,7 @@ iptv_service_start(service_t *t, unsigned int weight, int force_start)
     sin.sin_family = AF_INET;
     sin.sin_port = htons(t->s_iptv_port);
     sin.sin_addr.s_addr = t->s_iptv_group.s_addr;
+    setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &m, sizeof(struct ip_mreqn));
     if(bind(fd, (struct sockaddr *)&sin, sizeof(sin)) == -1) {
       tvhlog(LOG_ERR, "IPTV", "\"%s\" cannot bind %s:%d -- %s",
            t->s_identifier, inet_ntoa(sin.sin_addr), t->s_iptv_port,
@@ -274,6 +275,7 @@ iptv_service_start(service_t *t, unsigned int weight, int force_start)
     sin6.sin6_family = AF_INET6;
     sin6.sin6_port = htons(t->s_iptv_port);
     sin6.sin6_addr = t->s_iptv_group6;
+    setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &m6, sizeof(struct ipv6_mreq));
     if(bind(fd, (struct sockaddr *)&sin6, sizeof(sin6)) == -1) {
       inet_ntop(AF_INET6, &sin6.sin6_addr, straddr, sizeof(straddr));
       tvhlog(LOG_ERR, "IPTV", "\"%s\" cannot bind %s:%d -- %s",