remm 2004/09/13 14:39:40
Modified: http11/src/java/org/apache/coyote/http11
Http11Processor.java
Log:
- Cleanup a little access to the headers using a local variable.
- Use direct access to the headers whenever possible (extra checks were done in
Response).
- Use setValue for Server and Date headers.
Revision Changes Path
1.109 +25 -33
jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11Processor.java
Index: Http11Processor.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11Processor.java,v
retrieving revision 1.108
retrieving revision 1.109
diff -u -r1.108 -r1.109
--- Http11Processor.java 13 Sep 2004 18:25:08 -0000 1.108
+++ Http11Processor.java 13 Sep 2004 21:39:39 -0000 1.109
@@ -1126,9 +1126,10 @@
methodMB.setString(Constants.POST);
}
+ MimeHeaders headers = request.getMimeHeaders();
+
// Check connection header
- MessageBytes connectionValueMB =
- request.getMimeHeaders().getValue("connection");
+ MessageBytes connectionValueMB = headers.getValue("connection");
if (connectionValueMB != null) {
ByteChunk connectionValueBC = connectionValueMB.getByteChunk();
if (findBytes(connectionValueBC, Constants.CLOSE_BYTES) != -1) {
@@ -1141,7 +1142,7 @@
MessageBytes expectMB = null;
if (http11)
- expectMB = request.getMimeHeaders().getValue("expect");
+ expectMB = headers.getValue("expect");
if ((expectMB != null)
&& (expectMB.indexOfIgnoreCase("100-continue", 0) != -1)) {
inputBuffer.setSwallowInput(false);
@@ -1150,8 +1151,7 @@
// Check user-agent header
if ((restrictedUserAgents != null) && ((http11) || (keepAlive))) {
- MessageBytes userAgentValueMB =
- request.getMimeHeaders().getValue("user-agent");
+ MessageBytes userAgentValueMB = headers.getValue("user-agent");
// Check in the restricted list, and adjust the http11
// and keepAlive flags accordingly
if(userAgentValueMB != null) {
@@ -1186,8 +1186,7 @@
(uriB, uriBCStart + slashPos,
uriBC.getLength() - slashPos);
}
- MessageBytes hostMB =
- request.getMimeHeaders().setValue("host");
+ MessageBytes hostMB = headers.setValue("host");
hostMB.setBytes(uriB, uriBCStart + pos + 3,
slashPos - pos - 3);
}
@@ -1208,8 +1207,7 @@
// Parse transfer-encoding header
MessageBytes transferEncodingValueMB = null;
if (http11)
- transferEncodingValueMB =
- request.getMimeHeaders().getValue("transfer-encoding");
+ transferEncodingValueMB = headers.getValue("transfer-encoding");
if (transferEncodingValueMB != null) {
String transferEncodingValue = transferEncodingValueMB.toString();
// Parse the comma separated list. "identity" codings are ignored
@@ -1238,7 +1236,7 @@
}
}
- MessageBytes valueMB = request.getMimeHeaders().getValue("host");
+ MessageBytes valueMB = headers.getValue("host");
// Check host header
if (http11 && (valueMB == null)) {
@@ -1467,8 +1465,7 @@
int contentLength = response.getContentLength();
if (contentLength != -1) {
- response.getMimeHeaders().setValue("Content-Length")
- .setInt(contentLength);
+ headers.setValue("Content-Length").setInt(contentLength);
outputBuffer.addActiveFilter
(outputFilters[Constants.IDENTITY_FILTER]);
contentDelimitation = true;
@@ -1477,7 +1474,7 @@
outputBuffer.addActiveFilter
(outputFilters[Constants.CHUNKED_FILTER]);
contentDelimitation = true;
- response.addHeader("Transfer-Encoding", "chunked");
+ headers.addValue("Transfer-Encoding").setString("chunked");
} else {
outputBuffer.addActiveFilter
(outputFilters[Constants.IDENTITY_FILTER]);
@@ -1486,35 +1483,30 @@
if (useCompression) {
outputBuffer.addActiveFilter(outputFilters[Constants.GZIP_FILTER]);
- // FIXME: Make content-encoding generation dynamic
- response.setHeader("Content-Encoding", "gzip");
+ headers.setValue("Content-Encoding").setString("gzip");
// Make Proxies happy via Vary (from mod_deflate)
- response.setHeader("Vary", "Accept-Encoding");
+ headers.setValue("Vary").setString("Accept-Encoding");
}
// Add date header
- if (! response.containsHeader("Date")){
-
- String date = null;
- if (System.getSecurityManager() != null){
+ String date = null;
+ if (System.getSecurityManager() != null){
date = (String)AccessController.doPrivileged(
- new PrivilegedAction() {
- public Object run(){
- return FastHttpDateFormat.getCurrentDate();
+ new PrivilegedAction() {
+ public Object run(){
+ return FastHttpDateFormat.getCurrentDate();
+ }
}
- }
);
- } else {
+ } else {
date = FastHttpDateFormat.getCurrentDate();
- }
- response.addHeader("Date", date);
}
-
+ headers.setValue("Date").setString(date);
+
// Add server header
- response.addHeader("Server", Constants.SERVER);
+ headers.setValue("Server").setString(Constants.SERVER);
- // Add transfer encoding header
- // FIXME
+ // FIXME: Add transfer encoding header
if ((entityBody) && (!contentDelimitation)) {
// Mark as close the connection after the request, and add the
@@ -1526,9 +1518,9 @@
// Connection: close header.
keepAlive = keepAlive && !statusDropsConnection(statusCode);
if (!keepAlive) {
- response.addHeader("Connection", "close");
+ headers.addValue("Connection").setString("close");
} else if (!http11) {
- response.addHeader("Connection", "Keep-Alive");
+ headers.addValue("Connection").setString("Keep-Alive");
}
// Build the response header
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]