eeBSD.org>; Mon, 10 Aug 2026 21:14:10 GMT
(envelope-from bugzilla-noreply@freebsd.org)
Received: (from www@localhost)
by kenobi.freebsd.org (8.15.2/8.15.2/Submit) id 67ALEAU1098374
for net@FreeBSD.org; Mon, 10 Aug 2026 21:14:10 GMT
(envelope-from bugzilla-noreply@freebsd.org)
X-Authentication-Warning: kenobi.freebsd.org: www set sender to bugzilla-noreply@freebsd.org using -f
From: bugzilla-noreply@freebsd.org
To: net@FreeBSD.org
Subject: [Bug 193246] Bug in IPv6 multicast join(), uncovered by Jenkins
Date: Mon, 10 Aug 2026 21:14:09 +0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: Base System
X-Bugzilla-Component: kern
X-Bugzilla-Version: 10.0-RELEASE
X-Bugzilla-Keywords:
X-Bugzilla-Severity: Affects Some People
X-Bugzilla-Who: michaelo@FreeBSD.org
X-Bugzilla-Status: In Progress
X-Bugzilla-Resolution:
X-Bugzilla-Priority: Normal
X-Bugzilla-Assigned-To: bms@FreeBSD.org
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields: cc
Message-ID:
In-Reply-To:
References:
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="UTF-8"
X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/
Auto-Submitted: auto-generated
List-Id: Networking and TCP/IP with FreeBSD
List-Archive: https://lists.freebsd.org/archives/freebsd-net
List-Help:
List-Post:
List-Subscribe:
List-Unsubscribe:
Sender: owner-freebsd-net@FreeBSD.org
List-Id:
List-Post:
List-Help:
List-Subscribe:
List-Unsubscribe:
List-Owner:
Precedence: list
MIME-Version: 1.0
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D193246
Michael Osipov changed:
What |Removed |Added
----------------------------------------------------------------------------
CC|michael.osipov@innomotics.c |
|om |
--- Comment #33 from Michael Osipov ---
(In reply to Adrian Chadd from comment #32)
Picked this up, updated to lastest from HEAD and OpenJDK 25, three-line Java
program. I don't have any IPv6 in use beyond ::1 on lo0.
Minimalist test:
import java.net.InetAddress; import java.net.MulticastSocket;
public class Join {
public static void main(String... args) throws Exception {
var g =3D InetAddress.getAllByName("228.5.6.7"); var z =3D =
new
MulticastSocket(6790);
z.joinGroup(g[0]);
}
}
Then had AI to generate the dtrace code. Output was:
# dtrace -s java-sockets.d -c 'java Join'
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Dsh fd=3D3
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Dsh fd=3D3
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Dsh fd=3D4
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Dsh fd=3D3
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Dsh fd=3D3
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Dsh fd=3D11
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Dsh fd=3D4
Exception in thread "main" java.net.SocketException: joinGroup failed
at
java.base/sun.nio.ch.DatagramSocketAdaptor.joinGroup(DatagramSocketAdaptor.=
java:423)
at
java.base/java.net.MulticastSocket.joinGroup(MulticastSocket.java:294)
at Join.main(Join.java:7)
Caused by: java.lang.IllegalArgumentException: IPv6 socket cannot join IPv4
multicast group
at
java.base/sun.nio.ch.DatagramChannelImpl.innerJoin(DatagramChannelImpl.java=
:1505)
at
java.base/sun.nio.ch.DatagramChannelImpl.join(DatagramChannelImpl.java:1586)
at
java.base/sun.nio.ch.DatagramSocketAdaptor.joinGroup(DatagramSocketAdaptor.=
java:469)
at
java.base/sun.nio.ch.DatagramSocketAdaptor.joinGroup(DatagramSocketAdaptor.=
java:420)
... 2 more
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Dsh fd=3D3
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Dsh fd=3D4
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Dsh fd=3D3
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Dsh fd=3D4
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Dsh fd=3D3
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Dsh fd=3D4
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Dsh fd=3D3
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Dsh fd=3D4
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Dsh fd=3D3
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Dsh fd=3D4
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Dsh fd=3D3
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Dsh fd=3D4
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Dsh fd=3D3
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Dsh fd=3D4
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Dsh fd=3D3
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Dsh fd=3D4
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Dsh fd=3D3
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Dsh fd=3D4
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Dsh fd=3D3
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Dsh fd=3D4
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Dsh fd=3D3
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Dsh fd=3D4
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Dsh fd=3D3
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Djava fd=3D3
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Djava fd=3D3
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Djava fd=3D3
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Djava fd=3D3
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Djava fd=3D3
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Djava fd=3D3
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Djava fd=3D3
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Djava fd=3D3
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Djava fd=3D3
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Djava fd=3D3
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Djava fd=3D3
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Djava fd=3D3
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Djava fd=3D3
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Djava fd=3D3
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Djava fd=3D3
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Djava fd=3D3
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Djava fd=3D4
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Djava fd=3D4
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Djava fd=3D4
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Djava fd=3D4
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Djava fd=3D5
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Djava fd=3D4
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Djava fd=3D4
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Djava fd=3D5
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Djava fd=3D6
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Djava fd=3D4
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Djava fd=3D5
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Djava fd=3D4
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Djava fd=3D4
2026 Aug 10 22:49:17 close pid=3D51581 comm=3Djava fd=3D4
2026 Aug 10 22:49:18 close pid=3D51581 comm=3Djava fd=3D4
2026 Aug 10 22:49:18 close pid=3D51581 comm=3Djava fd=3D4
2026 Aug 10 22:49:18 socket pid=3D51581 comm=3Djava domain=3D2 type=3D1=
proto=3D0
2026 Aug 10 22:49:18 close pid=3D51581 comm=3Djava fd=3D4
2026 Aug 10 22:49:18 socket pid=3D51581 comm=3Djava domain=3D28 type=3D=
1 proto=3D0
2026 Aug 10 22:49:18 close pid=3D51581 comm=3Djava fd=3D4
2026 Aug 10 22:49:18 socket pid=3D51581 comm=3Djava domain=3D28 type=3D=
1 proto=3D0
2026 Aug 10 22:49:18 setsockopt pid=3D51581 comm=3Djava fd=3D4 level=3D6553=
5 opt=3D512
val=3D82b9faebc len=3D4
2026 Aug 10 22:49:18 close pid=3D51581 comm=3Djava fd=3D4
2026 Aug 10 22:49:18 close pid=3D51581 comm=3Djava fd=3D4
2026 Aug 10 22:49:18 close pid=3D51581 comm=3Djava fd=3D4
2026 Aug 10 22:49:18 close pid=3D51581 comm=3Djava fd=3D5
2026 Aug 10 22:49:18 close pid=3D51581 comm=3Djava fd=3D5
2026 Aug 10 22:49:18 socket pid=3D51581 comm=3Djava domain=3D28 type=3D=
1 proto=3D6
2026 Aug 10 22:49:18 setsockopt pid=3D51581 comm=3Djava fd=3D5 level=3D6 op=
t=3D256
val=3D82b9fa9dc len=3D4
2026 Aug 10 22:49:18 close pid=3D51581 comm=3Djava fd=3D5
2026 Aug 10 22:49:18 socket pid=3D51581 comm=3Djava domain=3D28 type=3D=
1 proto=3D6
2026 Aug 10 22:49:18 setsockopt pid=3D51581 comm=3Djava fd=3D5 level=3D6 op=
t=3D1024
val=3D82b9fa9dc len=3D4
2026 Aug 10 22:49:18 close pid=3D51581 comm=3Djava fd=3D5
2026 Aug 10 22:49:18 socket pid=3D51581 comm=3Djava domain=3D28 type=3D=
1 proto=3D6
2026 Aug 10 22:49:18 setsockopt pid=3D51581 comm=3Djava fd=3D5 level=3D6 op=
t=3D512
val=3D82b9fa9dc len=3D4
2026 Aug 10 22:49:18 close pid=3D51581 comm=3Djava fd=3D5
2026 Aug 10 22:49:18 socket pid=3D51581 comm=3Djava domain=3D28 type=3D=
2 proto=3D0
2026 Aug 10 22:49:18 setsockopt pid=3D51581 comm=3Djava fd=3D5 level=3D41 o=
pt=3D27
val=3D82b9fb6b0 len=3D4
2026 Aug 10 22:49:18 setsockopt pid=3D51581 comm=3Djava fd=3D5 level=3D6553=
5 opt=3D512
val=3D82b9fb680 len=3D4
2026 Aug 10 22:49:18 setsockopt pid=3D51581 comm=3Djava fd=3D5 level=3D6553=
5 opt=3D4
val=3D82b9fb680 len=3D4
2026 Aug 10 22:49:18 setsockopt pid=3D51581 comm=3Djava fd=3D5 level=3D6553=
5 opt=3D32
val=3D82b9fb680 len=3D4
2026 Aug 10 22:49:18 socket pid=3D51581 comm=3Djava domain=3D2 type=3D2=
proto=3D0
2026 Aug 10 22:49:18 close pid=3D51581 comm=3Djava fd=3D6
2026 Aug 10 22:49:18 socket pid=3D51581 comm=3Djava domain=3D28 type=3D=
2 proto=3D0
2026 Aug 10 22:49:18 close pid=3D51581 comm=3Djava fd=3D6
2026 Aug 10 22:49:18 socket pid=3D51581 comm=3Djava domain=3D2 type=3D2=
proto=3D0
2026 Aug 10 22:49:18 close pid=3D51581 comm=3Djava fd=3D6
2026 Aug 10 22:49:18 socket pid=3D51581 comm=3Djava domain=3D2 type=3D2=
proto=3D0
2026 Aug 10 22:49:18 close pid=3D51581 comm=3Djava fd=3D6
2026 Aug 10 22:49:18 socket pid=3D51581 comm=3Djava domain=3D2 type=3D2=
proto=3D0
2026 Aug 10 22:49:18 close pid=3D51581 comm=3Djava fd=3D6
2026 Aug 10 22:49:18 socket pid=3D51581 comm=3Djava domain=3D2 type=3D2=
proto=3D0
2026 Aug 10 22:49:18 close pid=3D51581 comm=3Djava fd=3D6
2026 Aug 10 22:49:18 socket pid=3D51581 comm=3Djava domain=3D2 type=3D2=
proto=3D0
2026 Aug 10 22:49:18 close pid=3D51581 comm=3Djava fd=3D6
2026 Aug 10 22:49:18 socket pid=3D51581 comm=3Djava domain=3D2 type=3D2=
proto=3D0
2026 Aug 10 22:49:18 close pid=3D51581 comm=3Djava fd=3D6
2026 Aug 10 22:49:18 socket pid=3D51581 comm=3Djava domain=3D2 type=3D2=
proto=3D0
2026 Aug 10 22:49:18 close pid=3D51581 comm=3Djava fd=3D6
2026 Aug 10 22:49:18 socket pid=3D51581 comm=3Djava domain=3D2 type=3D2=
proto=3D0
2026 Aug 10 22:49:18 close pid=3D51581 comm=3Djava fd=3D6
based on this it wrote a sample C program which mimics Java's behavior:
# cat mcast_repro.c
#include
#include
#include
#include
#include
#include
#include
#include
#include
static void die(const char *msg) {
perror(msg);
exit(1);
}
static void usage(const char *prog) {
fprintf(stderr,
"usage: %s 4|6 [v6only 0|1]\n"
" 4 use PF_INET\n"
" 6 use PF_INET6\n"
" v6only only meaningful with PF_INET6 (default: 1)\n",
prog);
exit(2);
}
static void print_errno(const char *what) {
fprintf(stderr, "%s failed: %s (errno=3D%d)\n", what, strerror(errno),
errno);
}
int main(int argc, char **argv) {
int fd;
int family =3D 0;
int on =3D 1;
const char *group_str =3D "228.5.6.7";
if (argc < 2 || argc > 3)
usage(argv[0]);
if (strcmp(argv[1], "4") =3D=3D 0)
family =3D PF_INET;
else if (strcmp(argv[1], "6") =3D=3D 0)
family =3D PF_INET6;
else
usage(argv[0]);
if (argc =3D=3D 3)
on =3D atoi(argv[2]) ? 1 : 0;
printf("mode: family=3D%s", family =3D=3D PF_INET ? "PF_INET" : "PF_INE=
T6");
if (family =3D=3D PF_INET6)
printf(" v6only=3D%d", on);
printf("\n");
fd =3D socket(family, SOCK_DGRAM, 0);
if (fd < 0)
die("socket");
printf("socket() ok -> fd=3D%d\n", fd);
if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)) < 0)
die("SO_REUSEADDR");
printf("setsockopt(SO_REUSEADDR) ok\n");
if (setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &on, sizeof(on)) < 0)
die("SO_REUSEPORT");
printf("setsockopt(SO_REUSEPORT) ok\n");
if (setsockopt(fd, SOL_SOCKET, SO_BROADCAST, &on, sizeof(on)) < 0)
die("SO_BROADCAST");
printf("setsockopt(SO_BROADCAST) ok\n");
if (family =3D=3D PF_INET6) {
if (setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, &on, sizeof(on)) < 0)
die("IPV6_V6ONLY");
printf("setsockopt(IPV6_V6ONLY=3D%d) ok\n", on);
}
if (family =3D=3D PF_INET) {
struct sockaddr_in sa4;
struct ip_mreq mreq4;
memset(&sa4, 0, sizeof(sa4));
sa4.sin_len =3D sizeof(sa4);
sa4.sin_family =3D AF_INET;
sa4.sin_port =3D htons(6790);
sa4.sin_addr.s_addr =3D htonl(INADDR_ANY);
if (bind(fd, (struct sockaddr *)&sa4, sizeof(sa4)) < 0) {
print_errno("bind(AF_INET)");
close(fd);
return 1;
}
printf("bind(AF_INET 0.0.0.0:6790) ok\n");
memset(&mreq4, 0, sizeof(mreq4));
if (inet_pton(AF_INET, group_str, &mreq4.imr_multiaddr) !=3D 1)
die("inet_pton(AF_INET)");
mreq4.imr_interface.s_addr =3D htonl(INADDR_ANY);
printf("attempting IP_ADD_MEMBERSHIP for %s\n", group_str);
if (setsockopt(fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq4,
sizeof(mreq4)) < 0) {
print_errno("IP_ADD_MEMBERSHIP");
close(fd);
return 1;
}
printf("IP_ADD_MEMBERSHIP ok -> joined IPv4 multicast successfully =
on
PF_INET\n");
} else {
struct sockaddr_in6 sa6;
struct ip_mreq mreq4;
memset(&sa6, 0, sizeof(sa6));
sa6.sin6_len =3D sizeof(sa6);
sa6.sin6_family =3D AF_INET6;
sa6.sin6_port =3D htons(6790);
sa6.sin6_addr =3D in6addr_any;
if (bind(fd, (struct sockaddr *)&sa6, sizeof(sa6)) < 0) {
print_errno("bind(AF_INET6)");
close(fd);
return 1;
}
printf("bind(AF_INET6 :::6790) ok\n");
memset(&mreq4, 0, sizeof(mreq4));
if (inet_pton(AF_INET, group_str, &mreq4.imr_multiaddr) !=3D 1)
die("inet_pton(AF_INET)");
mreq4.imr_interface.s_addr =3D htonl(INADDR_ANY);
printf("attempting IP_ADD_MEMBERSHIP for %s\n", group_str);
if (setsockopt(fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq4,
sizeof(mreq4)) < 0) {
print_errno("IP_ADD_MEMBERSHIP");
close(fd);
return 1;
}
printf("IP_ADD_MEMBERSHIP ok -> joined IPv4 multicast successfully =
on
PF_INET6\n");
}
close(fd);
return 0;
}
$ cc -Wall -Wextra -o mcast_repro mcast_repro.c
$ ./mcast_repro 4
mode: family=3DPF_INET
socket() ok -> fd=3D3
setsockopt(SO_REUSEADDR) ok
setsockopt(SO_REUSEPORT) ok
setsockopt(SO_BROADCAST) ok
bind(AF_INET 0.0.0.0:6790) ok
attempting IP_ADD_MEMBERSHIP for 228.5.6.7
IP_ADD_MEMBERSHIP ok -> joined IPv4 multicast successfully on PF_INET
$ ./mcast_repro 6 0
mode: family=3DPF_INET6 v6only=3D0
socket() ok -> fd=3D3
setsockopt(SO_REUSEADDR) ok
setsockopt(SO_REUSEPORT) ok
setsockopt(SO_BROADCAST) ok
setsockopt(IPV6_V6ONLY=3D0) ok
bind(AF_INET6 :::6790) ok
attempting IP_ADD_MEMBERSHIP for 228.5.6.7
IP_ADD_MEMBERSHIP failed: Invalid argument (errno=3D22)
$ ./mcast_repro 6 1
mode: family=3DPF_INET6 v6only=3D1
socket() ok -> fd=3D3
setsockopt(SO_REUSEADDR) ok
setsockopt(SO_REUSEPORT) ok
setsockopt(SO_BROADCAST) ok
setsockopt(IPV6_V6ONLY=3D1) ok
bind(AF_INET6 :::6790) ok
attempting IP_ADD_MEMBERSHIP for 228.5.6.7
IP_ADD_MEMBERSHIP failed: Invalid argument (errno=3D22)
$ ./mcast_repro 6 0
mode: family=3DPF_INET6 v6only=3D0
socket() ok -> fd=3D3
setsockopt(SO_REUSEADDR) ok
setsockopt(SO_REUSEPORT) ok
setsockopt(SO_BROADCAST) ok
setsockopt(IPV6_V6ONLY=3D0) ok
bind(AF_INET6 :::6790) ok
attempting IP_ADD_MEMBERSHIP for 228.5.6.7
IP_ADD_MEMBERSHIP failed: Invalid argument (errno=3D22)
Same program on HP-UX 11.31:
osipovmi@deblndw028v:~
$ ./mcast_repro 4
mode: family=3DPF_INET
socket() ok -> fd=3D3
setsockopt(SO_REUSEADDR) ok
setsockopt(SO_REUSEPORT) ok
setsockopt(SO_BROADCAST) ok
bind(AF_INET 0.0.0.0:6790) ok
attempting IP_ADD_MEMBERSHIP for 228.5.6.7
IP_ADD_MEMBERSHIP ok -> joined IPv4 multicast successfully on PF_INET
osipovmi@deblndw028v:~
$ ./mcast_repro 6
mode: family=3DPF_INET6 v6only=3D1
socket() ok -> fd=3D3
setsockopt(SO_REUSEADDR) ok
setsockopt(SO_REUSEPORT) ok
setsockopt(SO_BROADCAST) ok
setsockopt(IPV6_V6ONLY=3D1) ok
bind(AF_INET6 :::6790) ok
attempting IP_ADD_MEMBERSHIP for 228.5.6.7
IP_ADD_MEMBERSHIP failed: Operation not supported (errno=3D223)
osipovmi@deblndw028v:~
$ ./mcast_repro 6 0
mode: family=3DPF_INET6 v6only=3D0
socket() ok -> fd=3D3
setsockopt(SO_REUSEADDR) ok
setsockopt(SO_REUSEPORT) ok
setsockopt(SO_BROADCAST) ok
setsockopt(IPV6_V6ONLY=3D0) ok
bind(AF_INET6 :::6790) ok
attempting IP_ADD_MEMBERSHIP for 228.5.6.7
IP_ADD_MEMBERSHIP failed: Operation not supported (errno=3D223)
osipovmi@deblndw028v:~
$ ./mcast_repro 6 1
mode: family=3DPF_INET6 v6only=3D1
socket() ok -> fd=3D3
setsockopt(SO_REUSEADDR) ok
setsockopt(SO_REUSEPORT) ok
setsockopt(SO_BROADCAST) ok
setsockopt(IPV6_V6ONLY=3D1) ok
bind(AF_INET6 :::6790) ok
attempting IP_ADD_MEMBERSHIP for 228.5.6.7
IP_ADD_MEMBERSHIP failed: Operation not supported (errno=3D223)
and RHEL 8.x:
osipovmi@deblndw012x:~
$ ./mcast_repro 4
mode: family=3DPF_INET
socket() ok -> fd=3D3
setsockopt(SO_REUSEADDR) ok
setsockopt(SO_REUSEPORT) ok
setsockopt(SO_BROADCAST) ok
bind(AF_INET 0.0.0.0:6790) ok
attempting IP_ADD_MEMBERSHIP for 228.5.6.7
IP_ADD_MEMBERSHIP ok -> joined IPv4 multicast successfully on PF_INET
osipovmi@deblndw012x:~
$ ./mcast_repro 6
mode: family=3DPF_INET6 v6only=3D1
socket() ok -> fd=3D3
setsockopt(SO_REUSEADDR) ok
setsockopt(SO_REUSEPORT) ok
setsockopt(SO_BROADCAST) ok
setsockopt(IPV6_V6ONLY=3D1) ok
bind(AF_INET6 :::6790) ok
attempting IP_ADD_MEMBERSHIP for 228.5.6.7
IP_ADD_MEMBERSHIP ok -> joined IPv4 multicast successfully on PF_INET6
osipovmi@deblndw012x:~
$ ./mcast_repro 6 0
mode: family=3DPF_INET6 v6only=3D0
socket() ok -> fd=3D3
setsockopt(SO_REUSEADDR) ok
setsockopt(SO_REUSEPORT) ok
setsockopt(SO_BROADCAST) ok
setsockopt(IPV6_V6ONLY=3D0) ok
bind(AF_INET6 :::6790) ok
attempting IP_ADD_MEMBERSHIP for 228.5.6.7
IP_ADD_MEMBERSHIP ok -> joined IPv4 multicast successfully on PF_INET6
I am not an expert, let me know whether my approach is wrong and where to go
from here.
--=20
You are receiving this mail because:
You are on the CC list for the bug.=