diff options
author | George Hazan <ghazan@miranda.im> | 2021-12-05 19:52:50 +0300 |
---|---|---|
committer | George Hazan <ghazan@miranda.im> | 2021-12-05 19:52:50 +0300 |
commit | 7de7ba2e0a756265f7d77be2a2ab264c6a6b776f (patch) | |
tree | afa6bf24fe64469bf7cd7c15222b6321c71cb993 /protocols | |
parent | 67784c8b5f579ece561eeab65f2e4b6299e9511c (diff) |
fixes #2981 (ICQ: contacts search does not work if logged in by phone number)
Diffstat (limited to 'protocols')
-rw-r--r-- | protocols/ICQ-WIM/src/http.cpp | 2 | ||||
-rw-r--r-- | protocols/ICQ-WIM/src/proto.cpp | 11 | ||||
-rw-r--r-- | protocols/ICQ-WIM/src/version.h | 2 |
3 files changed, 11 insertions, 4 deletions
diff --git a/protocols/ICQ-WIM/src/http.cpp b/protocols/ICQ-WIM/src/http.cpp index e3fc4cd62c..b41823860e 100644 --- a/protocols/ICQ-WIM/src/http.cpp +++ b/protocols/ICQ-WIM/src/http.cpp @@ -156,7 +156,7 @@ bool CIcqProto::ExecuteRequest(AsyncHttpRequest *pReq) } // replace credentials inside JSON body for pure RAPI requests - if (pReq->m_conn == CONN_RAPI && !mir_strcmp(pReq->szUrl, ICQ_ROBUST_SERVER)) { + if (pReq->m_conn == CONN_RAPI && !mir_strcmp(pReq->szUrl, ICQ_ROBUST_SERVER) && !getByte(DB_KEY_PHONEREG)) { CMStringA szAgent(FORMAT, "%S Mail.ru Windows ICQ (version 10.0.1999)", (wchar_t*)m_szOwnId); pReq->AddHeader("User-Agent", szAgent); pReq->AddHeader("Content-Type", "application/json"); diff --git a/protocols/ICQ-WIM/src/proto.cpp b/protocols/ICQ-WIM/src/proto.cpp index a228835cf3..6dff6b3b5d 100644 --- a/protocols/ICQ-WIM/src/proto.cpp +++ b/protocols/ICQ-WIM/src/proto.cpp @@ -524,11 +524,18 @@ HANDLE CIcqProto::SearchBasic(const wchar_t *pszSearch) if (!m_bOnline) return nullptr; - auto *pReq = new AsyncHttpRequest(CONN_RAPI, REQUEST_POST, ICQ_ROBUST_SERVER, &CIcqProto::OnSearchResults); + bool bPhoneReg = getByte(DB_KEY_PHONEREG) != 0; + auto *pReq = new AsyncHttpRequest(CONN_RAPI, REQUEST_POST, bPhoneReg ? "https://u.icq.net/api/v65/rapi/search" : ICQ_ROBUST_SERVER, &CIcqProto::OnSearchResults); JSONNode request, params; params.set_name("params"); params << WCHAR_PARAM(*pszSearch == '+' ? "phonenum" : "keyword", pszSearch); - request << CHAR_PARAM("method", "search") << CHAR_PARAM("reqId", pReq->m_reqId) << params; + if (bPhoneReg) { + pReq->AddHeader("Content-Type", "application/json"); + request << CHAR_PARAM("aimsid", m_aimsid); + } + else request << CHAR_PARAM("method", "search"); + + request << CHAR_PARAM("reqId", pReq->m_reqId) << params; pReq->m_szParam = ptrW(json_write(&request)); Push(pReq); return pReq; diff --git a/protocols/ICQ-WIM/src/version.h b/protocols/ICQ-WIM/src/version.h index 5b29ecef53..b8d73bc709 100644 --- a/protocols/ICQ-WIM/src/version.h +++ b/protocols/ICQ-WIM/src/version.h @@ -1,7 +1,7 @@ #define __MAJOR_VERSION 0 #define __MINOR_VERSION 96 #define __RELEASE_NUM 1 -#define __BUILD_NUM 5 +#define __BUILD_NUM 6 #include <stdver.h> |