Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Aug 2012 13:17:29 GMT
From:      Denis Zaika <i@doct.org.ua>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/170917: udpxy on freebsd 9.0 allow only one client for each multicast stream
Message-ID:  <201208231317.q7NDHTev049117@red.freebsd.org>
Resent-Message-ID: <201208231320.q7NDK21h008643@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         170917
>Category:       ports
>Synopsis:       udpxy on freebsd 9.0 allow only one client for each multicast stream
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Aug 23 13:20:01 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Denis Zaika
>Release:        9.0
>Organization:
TBC Soniko-svyaz
>Environment:
FreeBSD noc 9.0-RELEASE-p3 FreeBSD 9.0-RELEASE-p3 #0: Tue Jul 17 10:47:35 EEST 2012     zaika@noc:/usr/obj/usr/src/sys/gw  amd64
udpxy-1.0.21-2
>Description:
If someone watches any IPTV channel (UDP multicast) via udpxy proxy next client can't watch it.
Udpxy rise error "setup_mcast_listener: bind: Address already in use". On RELENG8 I've never seen such issue.
>How-To-Repeat:
Start to watch any IPTV channel via udpxy on FreeBSD 9.0 and try to watch the same channel from another IP.
>Fix:
In the file netop.c replace a few strings in setup_mcast_listener

from:

rc = setsockopt( sockfd, SOL_SOCKET, SO_REUSEADDR,
                         &ON, sizeof(ON) );

to:

rc = setsockopt( sockfd, SOL_SOCKET, SO_REUSEPORT,
                         &ON, sizeof(ON) );

Patch attached with submission follows:

--- ./netop.c.orig      2011-12-20 22:05:42.000000000 +0200
+++ ./netop.c   2012-08-23 15:22:19.662474379 +0300
@@ -215,10 +215,10 @@
         }
 
 
-        rc = setsockopt( sockfd, SOL_SOCKET, SO_REUSEADDR,
+        rc = setsockopt( sockfd, SOL_SOCKET, SO_REUSEPORT,
                          &ON, sizeof(ON) );
         if( 0 != rc ) {
-            mperror(g_flog, errno, "%s: setsockopt SO_REUSEADDR",
+            mperror(g_flog, errno, "%s: setsockopt SO_REUSEPORT",
                     __func__);
             break;
         }


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201208231317.q7NDHTev049117>