From 2f4eaac57045bcb45f0c7087437649a9f664410d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20P=C3=B6sel?= Date: Sun, 9 Nov 2014 23:03:49 +0000 Subject: Facebook: Fix disconnection few seconds after login for some people git-svn-id: http://svn.miranda-ng.org/main/trunk@10941 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/FacebookRM/src/client.h | 3 ++- protocols/FacebookRM/src/communication.cpp | 7 +++++-- protocols/FacebookRM/src/version.h | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/protocols/FacebookRM/src/client.h b/protocols/FacebookRM/src/client.h index 03a62be446..14b2731232 100644 --- a/protocols/FacebookRM/src/client.h +++ b/protocols/FacebookRM/src/client.h @@ -39,7 +39,7 @@ public: { username_ = password_ = \ chat_sequence_num_ = chat_channel_host_ = chat_channel_partition_ = \ - dtsg_ = logout_hash_ = chat_sticky_num_ = chat_conn_num_ = chat_clientid_ = chat_traceid_ = ""; + dtsg_ = logout_hash_ = chat_sticky_num_ = chat_sticky_pool_ = chat_conn_num_ = chat_clientid_ = chat_traceid_ = ""; msgid_ = error_count_ = last_feeds_update_ = last_notification_time_ = 0; @@ -74,6 +74,7 @@ public: std::string chat_sequence_num_; std::string chat_reconnect_reason_; std::string chat_sticky_num_; + std::string chat_sticky_pool_; std::string chat_conn_num_; std::string chat_clientid_; std::string chat_traceid_; diff --git a/protocols/FacebookRM/src/communication.cpp b/protocols/FacebookRM/src/communication.cpp index fe8fdc3cfb..3cefc8a822 100644 --- a/protocols/FacebookRM/src/communication.cpp +++ b/protocols/FacebookRM/src/communication.cpp @@ -539,6 +539,9 @@ std::string facebook_client::choose_action(RequestType request_type, std::string if (!this->chat_sticky_num_.empty()) action += "&sticky_token=" + this->chat_sticky_num_; + if (!this->chat_sticky_pool_.empty()) + action += "&sticky_pool=" + this->chat_sticky_pool_; + if (!this->chat_traceid_.empty()) action += "&traceid=" + this->chat_traceid_; @@ -1139,8 +1142,8 @@ bool facebook_client::channel() } else if (type == "lb") { // Some new stuff (idk how does it work yet) - this->chat_channel_host_ = utils::text::source_get_value(&resp.data, 2, "\"vip\":\"", "\""); - parent->debugLogA(" Got self channel host: %s", this->chat_channel_host_.c_str()); + this->chat_sticky_pool_ = utils::text::source_get_value(&resp.data, 2, "\"pool\":\"", "\""); + parent->debugLogA(" Got self sticky pool: %s", this->chat_sticky_pool_.c_str()); this->chat_sticky_num_ = utils::text::source_get_value2(&resp.data, "\"sticky\":\"", "\""); parent->debugLogA(" Got self sticky number: %s", this->chat_sticky_num_.c_str()); diff --git a/protocols/FacebookRM/src/version.h b/protocols/FacebookRM/src/version.h index 234a5218ab..dad9979bf5 100644 --- a/protocols/FacebookRM/src/version.h +++ b/protocols/FacebookRM/src/version.h @@ -1,7 +1,7 @@ #define __MAJOR_VERSION 0 #define __MINOR_VERSION 2 #define __RELEASE_NUM 9 -#define __BUILD_NUM 3 +#define __BUILD_NUM 4 #include -- cgit v1.2.3