aboutsummaryrefslogtreecommitdiff
path: root/uri.go
diff options
context:
space:
mode:
authorGravatar Aliaksandr Valialkin <valyala@gmail.com> 2017-11-08 13:05:29 +0200
committerGravatar Aliaksandr Valialkin <valyala@gmail.com> 2017-11-08 13:05:29 +0200
commite2ac397815808b48a6f634b82e6b96bec382dadb (patch)
tree97fd799016c9f5a6cd30cb91747319d37e8bb17c /uri.go
parentAdded RequestCtx.String that returns unique string representation of the requ... (diff)
downloadfasthttp-e2ac397815808b48a6f634b82e6b96bec382dadb.tar.gz
fasthttp-e2ac397815808b48a6f634b82e6b96bec382dadb.tar.bz2
fasthttp-e2ac397815808b48a6f634b82e6b96bec382dadb.zip
Parse bogus uris with missing slash after hostname like `http://foobar.com?baz=123`, since such uris occur in real life :(
Diffstat (limited to 'uri.go')
-rw-r--r--uri.go5
1 files changed, 5 insertions, 0 deletions
diff --git a/uri.go b/uri.go
index 1d10e47..37572f5 100644
--- a/uri.go
+++ b/uri.go
@@ -500,6 +500,11 @@ func splitHostURI(host, uri []byte) ([]byte, []byte, []byte) {
uri = uri[n:]
n = bytes.IndexByte(uri, '/')
if n < 0 {
+ // A hack for bogus urls like foobar.com?a=b without
+ // slash after host.
+ if n = bytes.IndexByte(uri, '?'); n >= 0 {
+ return scheme, uri[:n], uri[n:]
+ }
return scheme, uri, strSlash
}
return scheme, uri[:n], uri[n:]