From e877bb26c3eab6ed40a5a104d32609a44ba97e7d Mon Sep 17 00:00:00 2001 From: Erik Little Date: Tue, 2 Oct 2018 07:53:36 -0400 Subject: [PATCH] check for 200 status code when polling #857 --- .../Engine/SocketEnginePollable.swift | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/Source/SocketIO/Engine/SocketEnginePollable.swift b/Source/SocketIO/Engine/SocketEnginePollable.swift index faec93a..0e46c3f 100644 --- a/Source/SocketIO/Engine/SocketEnginePollable.swift +++ b/Source/SocketIO/Engine/SocketEnginePollable.swift @@ -122,9 +122,12 @@ extension SocketEnginePollable { doRequest(for: req) {[weak self] data, res, err in guard let this = self, this.polling else { return } - - if err != nil || data == nil { - DefaultSocketLogger.Logger.error(err?.localizedDescription ?? "Error", type: "SocketEnginePolling") + guard let data = data, let res = res as? HTTPURLResponse, res.statusCode == 200 else { + if let err = err { + DefaultSocketLogger.Logger.error(err.localizedDescription, type: "SocketEnginePolling") + } else { + DefaultSocketLogger.Logger.error("Error during long poll request", type: "SocketEnginePolling") + } if this.polling { this.didError(reason: err?.localizedDescription ?? "Error") @@ -135,7 +138,7 @@ extension SocketEnginePollable { DefaultSocketLogger.Logger.log("Got polling response", type: "SocketEnginePolling") - if let str = String(data: data!, encoding: .utf8) { + if let str = String(data: data, encoding: .utf8) { this.parsePollingMessage(str) } @@ -163,11 +166,14 @@ extension SocketEnginePollable { DefaultSocketLogger.Logger.log("POSTing", type: "SocketEnginePolling") - doRequest(for: req) {[weak self] data, res, err in + doRequest(for: req) {[weak self] _, res, err in guard let this = self else { return } - - if err != nil { - DefaultSocketLogger.Logger.error(err?.localizedDescription ?? "Error", type: "SocketEnginePolling") + guard let res = res as? HTTPURLResponse, res.statusCode == 200 else { + if let err = err { + DefaultSocketLogger.Logger.error(err.localizedDescription, type: "SocketEnginePolling") + } else { + DefaultSocketLogger.Logger.error("Error flushing waiting posts", type: "SocketEnginePolling") + } if this.polling { this.didError(reason: err?.localizedDescription ?? "Error")