misc/149086: Generic multicast join failure in 8.1
Hans-Werner Braun
hwb at ucsd.edu
Fri Jul 30 00:00:10 UTC 2010
>Number: 149086
>Category: misc
>Synopsis: Generic multicast join failure in 8.1
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Fri Jul 30 00:00:09 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator: Hans-Werner Braun
>Release: 8.1-RELEASE
>Organization:
UC San Diego
>Environment:
FreeBSD mcr.hpwren.ucsd.edu 8.1-RELEASE FreeBSD 8.1-RELEASE #0: Thu Jul 29 09:50:21 PDT 2010 hwb at mcr.hpwren.ucsd.edu:/usr/src/sys/amd64/compile/MCR amd64
>Description:
A perl program that I used in previous FreeBSD releases does not work any more. Specifically from tcpdump outputs it does not send the join request to the router. The program:
#!/usr/local/bin/perl
use Socket;
$PORT=$ARGV[0];
$PATTERN=$ARGV[1];
$SERVER=$ARGV[2];
if($PORT eq ""){
printf"Syntax: mcaststream.pl port {pattern} {multicastaddress}\n";
exit;
}
if($SERVER eq ""){$SERVER="233.7.117.79";}
$|=1;
$IP_ADD_MEMBERSHIP=12;
($name, $aliases, $type, $len, $SERVERIP) = gethostbyname($SERVER);
$sockaddr = 'S n a4 x8';
socket(S, PF_INET,SOCK_DGRAM,UDP_PROTO)||die("$!");
setsockopt(S, SOL_SOCKET, SO_REUSEPORT, 1)||die("$!");
$us = pack($sockaddr, 2, $PORT, pack("C4", 0,0,0,0));
bind(S, $us)||die("$!");
setsockopt(S, 0, $IP_ADD_MEMBERSHIP, $SERVERIP."\0\0\0\0")||die("$!");
while($theiraddr=recv(S,$BUF,1024,0)){
($junk, $junk, $sourceaddr, $junk) = unpack($sockaddr, $theiraddr);
$theirip=join('.',unpack('C4', $sourceaddr));
if($BUF =~ $PATTERN){
printf"$theirip\t$BUF";
}
}
>How-To-Repeat:
The above program sends no traffic out of the Ethernet interface (specifically the join request).
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list