Author: markt
Date: Fri Apr 19 15:20:53 2013
New Revision: 1469891
URL: http://svn.apache.org/r1469891
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=54822
Fix handling of query strings with SPDY.
Based on a patch by Sheldon Shao.
Modified:
tomcat/trunk/java/org/apache/coyote/spdy/SpdyProcessor.java
Modified: tomcat/trunk/java/org/apache/coyote/spdy/SpdyProcessor.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/spdy/SpdyProcessor.java?rev=1469891&r1=1469890&r2=1469891&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/spdy/SpdyProcessor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/spdy/SpdyProcessor.java Fri Apr 19
15:20:53 2013
@@ -533,7 +533,22 @@ public class SpdyProcessor extends Abstr
if (valueLen > frame.remaining()) {
throw new IOException("Name too long");
}
- request.requestURI().setBytes(frame.data, frame.off, valueLen);
+
+ request.unparsedURI().setBytes(frame.data, frame.off,
valueLen);
+ int questionPos = -1;
+ int end = frame.off + valueLen;
+ for(int k = frame.off; k < end; k ++) {
+ if (frame.data[k] == '?') {
+ questionPos = k;
+ }
+ }
+
+ if (questionPos >= 0) {
+ request.queryString().setBytes(frame.data, questionPos +
1, end - questionPos - 1);
+ request.requestURI().setBytes(frame.data, frame.off,
questionPos - frame.off);
+ } else {
+ request.requestURI().setBytes(frame.data, frame.off,
valueLen);
+ }
if (SpdyContext.debug) {
System.err.println("URL= " + request.requestURI());
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]