You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by tr...@apache.org on 2005/03/02 15:23:44 UTC
svn commit: r155923 - in incubator/directory/network/mina/trunk/src:
java/org/apache/mina/io/datagram/DatagramAcceptor.java
java/org/apache/mina/io/socket/SocketAcceptor.java
java/org/apache/mina/util/AvailablePortFinder.java
test/org/apache/mina/examples/echoserver/Test.java
Author: trustin
Date: Wed Mar 2 06:23:42 2005
New Revision: 155923
URL: http://svn.apache.org/viewcvs?view=rev&rev=155923
Log:
Fixed DIRMINA-9: Add AvaliablePortFinder from apseda to scan for ports.
Fixed: SocketAcceptor and DatagramAcceptor cannot bind to port 0. It seems that open server socket channel is closed just before it is registered to the selector. So I made acceptors to throw IllegalArgumentException if the port number is 0.
Modified:
incubator/directory/network/mina/trunk/src/java/org/apache/mina/io/datagram/DatagramAcceptor.java
incubator/directory/network/mina/trunk/src/java/org/apache/mina/io/socket/SocketAcceptor.java
incubator/directory/network/mina/trunk/src/java/org/apache/mina/util/AvailablePortFinder.java
incubator/directory/network/mina/trunk/src/test/org/apache/mina/examples/echoserver/Test.java
Modified: incubator/directory/network/mina/trunk/src/java/org/apache/mina/io/datagram/DatagramAcceptor.java
URL: http://svn.apache.org/viewcvs/incubator/directory/network/mina/trunk/src/java/org/apache/mina/io/datagram/DatagramAcceptor.java?view=diff&r1=155922&r2=155923
==============================================================================
--- incubator/directory/network/mina/trunk/src/java/org/apache/mina/io/datagram/DatagramAcceptor.java (original)
+++ incubator/directory/network/mina/trunk/src/java/org/apache/mina/io/datagram/DatagramAcceptor.java Wed Mar 2 06:23:42 2005
@@ -89,6 +89,8 @@
if( !( address instanceof InetSocketAddress ) )
throw new IllegalArgumentException( "Unexpected address type: "
+ address.getClass() );
+ if( ( ( InetSocketAddress ) address ).getPort() == 0 )
+ throw new IllegalArgumentException( "Unsupported port number: 0" );
DatagramChannel ch = DatagramChannel.open();
boolean bound = false;
Modified: incubator/directory/network/mina/trunk/src/java/org/apache/mina/io/socket/SocketAcceptor.java
URL: http://svn.apache.org/viewcvs/incubator/directory/network/mina/trunk/src/java/org/apache/mina/io/socket/SocketAcceptor.java?view=diff&r1=155922&r2=155923
==============================================================================
--- incubator/directory/network/mina/trunk/src/java/org/apache/mina/io/socket/SocketAcceptor.java (original)
+++ incubator/directory/network/mina/trunk/src/java/org/apache/mina/io/socket/SocketAcceptor.java Wed Mar 2 06:23:42 2005
@@ -99,6 +99,8 @@
if( !( address instanceof InetSocketAddress ) )
throw new IllegalArgumentException( "Unexpected address type: "
+ address.getClass() );
+ if( ( ( InetSocketAddress ) address ).getPort() == 0 )
+ throw new IllegalArgumentException( "Unsupported port number: 0" );
ServerSocketChannel ssc = ServerSocketChannel.open();
boolean bound = false;
Modified: incubator/directory/network/mina/trunk/src/java/org/apache/mina/util/AvailablePortFinder.java
URL: http://svn.apache.org/viewcvs/incubator/directory/network/mina/trunk/src/java/org/apache/mina/util/AvailablePortFinder.java?view=diff&r1=155922&r2=155923
==============================================================================
--- incubator/directory/network/mina/trunk/src/java/org/apache/mina/util/AvailablePortFinder.java (original)
+++ incubator/directory/network/mina/trunk/src/java/org/apache/mina/util/AvailablePortFinder.java Wed Mar 2 06:23:42 2005
@@ -39,7 +39,7 @@
/**
* The minimum number of server port number.
*/
- public static final int MIN_PORT_NUMBER = 0;
+ public static final int MIN_PORT_NUMBER = 1;
/**
* The maximum number of server port number.
Modified: incubator/directory/network/mina/trunk/src/test/org/apache/mina/examples/echoserver/Test.java
URL: http://svn.apache.org/viewcvs/incubator/directory/network/mina/trunk/src/test/org/apache/mina/examples/echoserver/Test.java?view=diff&r1=155922&r2=155923
==============================================================================
--- incubator/directory/network/mina/trunk/src/test/org/apache/mina/examples/echoserver/Test.java (original)
+++ incubator/directory/network/mina/trunk/src/test/org/apache/mina/examples/echoserver/Test.java Wed Mar 2 06:23:42 2005
@@ -57,7 +57,11 @@
// Find an availble test port and bind to it.
boolean socketBound = false;
boolean datagramBound = false;
- for( port = 1024; port <= 65535; port ++ )
+
+ // Let's start from port #1 to detect possible resource leak
+ // because test will fail in port 1-1023 if user run this test
+ // as a normal user.
+ for( port = 1; port <= 65535; port ++ )
{
socketBound = false;
datagramBound = false;