From 64d25271901afe957872ec3f16f10963e9db139e Mon Sep 17 00:00:00 2001 From: Erasov Ivan Date: Wed, 18 Jul 2018 15:23:10 +0300 Subject: [PATCH 1/3] Added passing cookies from long polling session to web scoket --- Source/SocketIO/Engine/SocketEngine.swift | 2 +- Source/SocketIO/Engine/SocketEngineSpec.swift | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/Source/SocketIO/Engine/SocketEngine.swift b/Source/SocketIO/Engine/SocketEngine.swift index 4904ee5..c3db64f 100644 --- a/Source/SocketIO/Engine/SocketEngine.swift +++ b/Source/SocketIO/Engine/SocketEngine.swift @@ -281,7 +281,7 @@ open class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePollable, So private func createWebSocketAndConnect() { var req = URLRequest(url: urlWebSocketWithSid) - addHeaders(to: &req) + addHeaders(to: &req, includingCookies: session?.configuration.httpCookieStorage?.cookies) ws = WebSocket(request: req) ws?.callbackQueue = engineQueue diff --git a/Source/SocketIO/Engine/SocketEngineSpec.swift b/Source/SocketIO/Engine/SocketEngineSpec.swift index fa08519..3034a0d 100644 --- a/Source/SocketIO/Engine/SocketEngineSpec.swift +++ b/Source/SocketIO/Engine/SocketEngineSpec.swift @@ -155,11 +155,16 @@ extension SocketEngineSpec { return com.url! } - func addHeaders(to req: inout URLRequest) { - if let cookies = cookies { - req.allHTTPHeaderFields = HTTPCookie.requestHeaderFields(with: cookies) + func addHeaders(to req: inout URLRequest, includingCookies additionalCookies: [HTTPCookie]? = nil) { + + var cookiesToAdd = [HTTPCookie]() + cookiesToAdd += cookies ?? [] + cookiesToAdd += additionalCookies ?? [] + + if !cookiesToAdd.isEmpty { + req.allHTTPHeaderFields = HTTPCookie.requestHeaderFields(with: cookiesToAdd) } - + if let extraHeaders = extraHeaders { for (headerName, value) in extraHeaders { req.setValue(value, forHTTPHeaderField: headerName) From cfc01ac9fc2fdf73a1e7cec8d381f55471d8f94a Mon Sep 17 00:00:00 2001 From: Erasov Ivan Date: Wed, 18 Jul 2018 16:59:34 +0300 Subject: [PATCH 2/3] Code style fixes --- Source/SocketIO/Engine/SocketEngineSpec.swift | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Source/SocketIO/Engine/SocketEngineSpec.swift b/Source/SocketIO/Engine/SocketEngineSpec.swift index 3034a0d..3f31c80 100644 --- a/Source/SocketIO/Engine/SocketEngineSpec.swift +++ b/Source/SocketIO/Engine/SocketEngineSpec.swift @@ -156,9 +156,7 @@ extension SocketEngineSpec { } func addHeaders(to req: inout URLRequest, includingCookies additionalCookies: [HTTPCookie]? = nil) { - - var cookiesToAdd = [HTTPCookie]() - cookiesToAdd += cookies ?? [] + var cookiesToAdd = cookies ?? [] cookiesToAdd += additionalCookies ?? [] if !cookiesToAdd.isEmpty { From eab73c81a73fd2ebf72d7434012bb918cac33548 Mon Sep 17 00:00:00 2001 From: Erasov Ivan Date: Wed, 18 Jul 2018 17:01:50 +0300 Subject: [PATCH 3/3] Fixed a typo --- Source/SocketIO/Engine/SocketEngineSpec.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/SocketIO/Engine/SocketEngineSpec.swift b/Source/SocketIO/Engine/SocketEngineSpec.swift index 3f31c80..4078535 100644 --- a/Source/SocketIO/Engine/SocketEngineSpec.swift +++ b/Source/SocketIO/Engine/SocketEngineSpec.swift @@ -156,7 +156,7 @@ extension SocketEngineSpec { } func addHeaders(to req: inout URLRequest, includingCookies additionalCookies: [HTTPCookie]? = nil) { - var cookiesToAdd = cookies ?? [] + var cookiesToAdd: [HTTPCookie] = cookies ?? [] cookiesToAdd += additionalCookies ?? [] if !cookiesToAdd.isEmpty {