Просмотр исходного кода

Merge pull request #153 from mbarnach/caseInsensitiveWebSocket

Fix issue #152
Damian Kołakowski 10 лет назад
Родитель
Сommit
19ba2cd326
1 измененных файлов с 5 добавлено и 2 удалено
  1. 5 2
      Sources/WebSockets.swift

+ 5 - 2
Sources/WebSockets.swift

@@ -15,10 +15,13 @@ public func websocket(
         text: ((WebSocketSession, String) -> Void)?,
         text: ((WebSocketSession, String) -> Void)?,
     _ binary: ((WebSocketSession, [UInt8]) -> Void)?) -> (HttpRequest -> HttpResponse) {
     _ binary: ((WebSocketSession, [UInt8]) -> Void)?) -> (HttpRequest -> HttpResponse) {
     return { r in
     return { r in
-        guard r.headers["upgrade"] == "websocket" else {
+        guard let upgradeHeader = r.headers["upgrade"] where
+        upgradeHeader.lowercaseString == "websocket" else {
+            print(r.headers["upgrade"])
             return .BadRequest(.Text("Invalid value of 'Upgrade' header: \(r.headers["upgrade"])"))
             return .BadRequest(.Text("Invalid value of 'Upgrade' header: \(r.headers["upgrade"])"))
         }
         }
-        guard r.headers["connection"] == "Upgrade" else {
+        guard let connectionHeader = r.headers["connection"] where
+            connectionHeader.lowercaseString == "upgrade" else {
             return .BadRequest(.Text("Invalid value of 'Connection' header: \(r.headers["connection"])"))
             return .BadRequest(.Text("Invalid value of 'Connection' header: \(r.headers["connection"])"))
         }
         }
         guard let secWebSocketKey = r.headers["sec-websocket-key"] else {
         guard let secWebSocketKey = r.headers["sec-websocket-key"] else {