Repository: mina-sshd
Updated Branches:
  refs/heads/master de0c923a4 -> bfe6cb753


[SSHD-333] Ephemeral port handling is faulty

Project: http://git-wip-us.apache.org/repos/asf/mina-sshd/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina-sshd/commit/fa597596
Tree: http://git-wip-us.apache.org/repos/asf/mina-sshd/tree/fa597596
Diff: http://git-wip-us.apache.org/repos/asf/mina-sshd/diff/fa597596

Branch: refs/heads/master
Commit: fa597596e51bd31b7aaa51e303c9f764f89ff2ed
Parents: de0c923
Author: Guillaume Nodet <[email protected]>
Authored: Wed Jul 9 07:53:43 2014 +0200
Committer: Guillaume Nodet <[email protected]>
Committed: Wed Jul 9 07:53:43 2014 +0200

----------------------------------------------------------------------
 .../src/main/java/org/apache/sshd/SshServer.java    | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina-sshd/blob/fa597596/sshd-core/src/main/java/org/apache/sshd/SshServer.java
----------------------------------------------------------------------
diff --git a/sshd-core/src/main/java/org/apache/sshd/SshServer.java 
b/sshd-core/src/main/java/org/apache/sshd/SshServer.java
index 7074edc..5aa8736 100644
--- a/sshd-core/src/main/java/org/apache/sshd/SshServer.java
+++ b/sshd-core/src/main/java/org/apache/sshd/SshServer.java
@@ -335,22 +335,22 @@ public class SshServer extends AbstractFactoryManager 
implements ServerFactoryMa
         timeoutListenerFuture = getScheduledExecutorService()
                 .scheduleAtFixedRate(sessionTimeoutListener, 1, 1, 
TimeUnit.SECONDS);
 
-        if (port == 0) {
-            port = IoUtils.getFreePort();
-        }
         if (host != null) {
             String[] hosts = host.split(",");
-            LinkedList<InetSocketAddress> addresses = new 
LinkedList<InetSocketAddress>();
             for (String host : hosts) {
                 InetAddress[] inetAddresses = InetAddress.getAllByName(host);
                 for (InetAddress inetAddress : inetAddresses) {
-                    InetSocketAddress inetSocketAddress = new 
InetSocketAddress(inetAddress, port);
-                    addresses.add(inetSocketAddress);
+                    acceptor.bind(new InetSocketAddress(inetAddress, port));
+                    if (port == 0) {
+                        port = ((InetSocketAddress) 
acceptor.getBoundAddresses().iterator().next()).getPort();
+                    }
                 }
             }
-            acceptor.bind(addresses);
         } else {
-            acceptor.bind(Collections.singleton(new InetSocketAddress(port)));
+            acceptor.bind(new InetSocketAddress(port));
+            if (port == 0) {
+                port = ((InetSocketAddress) 
acceptor.getBoundAddresses().iterator().next()).getPort();
+            }
         }
     }
 

Reply via email to