From 87a2660299edd64cbb6f6c92c33683e91a6d187c Mon Sep 17 00:00:00 2001 From: George Hazan Date: Mon, 13 Jan 2020 16:48:55 +0300 Subject: Netlib_GetHeader() - handful utility to avoid writing cycles --- protocols/SkypeWeb/src/skype_mslogin.cpp | 15 ++++----------- protocols/SkypeWeb/src/skype_oauth.cpp | 7 ++----- 2 files changed, 6 insertions(+), 16 deletions(-) (limited to 'protocols/SkypeWeb/src') diff --git a/protocols/SkypeWeb/src/skype_mslogin.cpp b/protocols/SkypeWeb/src/skype_mslogin.cpp index 4846ae6243..30272829f7 100644 --- a/protocols/SkypeWeb/src/skype_mslogin.cpp +++ b/protocols/SkypeWeb/src/skype_mslogin.cpp @@ -39,12 +39,9 @@ void CSkypeProto::OnMSLoginFirst(const NETLIBHTTPREQUEST *response) } std::string PPTF = match[1]; - for (int i = 0; i < response->headersCount; i++) { - if (mir_strcmpi(response->headers[i].szName, "Set-Cookie")) - continue; - + if (auto *pszHdr = Netlib_GetHeader(response, "Set-Cookie")) { regex = "^(.+?)=(.+?);"; - content = response->headers[i].szValue; + content = pszHdr; if (std::regex_search(content, match, regex)) scookies[match[1]] = match[2]; } @@ -71,12 +68,9 @@ void CSkypeProto::OnMSLoginSecond(const NETLIBHTTPREQUEST *response) if (std::regex_search(content, match, regex)) { if (match[1] == "i5600") { CMStringA szCookies; - for (int i = 0; i < response->headersCount; i++) { - if (mir_strcmpi(response->headers[i].szName, "Set-Cookie")) - continue; - + if (auto *pszHdr = Netlib_GetHeader(response, "Set-Cookie")) { regex = "^(.+?)=(.+?);"; - content = response->headers[i].szValue; + content = pszHdr; if (std::regex_search(content, match, regex)) if (!std::string(match[2]).empty() && std::string(match[2]) != " ") szCookies.AppendFormat("%s=%s;", std::string(match[1]).c_str(), std::string(match[2]).c_str()); @@ -85,7 +79,6 @@ void CSkypeProto::OnMSLoginSecond(const NETLIBHTTPREQUEST *response) CMStringA url(GetStringChunk(szContent, "urlPost:'", "'")); CMStringA ppft(GetStringChunk(szContent, "sFT:'", "'")); - ptrA code(mir_utf8encodeW(RunConfirmationCode())); SendRequest(new LoginMSRequest(url.c_str(), ptrA(getStringA(SKYPE_SETTINGS_ID)), szCookies.c_str(), ppft.c_str(), code), &CSkypeProto::OnMSLoginEnd); diff --git a/protocols/SkypeWeb/src/skype_oauth.cpp b/protocols/SkypeWeb/src/skype_oauth.cpp index d00fc7fa10..dcb087322b 100644 --- a/protocols/SkypeWeb/src/skype_oauth.cpp +++ b/protocols/SkypeWeb/src/skype_oauth.cpp @@ -39,12 +39,9 @@ void CSkypeProto::OnOAuthStart(const NETLIBHTTPREQUEST *response) } std::string PPTF = match[1]; - for (int i = 0; i < response->headersCount; i++) { - if (mir_strcmpi(response->headers[i].szName, "Set-Cookie")) - continue; - + if (auto *pszHdr = Netlib_GetHeader(response, "Set-Cookie")) { regex = "^(.+?)=(.+?);"; - content = response->headers[i].szValue; + content = pszHdr; if (std::regex_search(content, match, regex)) scookies[match[1]] = match[2]; } -- cgit v1.2.3