Author: kkolinko
Date: Sun Nov 7 04:22:07 2010
New Revision: 1032209
URL: http://svn.apache.org/viewvc?rev=1032209&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=49521
- Disable scanning for a free port in Jk AJP/1.3 connector by default.
- Do not change maxPort field value of ChannelSocket in its #setPort() and
#init() methods.
- Add support for "maxPort" attribute on a <Connector> element as a synonym for
channelSocket.maxPort
Modified:
tomcat/tc5.5.x/trunk/STATUS.txt
tomcat/tc5.5.x/trunk/connectors/jk/java/org/apache/jk/common/ChannelNioSocket.java
tomcat/tc5.5.x/trunk/connectors/jk/java/org/apache/jk/common/ChannelSocket.java
tomcat/tc5.5.x/trunk/connectors/jk/java/org/apache/jk/server/JkMain.java
tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml
Modified: tomcat/tc5.5.x/trunk/STATUS.txt
URL:
http://svn.apache.org/viewvc/tomcat/tc5.5.x/trunk/STATUS.txt?rev=1032209&r1=1032208&r2=1032209&view=diff
==============================================================================
--- tomcat/tc5.5.x/trunk/STATUS.txt (original)
+++ tomcat/tc5.5.x/trunk/STATUS.txt Sun Nov 7 04:22:07 2010
@@ -48,24 +48,3 @@ PATCHES PROPOSED TO BACKPORT:
-0: markt - Consensus was for disabled in 5.5.x
http://svn.apache.org/viewvc?view=revision&revision=749019
-1:
-
-* Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=49521
- http://people.apache.org/~kkolinko/patches/2010-07-17_tc55_bug49521.patch
- - Disable scanning for a free port in Jk AJP/1.3 connector by default.
- - Do not change maxPort field value of ChannelSocket in its #setPort()
- and #init() methods.
- - Add support for "maxPort" attribute on a <Connector> element as a synonym
- for channelSocket.maxPort
- +1: kkolinko, markt, funkman
- -1:
- -0: rjung, jim, timw
- rjung: Should we really change default behaviour for a mature version?
- kkolinko: (I think that hardly anyone uses that feature, and if it is needed,
- one can reenable it now by setting the maxPort attribute.
- It is possible to make this configurable without changing the default
- -- see attachment 25657 in BZ 49521, but I do not think that it is worth it.)
- jim: Also not comfortable with such a change this late in the game
- regarding default behavior of a stable branch.
- timw: This caused major pain embedding 5.5 (so I'm sorely tempted to +1)
- , but moving to 6.0 is a decent soln.
- Probably not worth changing this late in the evolution of 5.5.
Modified:
tomcat/tc5.5.x/trunk/connectors/jk/java/org/apache/jk/common/ChannelNioSocket.java
URL:
http://svn.apache.org/viewvc/tomcat/tc5.5.x/trunk/connectors/jk/java/org/apache/jk/common/ChannelNioSocket.java?rev=1032209&r1=1032208&r2=1032209&view=diff
==============================================================================
---
tomcat/tc5.5.x/trunk/connectors/jk/java/org/apache/jk/common/ChannelNioSocket.java
(original)
+++
tomcat/tc5.5.x/trunk/connectors/jk/java/org/apache/jk/common/ChannelNioSocket.java
Sun Nov 7 04:22:07 2010
@@ -91,7 +91,7 @@ public class ChannelNioSocket extends Jk
org.apache.commons.logging.LogFactory.getLog( ChannelNioSocket.class );
private int startPort=8009;
- private int maxPort=8019; // 0 for backward compat.
+ private int maxPort=0; // 0 disables free port scanning
private int port=startPort;
private InetAddress inet;
private int serverTimeout = 0;
@@ -142,7 +142,6 @@ public class ChannelNioSocket extends Jk
public void setPort( int port ) {
this.startPort=port;
this.port=port;
- this.maxPort=port+10;
}
public int getPort() {
@@ -386,11 +385,12 @@ public class ChannelNioSocket extends Jk
running = true;
return;
}
- if (maxPort < startPort)
- maxPort = startPort;
+ int endPort = maxPort;
+ if (endPort < startPort)
+ endPort = startPort;
ServerSocketChannel ssc = ServerSocketChannel.open();
ssc.configureBlocking(false);
- for( int i=startPort; i<=maxPort; i++ ) {
+ for( int i=startPort; i<=endPort; i++ ) {
try {
InetSocketAddress iddr = null;
if( inet == null ) {
@@ -410,7 +410,7 @@ public class ChannelNioSocket extends Jk
}
if( sSocket==null ) {
- log.error("Can't find free port " + startPort + " " + maxPort );
+ log.error("Can't find free port " + startPort + " " + endPort );
return;
}
if(log.isInfoEnabled())
Modified:
tomcat/tc5.5.x/trunk/connectors/jk/java/org/apache/jk/common/ChannelSocket.java
URL:
http://svn.apache.org/viewvc/tomcat/tc5.5.x/trunk/connectors/jk/java/org/apache/jk/common/ChannelSocket.java?rev=1032209&r1=1032208&r2=1032209&view=diff
==============================================================================
---
tomcat/tc5.5.x/trunk/connectors/jk/java/org/apache/jk/common/ChannelSocket.java
(original)
+++
tomcat/tc5.5.x/trunk/connectors/jk/java/org/apache/jk/common/ChannelSocket.java
Sun Nov 7 04:22:07 2010
@@ -81,7 +81,7 @@ public class ChannelSocket extends JkHan
org.apache.commons.logging.LogFactory.getLog( ChannelSocket.class );
private int startPort=8009;
- private int maxPort=8019; // 0 for backward compat.
+ private int maxPort=0; // 0 disables free port scanning
private int port=startPort;
private int backlog = 0;
private InetAddress inet;
@@ -126,7 +126,6 @@ public class ChannelSocket extends JkHan
public void setPort( int port ) {
this.startPort=port;
this.port=port;
- this.maxPort=port+10;
}
public int getPort() {
@@ -368,9 +367,10 @@ public class ChannelSocket extends JkHan
running = true;
return;
}
- if (maxPort < startPort)
- maxPort = startPort;
- for( int i=startPort; i<=maxPort; i++ ) {
+ int endPort = maxPort;
+ if (endPort < startPort)
+ endPort = startPort;
+ for( int i=startPort; i<=endPort; i++ ) {
try {
if( inet == null ) {
sSocket = new ServerSocket( i, backlog );
@@ -387,7 +387,7 @@ public class ChannelSocket extends JkHan
}
if( sSocket==null ) {
- log.error("Can't find free port " + startPort + " " + maxPort );
+ log.error("Can't find free port " + startPort + " " + endPort );
return;
}
if(log.isInfoEnabled())
Modified:
tomcat/tc5.5.x/trunk/connectors/jk/java/org/apache/jk/server/JkMain.java
URL:
http://svn.apache.org/viewvc/tomcat/tc5.5.x/trunk/connectors/jk/java/org/apache/jk/server/JkMain.java?rev=1032209&r1=1032208&r2=1032209&view=diff
==============================================================================
--- tomcat/tc5.5.x/trunk/connectors/jk/java/org/apache/jk/server/JkMain.java
(original)
+++ tomcat/tc5.5.x/trunk/connectors/jk/java/org/apache/jk/server/JkMain.java
Sun Nov 7 04:22:07 2010
@@ -479,6 +479,7 @@ public class JkMain implements MBeanRegi
static Hashtable replacements=new Hashtable();
static {
replacements.put("port","channelSocket.port");
+ replacements.put("maxPort", "channelSocket.maxPort");
replacements.put("maxThreads", "channelSocket.maxThreads");
replacements.put("minSpareThreads", "channelSocket.minSpareThreads");
replacements.put("maxSpareThreads", "channelSocket.maxSpareThreads");
Modified: tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml?rev=1032209&r1=1032208&r2=1032209&view=diff
==============================================================================
--- tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml (original)
+++ tomcat/tc5.5.x/trunk/container/webapps/docs/changelog.xml Sun Nov 7
04:22:07 2010
@@ -65,6 +65,17 @@
</fix>
</changelog>
</subsection>
+ <subsection name="Coyote">
+ <changelog>
+ <fix>
+ <bug>49521</bug>: Disable scanning for a free port in Jk AJP/1.3
+ connector by default. Do not change maxPort field value of
ChannelSocket
+ in its <code>setPort()</code> and <code>init()</code> methods. Add
+ support for <code>maxPort</code> attribute on a <code>Connector</code>
+ element as a synonym for channelSocket.maxPort. (kkolinko)
+ </fix>
+ </changelog>
+ </subsection>
<subsection name="Jasper">
<changelog>
<fix>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]