From 773c4b8a696dd49b3f0452783e1634350a82226a Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Sun, 1 Dec 2024 13:08:59 -0500 Subject: pass network interface name to sequencer explicitely --- .../java/derms/net/tomulticast/TotalOrderMulticast.java | 8 ++++++++ .../derms/net/tomulticast/TotalOrderMulticastSender.java | 13 +++++++++++++ 2 files changed, 21 insertions(+) (limited to 'src/main/java/derms/net/tomulticast') diff --git a/src/main/java/derms/net/tomulticast/TotalOrderMulticast.java b/src/main/java/derms/net/tomulticast/TotalOrderMulticast.java index 0d8b690..1fb4348 100644 --- a/src/main/java/derms/net/tomulticast/TotalOrderMulticast.java +++ b/src/main/java/derms/net/tomulticast/TotalOrderMulticast.java @@ -6,6 +6,7 @@ import derms.net.rmulticast.ReliableMulticast; import java.io.IOException; import java.net.InetAddress; import java.net.InetSocketAddress; +import java.net.NetworkInterface; import java.util.logging.Logger; /** @@ -29,6 +30,13 @@ public abstract class TotalOrderMulticast { protected Long seq; // Sequence number. protected final Logger log; + protected TotalOrderMulticast(InetSocketAddress group, InetAddress laddr, NetworkInterface ifs) throws IOException { + this.sock = new ReliableMulticast>(group, laddr, ifs); + this.group = group; + this.seq = (long) 0; + this.log = Logger.getLogger(this.getClass().getName()); + } + protected TotalOrderMulticast(InetSocketAddress group, InetAddress laddr) throws IOException { this.sock = new ReliableMulticast>(group, laddr); this.group = group; diff --git a/src/main/java/derms/net/tomulticast/TotalOrderMulticastSender.java b/src/main/java/derms/net/tomulticast/TotalOrderMulticastSender.java index 0de0ad0..b9ca99a 100644 --- a/src/main/java/derms/net/tomulticast/TotalOrderMulticastSender.java +++ b/src/main/java/derms/net/tomulticast/TotalOrderMulticastSender.java @@ -5,6 +5,7 @@ import derms.net.MessagePayload; import java.io.IOException; import java.net.InetAddress; import java.net.InetSocketAddress; +import java.net.NetworkInterface; /** * The single sending process in a {@link TotalOrderMulticast} group. Only one sender is @@ -16,6 +17,18 @@ public class TotalOrderMulticastSender extends TotalOr * * @param group The IP address and port of the multicast group to join. * @param laddr The IP address of the local process. + * @param ifs The network interface to use. + */ + public TotalOrderMulticastSender(InetSocketAddress group, InetAddress laddr, NetworkInterface ifs) throws IOException { + super(group, laddr, ifs); + } + + /** + * Join the specified totally-ordered multicast group as its lone sender using the + * default network interface of the machine. + * + * @param group The IP address and port of the multicast group to join. + * @param laddr The IP address of the local process. */ public TotalOrderMulticastSender(InetSocketAddress group, InetAddress laddr) throws IOException { super(group, laddr); -- cgit v1.2.3