billbarker 2004/09/16 21:50:48
Modified: jk/java/org/apache/jk/common HandlerRequest.java
Log:
Require that use of AJP/1.3 shutdown is explictly enabled to function.
No Adapter in any version of Tomcat currently supports a clean shutdown from
AJP/1.3, so it is better to turn it off (by default) for now.
Fix for Bug #31204
Revision Changes Path
1.39 +25 -6
jakarta-tomcat-connectors/jk/java/org/apache/jk/common/HandlerRequest.java
Index: HandlerRequest.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/common/HandlerRequest.java,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -r1.38 -r1.39
--- HandlerRequest.java 15 Jun 2004 20:37:11 -0000 1.38
+++ HandlerRequest.java 17 Sep 2004 04:50:47 -0000 1.39
@@ -251,6 +251,14 @@
return tomcatAuthentication;
}
+ public void setShutdownEnabled(boolean se) {
+ shutdownEnabled = se;
+ }
+
+ public boolean getShutdownEnabled() {
+ return shutdownEnabled;
+ }
+
public void setTomcatAuthentication(boolean newTomcatAuthentication) {
tomcatAuthentication = newTomcatAuthentication;
}
@@ -324,6 +332,7 @@
boolean decoded=true;
boolean tomcatAuthentication=true;
boolean registerRequests=true;
+ boolean shutdownEnabled=false;
public int invoke(Msg msg, MsgContext ep )
throws IOException
@@ -399,9 +408,14 @@
if( !ch.isSameAddress(ep) ) {
log.error("Shutdown request not from 'same address' ");
return ERROR;
- }
+ }
+ if( !shutdownEnabled ) {
+ log.warn("Ignoring shutdown request: shutdown not enabled");
+ return ERROR;
+ }
// forward to the default handler - it'll do the shutdown
+ checkRequest(ep);
next.invoke( msg, ep );
log.info("Exiting");
@@ -429,10 +443,7 @@
static int count = 0;
- private int decodeRequest( Msg msg, MsgContext ep, MessageBytes tmpMB )
- throws IOException
- {
- // FORWARD_REQUEST handler
+ private Request checkRequest(MsgContext ep) {
Request req=(Request)ep.getRequest();
if( req==null ) {
req=new Request();
@@ -440,9 +451,17 @@
req.setResponse(res);
ep.setRequest( req );
if( registerRequests ) {
- ep.getSource().registerRequest(req, ep, count++);
+ ep.getSource().registerRequest(req, ep, count++);
}
}
+ return req;
+ }
+
+ private int decodeRequest( Msg msg, MsgContext ep, MessageBytes tmpMB )
+ throws IOException
+ {
+ // FORWARD_REQUEST handler
+ Request req = checkRequest(ep);
RequestInfo rp = req.getRequestProcessor();
rp.setStage(Constants.STAGE_PARSE);
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]