Prechádzať zdrojové kódy

fix for URLComponents returning nil

* when path contains 'weird' characters (`[]`) URLComponents won't parse it, so the path will be nil
  * escaping the string with `urlQueryAllowed` character set fixes this issue
Nejc Vivod 7 rokov pred
rodič
commit
28b56f05f7
1 zmenil súbory, kde vykonal 2 pridanie a 1 odobranie
  1. 2 1
      XCode/Sources/HttpParser.swift

+ 2 - 1
XCode/Sources/HttpParser.swift

@@ -23,7 +23,8 @@ public class HttpParser {
         }
         let request = HttpRequest()
         request.method = statusLineTokens[0]
-        let urlComponents = URLComponents(string: statusLineTokens[1])
+        let encodedPath = statusLineTokens[1].addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) ?? statusLineTokens[1]
+        let urlComponents = URLComponents(string: encodedPath)
         request.path = urlComponents?.path ?? ""
         request.queryParams = urlComponents?.queryItems?.map { ($0.name, $0.value ?? "") } ?? []
         request.headers = try readHeaders(socket)