Author: gtully
Date: Mon Jul 26 15:24:11 2010
New Revision: 979324

URL: http://svn.apache.org/viewvc?rev=979324&view=rev
Log:
resolve: https://issues.apache.org/activemq/browse/AMQ-2842 - patch applied 
with thanks

Modified:
    
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/discovery/multicast/MulticastDiscoveryAgent.java

Modified: 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/discovery/multicast/MulticastDiscoveryAgent.java
URL: 
http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/discovery/multicast/MulticastDiscoveryAgent.java?rev=979324&r1=979323&r2=979324&view=diff
==============================================================================
--- 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/discovery/multicast/MulticastDiscoveryAgent.java
 (original)
+++ 
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/discovery/multicast/MulticastDiscoveryAgent.java
 Mon Jul 26 15:24:11 2010
@@ -14,6 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 package org.apache.activemq.transport.discovery.multicast;
 
 import java.io.IOException;
@@ -83,6 +84,7 @@ public class MulticastDiscoveryAgent imp
     private long keepAliveInterval = DEFAULT_IDLE_TIME;
     private String mcInterface;
     private String mcNetworkInterface;
+    private String mcJoinNetworkInterface;
     private long lastAdvertizeTime;
     private AtomicBoolean started = new AtomicBoolean(false);
     private boolean reportAdvertizeFailed = true;
@@ -259,6 +261,10 @@ public class MulticastDiscoveryAgent imp
         this.mcNetworkInterface = mcNetworkInterface;    
     }
     
+    public void setJoinNetworkInterface(String mcJoinNetwrokInterface) {
+       this.mcJoinNetworkInterface = mcJoinNetwrokInterface;
+    }
+    
     /**
      * start the discovery agent
      * 
@@ -299,6 +305,7 @@ public class MulticastDiscoveryAgent imp
                        LOG.trace("start - group  = " + group );                
                
                        LOG.trace("start - interface  = " + mcInterface );
                        LOG.trace("start - network interface  = " + 
mcNetworkInterface );
+                       LOG.trace("start - join network interface  = " + 
mcJoinNetworkInterface );
                  }     
                  
             this.inetAddress = InetAddress.getByName(myHost);
@@ -306,7 +313,12 @@ public class MulticastDiscoveryAgent imp
             mcast = new MulticastSocket(myPort);
             mcast.setLoopbackMode(loopBackMode);
             mcast.setTimeToLive(getTimeToLive());
-            mcast.joinGroup(inetAddress);
+            if (mcJoinNetworkInterface != null) {
+                mcast.joinGroup(sockAddress, 
NetworkInterface.getByName(mcJoinNetworkInterface));
+            }
+            else {
+               mcast.joinGroup(inetAddress);
+            }
             mcast.setSoTimeout((int)keepAliveInterval);
             if (mcInterface != null) {
                 mcast.setInterface(InetAddress.getByName(mcInterface));


Reply via email to