Author: rjung
Date: Tue Mar 17 18:56:56 2009
New Revision: 755351

URL: http://svn.apache.org/viewvc?rev=755351&view=rev
Log:
Two backports from trunk:
- Fix not wanting to receive node local heartbeat
  on multicast socket.
- BZ 43641: Fix setting multicast bind address
  on multihomed computers.

Modified:
    tomcat/sandbox/tomcat-oacc/trunk/docs/changelog.xml
    
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/mcast/McastServiceImpl.java
    
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/membership/McastServiceImpl.java

Modified: tomcat/sandbox/tomcat-oacc/trunk/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-oacc/trunk/docs/changelog.xml?rev=755351&r1=755350&r2=755351&view=diff
==============================================================================
--- tomcat/sandbox/tomcat-oacc/trunk/docs/changelog.xml (original)
+++ tomcat/sandbox/tomcat-oacc/trunk/docs/changelog.xml Tue Mar 17 18:56:56 2009
@@ -33,6 +33,12 @@
   <subsection name="Cluster">
       <changelog>
       <fix>
+        Fix not wanting to receive node local heartbeat on multicast socket. 
(rjung)
+      </fix>
+      <fix>
+        <bug>43641</bug>: Fix setting multicast bind address on multihomed 
computers. (rjung)
+      </fix>
+      <fix>
         Fix small memory leak in FarmWarDeployer. Backport from Tomcat 6.0. 
(rjung)
       </fix>
       <fix>

Modified: 
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/mcast/McastServiceImpl.java
URL: 
http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/mcast/McastServiceImpl.java?rev=755351&r1=755350&r2=755351&view=diff
==============================================================================
--- 
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/mcast/McastServiceImpl.java
 (original)
+++ 
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/mcast/McastServiceImpl.java
 Tue Mar 17 18:56:56 2009
@@ -166,10 +166,23 @@
     }
     
     protected void setupSocket() throws IOException {
-        if (mcastBindAddress != null) socket = new MulticastSocket(new 
java.net.
-            InetSocketAddress(mcastBindAddress, port));
-        else socket = new MulticastSocket(port);
-           socket.setLoopbackMode(false); //hint that we don't need loop back 
messages
+        if (mcastBindAddress != null) {
+            try {
+                log.info("Attempting to bind the multicast socket to 
"+address+":"+port);
+                socket = new MulticastSocket(new 
InetSocketAddress(address,port));
+            } catch (BindException e) {
+                /*
+                 * On some plattforms (e.g. Linux) it is not possible to bind
+                 * to the multicast address. In this case only bind to the
+                 * port.
+                 */
+                log.info("Binding to multicast address, failed. Binding to 
port only.");
+                socket = new MulticastSocket(port);
+            }
+        } else {
+            socket = new MulticastSocket(port);
+        }
+        socket.setLoopbackMode(true); //hint that we don't need loop back 
messages
         if (mcastBindAddress != null) {
                        if(log.isInfoEnabled())
                 log.info("Setting multihome multicast interface to:" +

Modified: 
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/membership/McastServiceImpl.java
URL: 
http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/membership/McastServiceImpl.java?rev=755351&r1=755350&r2=755351&view=diff
==============================================================================
--- 
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/membership/McastServiceImpl.java
 (original)
+++ 
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/membership/McastServiceImpl.java
 Tue Mar 17 18:56:56 2009
@@ -178,10 +178,23 @@
     }
     
     protected void setupSocket() throws IOException {
-        if (mcastBindAddress != null) socket = new MulticastSocket(new 
java.net.
-            InetSocketAddress(mcastBindAddress, port));
-        else socket = new MulticastSocket(port);
-           socket.setLoopbackMode(false); //hint that we don't need loop back 
messages
+        if (mcastBindAddress != null) {
+            try {
+                log.info("Attempting to bind the multicast socket to 
"+address+":"+port);
+                socket = new MulticastSocket(new 
InetSocketAddress(address,port));
+            } catch (BindException e) {
+                /*
+                 * On some plattforms (e.g. Linux) it is not possible to bind
+                 * to the multicast address. In this case only bind to the
+                 * port.
+                 */
+                log.info("Binding to multicast address, failed. Binding to 
port only.");
+                socket = new MulticastSocket(port);
+            }
+        } else {
+            socket = new MulticastSocket(port);
+        }
+        socket.setLoopbackMode(true); //hint that we don't need loop back 
messages
         if (mcastBindAddress != null) {
                        if(log.isInfoEnabled())
                 log.info("Setting multihome multicast interface to:" +



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

Reply via email to