You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by jv...@apache.org on 2011/10/21 21:00:10 UTC

svn commit: r1187502 - in /mina/trunk/core/src/main/java/org/apache/mina/transport/tcp: AbstractTcpServer.java NioSelectorProcessor.java bio/BioTcpServer.java nio/NioTcpServer.java

Author: jvermillard
Date: Fri Oct 21 19:00:10 2011
New Revision: 1187502

URL: http://svn.apache.org/viewvc?rev=1187502&view=rev
Log:
DIRMINA-863 server socket config

Modified:
    mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/AbstractTcpServer.java
    mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java
    mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/bio/BioTcpServer.java
    mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/nio/NioTcpServer.java

Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/AbstractTcpServer.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/AbstractTcpServer.java?rev=1187502&r1=1187501&r2=1187502&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/AbstractTcpServer.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/AbstractTcpServer.java Fri Oct 21 19:00:10 2011
@@ -1,5 +1,5 @@
 /*
- *  Licensed to the Apache Software Foundation (ASF) under one
+ *  Licensed to the Apache Software Foundation () under one
  *  or more contributor license agreements.  See the NOTICE file
  *  distributed with this work for additional information
  *  regarding copyright ownership.  The ASF licenses this file
@@ -19,10 +19,6 @@
  */
 package org.apache.mina.transport.tcp;
 
-import java.io.IOException;
-import java.net.SocketAddress;
-import java.util.Set;
-
 import org.apache.mina.service.server.AbstractIoServer;
 
 /**
@@ -38,21 +34,15 @@ public abstract class AbstractTcpServer 
         super();
     }
 
-    @Override
-    public Set<SocketAddress> getLocalAddresses() {
-        return null;
-    }
-
-    @Override
-    public void bind(SocketAddress... localAddress) throws IOException {
-    }
-
-    @Override
-    public void unbindAll() throws IOException {
-    }
-
-    @Override
-    public void unbind(SocketAddress... localAddresses) throws IOException {
-    }
+    /**
+     * Set the reuse address flag on the server socket
+     * @param reuseAddress <code>true</code> to enable
+     */
+    public abstract void setReuseAddress(boolean reuseAddress);
 
-}
+    /**
+     * Is the reuse address enabled for this server.
+     * @return
+     */
+    public abstract boolean isReuseAddress();
+}
\ No newline at end of file

Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java?rev=1187502&r1=1187501&r2=1187502&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/NioSelectorProcessor.java Fri Oct 21 19:00:10 2011
@@ -132,7 +132,9 @@ public class NioSelectorProcessor implem
     @Override
     public void bindAndAcceptAddress(IoServer server, SocketAddress address) throws IOException {
         ServerSocketChannel serverSocketChannel = ServerSocketChannel.open();
-
+        if (server instanceof AbstractTcpServer) {
+            serverSocketChannel.socket().setReuseAddress(((AbstractTcpServer) server).isReuseAddress());
+        }
         serverSocketChannel.socket().bind(address);
         serverSocketChannel.configureBlocking(false);
         serverSocketChannels.put(address, serverSocketChannel);

Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/bio/BioTcpServer.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/bio/BioTcpServer.java?rev=1187502&r1=1187501&r2=1187502&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/bio/BioTcpServer.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/bio/BioTcpServer.java Fri Oct 21 19:00:10 2011
@@ -62,4 +62,16 @@ public class BioTcpServer extends Abstra
         return null;
     }
 
+    @Override
+    public void setReuseAddress(boolean reuseAddress) {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public boolean isReuseAddress() {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
 }

Modified: mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/nio/NioTcpServer.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/nio/NioTcpServer.java?rev=1187502&r1=1187501&r2=1187502&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/nio/NioTcpServer.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/transport/tcp/nio/NioTcpServer.java Fri Oct 21 19:00:10 2011
@@ -49,6 +49,8 @@ public class NioTcpServer extends Abstra
 
     private SocketSessionConfig config;
 
+    private boolean reuseAddress = false;
+
     public NioTcpServer(SelectorStrategy strategy) {
         super();
         this.strategy = strategy;
@@ -65,6 +67,16 @@ public class NioTcpServer extends Abstra
     }
 
     @Override
+    public void setReuseAddress(boolean reuseAddress) {
+        this.reuseAddress = reuseAddress;
+    }
+
+    @Override
+    public boolean isReuseAddress() {
+        return reuseAddress;
+    }
+
+    @Override
     public void bind(SocketAddress... localAddress) throws IOException {
         if (localAddress == null) {
             // We should at least have one address to bind on