[jboss-jira] [JBoss JIRA] (JGRP-1880) UDP.ip_ttl is ignored and is always 1
Bela Ban (JIRA)
issues at jboss.org
Tue Sep 23 06:39:02 EDT 2014
[ https://issues.jboss.org/browse/JGRP-1880?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12998698#comment-12998698 ]
Bela Ban edited comment on JGRP-1880 at 9/23/14 6:38 AM:
---------------------------------------------------------
Class {{DatagramChannel}} has the ability to set {{IP_MULTICAST_TTL}} as an option. Investigate whether we can use a {{DatagramChannel}} instead of a {{DatagramSocket}}. Perhaps we can create a {{DatagramChannel}}, but then call {{DatagramChannel.socket()}} to simply use the underlying {{DatagramSocket}} instead.
Example:
{code}
DatagramChannel ch=DatagramChannel.open();
ch.setOption(StandardSocketOptions.IP_MULICAST_TTL, 8); // sets TTL to 8
DatagramSocket sock=ch.socket()
// use sock
{code}
was (Author: belaban):
Class {{DatagramChannel}} has the ability to set {{IP_MULICAST_TTL}} as an option. Investigate whether we can use a {{DatagramChannel}} instead of a {{DatagramSocket}}. Perhaps we can create a {{DatagramChannel}}, but then call {{DatagramChannel.socket()}} to simply use the underlying {{DatagramSocket}} instead.
Example:
{code}
DatagramChannel ch=DatagramChannel.open();
ch.setOption(StandardSocketOptions.IP_MULICAST_TTL, 8); // sets TTL to 8
DatagramSocket sock=ch.socket()
// use sock
{code}
> UDP.ip_ttl is ignored and is always 1
> -------------------------------------
>
> Key: JGRP-1880
> URL: https://issues.jboss.org/browse/JGRP-1880
> Project: JGroups
> Issue Type: Bug
> Reporter: Bela Ban
> Assignee: Bela Ban
> Fix For: 3.6
>
>
> Since we switched from using a {{MulticastSocket}} for sending of multicast packets to a {{DatagramSocket}}, the time-to-live (TTL) of a packet is always {{1}}. The reason is that method {{setTimeToLive()}} only exists in {{MulticastSocket}}, but not in {{DatagramSocket}}.
> We cannot revert the code and use a {{MulticastSocket}} to send multicasts, as this won't reveal the real IP address of the sender, but only the multicast address, and the real address is needed to drop packets at the _transport level_.
> Investigate whether we could use reflection to get the {{DatagramSocketImpl}} and call {{setTimeToLive()}}.
--
This message was sent by Atlassian JIRA
(v6.3.1#6329)
More information about the jboss-jira
mailing list