Author: markt
Date: Fri Aug 12 07:46:37 2016
New Revision: 1756094
URL: http://svn.apache.org/viewvc?rev=1756094&view=rev
Log:
Complete alignment of request attribute actions.
Modified:
tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java
tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java
tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java
Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java?rev=1756094&r1=1756093&r2=1756094&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Fri Aug 12
07:46:37 2016
@@ -423,44 +423,37 @@ public class AjpProcessor extends Abstra
// Request attribute support
case REQ_HOST_ADDR_ATTRIBUTE: {
- // NO-OP
- // Automatically populated during prepareRequest()
+ if (getPopulateRequestAttributesFromSocket() && socketWrapper !=
null) {
+ request.remoteAddr().setString(socketWrapper.getRemoteAddr());
+ }
break;
}
case REQ_HOST_ATTRIBUTE: {
- // Get remote host name using a DNS resolution
- if (request.remoteHost().isNull()) {
- try {
- request.remoteHost().setString(InetAddress.getByName
- (request.remoteAddr().toString()).getHostName());
- } catch (IOException iex) {
- // Ignore
- }
- }
+ populateRequestAttributeRemoteHost();
break;
}
case REQ_LOCALPORT_ATTRIBUTE: {
- // NO-OP
- // Automatically populated during prepareRequest()
+ if (getPopulateRequestAttributesFromSocket() && socketWrapper !=
null) {
+ request.setLocalPort(socketWrapper.getLocalPort());
+ }
break;
}
case REQ_LOCAL_ADDR_ATTRIBUTE: {
- // Automatically populated during prepareRequest() when using
- // modern AJP forwarder, otherwise copy from local name
- if (request.localAddr().isNull()) {
- request.localAddr().setString(request.localName().toString());
+ if (getPopulateRequestAttributesFromSocket() && socketWrapper !=
null) {
+ request.localAddr().setString(socketWrapper.getLocalAddr());
}
break;
}
case REQ_LOCAL_NAME_ATTRIBUTE: {
- // NO-OP
- // Automatically populated during prepareRequest()
+ if (getPopulateRequestAttributesFromSocket() && socketWrapper !=
null) {
+ request.localName().setString(socketWrapper.getLocalName());
+ }
break;
}
case REQ_REMOTEPORT_ATTRIBUTE: {
- // NO-OP
- // Automatically populated during prepareRequest() when using
- // modern AJP forwarder, otherwise not available
+ if (getPopulateRequestAttributesFromSocket() && socketWrapper !=
null) {
+ request.setRemotePort(socketWrapper.getRemotePort());
+ }
break;
}
@@ -1484,6 +1477,26 @@ public class AjpProcessor extends Abstra
}
+ private boolean getPopulateRequestAttributesFromSocket() {
+ // NO-OPs the attribute requests since they are pre-populated when
+ // parsing the first AJP message.
+ return false;
+ }
+
+
+ private void populateRequestAttributeRemoteHost() {
+ // Get remote host name using a DNS resolution
+ if (request.remoteHost().isNull()) {
+ try {
+ request.remoteHost().setString(InetAddress.getByName
+ (request.remoteAddr().toString()).getHostName());
+ } catch (IOException iex) {
+ // Ignore
+ }
+ }
+ }
+
+
/**
* Read at least the specified amount of bytes, and place them
* in the input buffer. Note that if any data is available to read then
this
Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java?rev=1756094&r1=1756093&r2=1756094&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Fri Aug 12
07:46:37 2016
@@ -716,37 +716,35 @@ public class Http11Processor extends Abs
// Request attribute support
case REQ_HOST_ADDR_ATTRIBUTE: {
- if (socketWrapper != null) {
+ if (getPopulateRequestAttributesFromSocket() && socketWrapper !=
null) {
request.remoteAddr().setString(socketWrapper.getRemoteAddr());
}
break;
}
case REQ_HOST_ATTRIBUTE: {
- if (socketWrapper != null) {
- request.remoteHost().setString(socketWrapper.getRemoteHost());
- }
+ populateRequestAttributeRemoteHost();
break;
}
case REQ_LOCALPORT_ATTRIBUTE: {
- if (socketWrapper != null) {
+ if (getPopulateRequestAttributesFromSocket() && socketWrapper !=
null) {
request.setLocalPort(socketWrapper.getLocalPort());
}
break;
}
case REQ_LOCAL_ADDR_ATTRIBUTE: {
- if (socketWrapper != null) {
+ if (getPopulateRequestAttributesFromSocket() && socketWrapper !=
null) {
request.localAddr().setString(socketWrapper.getLocalAddr());
}
break;
}
case REQ_LOCAL_NAME_ATTRIBUTE: {
- if (socketWrapper != null) {
+ if (getPopulateRequestAttributesFromSocket() && socketWrapper !=
null) {
request.localName().setString(socketWrapper.getLocalName());
}
break;
}
case REQ_REMOTEPORT_ATTRIBUTE: {
- if (socketWrapper != null) {
+ if (getPopulateRequestAttributesFromSocket() && socketWrapper !=
null) {
request.setRemotePort(socketWrapper.getRemotePort());
}
break;
@@ -1815,6 +1813,18 @@ public class Http11Processor extends Abs
}
+ private boolean getPopulateRequestAttributesFromSocket() {
+ return true;
+ }
+
+
+ private void populateRequestAttributeRemoteHost() {
+ if (getPopulateRequestAttributesFromSocket() && socketWrapper != null)
{
+ request.remoteHost().setString(socketWrapper.getRemoteHost());
+ }
+ }
+
+
/**
* Checks to see if the keep-alive loop should be broken, performing any
* processing (e.g. sendfile handling) that may have an impact on whether
Modified: tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java?rev=1756094&r1=1756093&r2=1756094&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java Fri Aug 12
07:46:37 2016
@@ -170,37 +170,35 @@ public class StreamProcessor extends Abs
// Request attribute support
case REQ_HOST_ADDR_ATTRIBUTE: {
- if (socketWrapper != null) {
- request.remoteAddr().setString(socketWrapper.getRemoteAddr());
- }
+ populateRequestAttributeRemoteHost();
break;
}
case REQ_HOST_ATTRIBUTE: {
- if (socketWrapper != null) {
+ if (getPopulateRequestAttributesFromSocket() && socketWrapper !=
null) {
request.remoteHost().setString(socketWrapper.getRemoteHost());
}
break;
}
case REQ_LOCALPORT_ATTRIBUTE: {
- if (socketWrapper != null) {
+ if (getPopulateRequestAttributesFromSocket() && socketWrapper !=
null) {
request.setLocalPort(socketWrapper.getLocalPort());
}
break;
}
case REQ_LOCAL_ADDR_ATTRIBUTE: {
- if (socketWrapper != null) {
+ if (getPopulateRequestAttributesFromSocket() && socketWrapper !=
null) {
request.localAddr().setString(socketWrapper.getLocalAddr());
}
break;
}
case REQ_LOCAL_NAME_ATTRIBUTE: {
- if (socketWrapper != null) {
+ if (getPopulateRequestAttributesFromSocket() && socketWrapper !=
null) {
request.localName().setString(socketWrapper.getLocalName());
}
break;
}
case REQ_REMOTEPORT_ATTRIBUTE: {
- if (socketWrapper != null) {
+ if (getPopulateRequestAttributesFromSocket() && socketWrapper !=
null) {
request.setRemotePort(socketWrapper.getRemotePort());
}
break;
@@ -433,6 +431,18 @@ public class StreamProcessor extends Abs
}
+ private boolean getPopulateRequestAttributesFromSocket() {
+ return true;
+ }
+
+
+ private void populateRequestAttributeRemoteHost() {
+ if (getPopulateRequestAttributesFromSocket() && socketWrapper != null)
{
+ request.remoteHost().setString(socketWrapper.getRemoteHost());
+ }
+ }
+
+
@Override
public void recycle() {
// StreamProcessor instances are not re-used.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]