This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 10.1.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit 13025120a214193d6352fc6a5d67b1432316c3be
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Thu Jan 12 14:57:39 2023 +0000

    Fix calls to deprecated (Java 14+) code
---
 .../catalina/ha/backend/MultiCastSender.java       |  2 +-
 .../tribes/membership/McastServiceImpl.java        | 24 ++++++++++++++++------
 2 files changed, 19 insertions(+), 7 deletions(-)

diff --git a/java/org/apache/catalina/ha/backend/MultiCastSender.java 
b/java/org/apache/catalina/ha/backend/MultiCastSender.java
index 1e00ee8dc3..2568a0e75b 100644
--- a/java/org/apache/catalina/ha/backend/MultiCastSender.java
+++ b/java/org/apache/catalina/ha/backend/MultiCastSender.java
@@ -60,7 +60,7 @@ public class MultiCastSender
                 }
 
                 s.setTimeToLive(config.getTtl());
-                s.joinGroup(group);
+                s.joinGroup(new InetSocketAddress(group, 0), null);
             } catch (Exception ex) {
                 log.error(sm.getString("multiCastSender.multiCastFailed"), ex);
                 s = null;
diff --git a/java/org/apache/catalina/tribes/membership/McastServiceImpl.java 
b/java/org/apache/catalina/tribes/membership/McastServiceImpl.java
index 068a383440..1fac0a4207 100644
--- a/java/org/apache/catalina/tribes/membership/McastServiceImpl.java
+++ b/java/org/apache/catalina/tribes/membership/McastServiceImpl.java
@@ -23,7 +23,9 @@ import java.net.DatagramPacket;
 import java.net.InetAddress;
 import java.net.InetSocketAddress;
 import java.net.MulticastSocket;
+import java.net.NetworkInterface;
 import java.net.SocketTimeoutException;
+import java.net.StandardSocketOptions;
 import java.util.Arrays;
 import java.util.concurrent.atomic.AtomicBoolean;
 
@@ -217,12 +219,14 @@ public class McastServiceImpl extends 
MembershipProviderBase {
         } else {
             socket = new MulticastSocket(port);
         }
-        socket.setLoopbackMode(localLoopbackDisabled); //hint if we want 
disable loop back(local machine) messages
+        // Hint if we want disable loop back(local machine) messages
+        socket.setOption(StandardSocketOptions.IP_MULTICAST_LOOP, 
Boolean.valueOf(!localLoopbackDisabled));
         if (mcastBindAddress != null) {
             if(log.isInfoEnabled()) {
                 log.info(sm.getString("mcastServiceImpl.setInterface", 
mcastBindAddress));
             }
-            socket.setInterface(mcastBindAddress);
+            NetworkInterface networkInterface = 
NetworkInterface.getByInetAddress(mcastBindAddress);
+            socket.setNetworkInterface(networkInterface);
         } //end if
         //force a so timeout so that we don't block forever
         if (mcastSoTimeout <= 0) {
@@ -258,7 +262,7 @@ public class McastServiceImpl extends 
MembershipProviderBase {
             }
             try {
                 if ( sender == null ) {
-                    socket.joinGroup(address);
+                    socket.joinGroup(new InetSocketAddress(address, 0), null);
                 }
             }catch (IOException iox) {
                 log.error(sm.getString("mcastServiceImpl.unable.join"));
@@ -275,7 +279,7 @@ public class McastServiceImpl extends 
MembershipProviderBase {
                 throw new 
IllegalStateException(sm.getString("mcastServiceImpl.send.running"));
             }
             if ( receiver == null ) {
-                socket.joinGroup(address);
+                socket.joinGroup(new InetSocketAddress(address, 0), null);
             }
             //make sure at least one packet gets out there
             send(false);
@@ -343,8 +347,16 @@ public class McastServiceImpl extends 
MembershipProviderBase {
             member.setCommand(Member.SHUTDOWN_PAYLOAD);
             send(false);
             //leave mcast group
-            try {socket.leaveGroup(address);}catch ( Exception ignore){}
-            try {socket.close();}catch ( Exception ignore){}
+            try {
+                socket.leaveGroup(new InetSocketAddress(address, 0), null);
+                } catch ( Exception ignore) {
+                    // NO-OP
+                }
+            try {
+                socket.close();
+            } catch (Exception ignore) {
+                // NO-OP
+            }
             member.setServiceStartTime(-1);
         }
         return (startLevel == 0);


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to