summaryrefslogtreecommitdiff
path: root/protocols/VKontakte/src/misc.cpp
diff options
context:
space:
mode:
authorElzorFox <elzorfox@ya.ru>2025-02-25 11:07:59 +0500
committerElzorFox <elzorfox@ya.ru>2025-02-25 11:07:59 +0500
commit385d3560ad71d51ae961a52672f6136493d401d5 (patch)
tree3255acfe1b52df187ff5c812570488906ecab3c4 /protocols/VKontakte/src/misc.cpp
parent613c34262d1b1ee3588f4b01bed14ec52cf14e6f (diff)
VKontakte:
making captcha more rare version bump
Diffstat (limited to 'protocols/VKontakte/src/misc.cpp')
-rw-r--r--protocols/VKontakte/src/misc.cpp50
1 files changed, 49 insertions, 1 deletions
diff --git a/protocols/VKontakte/src/misc.cpp b/protocols/VKontakte/src/misc.cpp
index b312bdd9ae..690acebff8 100644
--- a/protocols/VKontakte/src/misc.cpp
+++ b/protocols/VKontakte/src/misc.cpp
@@ -655,6 +655,8 @@ void CVkProto::GrabCookies(MHttpResponse *nhr, CMStringA szDefDomain)
m_cookies.insert(new CVkCookie(szCookieName, szCookieVal, szDomain));
}
}
+
+ SaveCookies();
}
void CVkProto::ApplyCookies(AsyncHttpRequest *pReq)
@@ -673,10 +675,56 @@ void CVkProto::ApplyCookies(AsyncHttpRequest *pReq)
szCookie.Append(it->m_value);
}
- if (!szCookie.IsEmpty())
+ if (!szCookie.IsEmpty()) {
pReq->AddHeader("Cookie", szCookie);
+ }
}
+void CVkProto::SaveCookies()
+{
+ debugLogA("CVkProto::SaveCookies");
+ CMStringA szCookie;
+
+ for (auto& it : m_cookies) {
+ if (!szCookie.IsEmpty())
+ szCookie.Append("; ");
+ szCookie.Append(it->m_name);
+ szCookie.AppendChar('=');
+ szCookie.Append(it->m_value);
+ szCookie.AppendChar('=');
+ szCookie.Append(it->m_domain);
+ }
+
+ if (!szCookie.IsEmpty())
+ setString("Cookie", szCookie);
+}
+
+void CVkProto::LoadCookies()
+{
+ debugLogA("CVkProto::LoadCookies");
+ CMStringA szCookies = getStringA("Cookie");
+ if (szCookies.IsEmpty())
+ return;
+
+ CMStringA szCookieName, szCookieDomain, szCookieValue;
+ szCookies.AppendChar(';');
+
+ int iStart = 0;
+ while (true) {
+ CMStringA szToken = szCookies.Tokenize(";", iStart).Trim();
+ if (iStart == -1)
+ break;
+
+ int iStart2 = 0;
+
+ szCookieName = szToken.Tokenize("=", iStart2);
+ szCookieValue = szToken.Tokenize("=", iStart2);
+ szCookieDomain = szToken.Tokenize("=", iStart2);
+
+ m_cookies.insert(new CVkCookie(szCookieName, szCookieValue, szCookieDomain));
+ }
+
+}
/////////////////////////////////////////////////////////////////////////////////////////
bool CVkProto::IsAuthContactLater(MCONTACT hContact)