mturk 2005/07/16 05:11:11 Modified: util/java/org/apache/tomcat/util/net AprEndpoint.java Log: Add APR_SO_REUSEADDR and APR_SO_KEEPALIVE to the listening socket. This resolves 'address in use exception', and is the way how the Apache HTTPD is using the APR. See the: server/listen.c Revision Changes Path 1.66 +8 -0 jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/net/AprEndpoint.java Index: AprEndpoint.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/net/AprEndpoint.java,v retrieving revision 1.65 retrieving revision 1.66 diff -u -r1.65 -r1.66 --- AprEndpoint.java 15 Jul 2005 15:40:00 -0000 1.65 +++ AprEndpoint.java 16 Jul 2005 12:11:11 -0000 1.66 @@ -24,6 +24,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.tomcat.jni.OS; import org.apache.tomcat.jni.Address; import org.apache.tomcat.jni.Error; import org.apache.tomcat.jni.File; @@ -511,6 +512,9 @@ // Create the APR server socket serverSock = Socket.create(Socket.APR_INET, Socket.SOCK_STREAM, Socket.APR_PROTO_TCP, rootPool); + if (OS.IS_UNIX) { + Socket.optSet(serverSock, Socket.APR_SO_REUSEADDR, 1); + } // Bind the server socket int ret = Socket.bind(serverSock, inetAddress); if (ret != 0) { @@ -521,6 +525,10 @@ if (ret != 0) { throw new Exception(sm.getString("endpoint.init.listen", "" + ret)); } + if (OS.IS_WIN32 || OS.IS_WIN64) { + // On Windows set the reuseaddr flag after the bind/listen + Socket.optSet(serverSock, Socket.APR_SO_REUSEADDR, 1); + } // Sendfile usage on systems which don't support it cause major problems if (useSendfile && !Library.APR_HAS_SENDFILE) {
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]