From 75311f5d742585b32c96966433c7ffdbad1f509c Mon Sep 17 00:00:00 2001 From: Ziver Koc Date: Mon, 16 Nov 2020 23:58:23 +0100 Subject: [PATCH] Bugfix, webserver did not handle ? properly --- src/zutil/net/http/HttpHeaderParser.java | 4 ++-- test/zutil/net/http/HttpHeaderParserTest.java | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/zutil/net/http/HttpHeaderParser.java b/src/zutil/net/http/HttpHeaderParser.java index 80b891a..f3e9aa0 100755 --- a/src/zutil/net/http/HttpHeaderParser.java +++ b/src/zutil/net/http/HttpHeaderParser.java @@ -125,8 +125,8 @@ public class HttpHeaderParser { // parse URL and attributes int paramStartIndex = url.indexOf('?'); if (paramStartIndex >= 0) { - url = statusLine.substring(0, paramStartIndex); - parseURLParameters(header.getURLAttributeMap(), statusLine.substring(paramStartIndex + 1)); + parseURLParameters(header.getURLAttributeMap(), url.substring(paramStartIndex + 1)); + url = url.substring(0, paramStartIndex); } header.setRequestURL(url.trim()); } diff --git a/test/zutil/net/http/HttpHeaderParserTest.java b/test/zutil/net/http/HttpHeaderParserTest.java index b239c84..b47ae9f 100644 --- a/test/zutil/net/http/HttpHeaderParserTest.java +++ b/test/zutil/net/http/HttpHeaderParserTest.java @@ -45,6 +45,12 @@ public class HttpHeaderParserTest { assertEquals(-1, header.getResponseStatusCode()); assertEquals(null, header.getResponseStatusString()); + parser = new HttpHeaderParser("GET /test/page?param=test HTTP/1.1"); + header = parser.read(); + + assertEquals("/test/page", header.getRequestURL()); + assertEquals("test", header.getURLAttribute("param")); + parser = new HttpHeaderParser("DESCRIBE http://example.com RTSP/1.0"); header = parser.read();