diff --git a/transport/src/main/java/io/netty/channel/socket/nio/NioDatagramChannel.java b/transport/src/main/java/io/netty/channel/socket/nio/NioDatagramChannel.java index ac82ecbee6..1f901debe4 100644 --- a/transport/src/main/java/io/netty/channel/socket/nio/NioDatagramChannel.java +++ b/transport/src/main/java/io/netty/channel/socket/nio/NioDatagramChannel.java @@ -136,7 +136,13 @@ public final class NioDatagramChannel extends AbstractNioChannel implements io.n } try { - MembershipKey key = getJdkChannel().getChannel().join(multicastAddress, networkInterface); + MembershipKey key; + if (source == null) { + key = getJdkChannel().getChannel().join(multicastAddress, networkInterface); + } else { + key = getJdkChannel().getChannel().join(multicastAddress, networkInterface, source); + } + synchronized (this) { if (memberships == null) { memberships = new HashMap>(); @@ -147,7 +153,7 @@ public final class NioDatagramChannel extends AbstractNioChannel implements io.n keys = new ArrayList(); memberships.put(multicastAddress, keys); } - + System.out.println(key); keys.add(key); } } catch (Throwable e) {