summaryrefslogtreecommitdiff
path: root/protocols/IcqOscarJ/src/stdpackets.cpp
diff options
context:
space:
mode:
authorTobias Weimer <wishmaster51@googlemail.com>2013-02-14 22:22:10 +0000
committerTobias Weimer <wishmaster51@googlemail.com>2013-02-14 22:22:10 +0000
commitd8aaa26f36075ac9cceb5e346b33a128c332abc3 (patch)
tree965a0ae4c8fc653d13b71883a96ee9177a2e886a /protocols/IcqOscarJ/src/stdpackets.cpp
parent0c110e2eb4018cf04de6fb2f8a6965a5b3d9c688 (diff)
+ Restored sendOwnerInfoRequest() function in legacy mode. (patch by ryo-oh-ki)
git-svn-id: http://svn.miranda-ng.org/main/trunk@3607 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'protocols/IcqOscarJ/src/stdpackets.cpp')
-rw-r--r--protocols/IcqOscarJ/src/stdpackets.cpp31
1 files changed, 22 insertions, 9 deletions
diff --git a/protocols/IcqOscarJ/src/stdpackets.cpp b/protocols/IcqOscarJ/src/stdpackets.cpp
index 1eb1e696a3..c90244bdc3 100644
--- a/protocols/IcqOscarJ/src/stdpackets.cpp
+++ b/protocols/IcqOscarJ/src/stdpackets.cpp
@@ -511,18 +511,31 @@ void CIcqProto::sendOwnerInfoRequest(void)
{
icq_packet packet;
- cookie_directory_data *pCookieData = (cookie_directory_data*)SAFE_MALLOC(sizeof(cookie_directory_data));
- pCookieData->bRequestType = DIRECTORYREQUEST_INFOOWNER;
+ if (m_bLegacyFix)
+ {
+ cookie_fam15_data *pCookieData = (cookie_fam15_data*)SAFE_MALLOC(sizeof(cookie_fam15_data));
+ pCookieData->bRequestType = REQUESTTYPE_OWNER;
+ DWORD dwCookie = AllocateCookie(CKT_FAMILYSPECIAL, 0, NULL, (void*)pCookieData);
- DWORD dwCookie = AllocateCookie(CKT_DIRECTORY_QUERY, 0, NULL, (void*)pCookieData);
- WORD wDataLen = getUINLen(m_dwLocalUIN) + 4;
+ packServIcqExtensionHeader(&packet, this, 6, 0x07D0, (WORD)dwCookie);
+ packLEWord(&packet, META_REQUEST_SELF_INFO);
+ packLEDWord(&packet, m_dwLocalUIN);
+ }
+ else
+ {
+ cookie_directory_data *pCookieData = (cookie_directory_data*)SAFE_MALLOC(sizeof(cookie_directory_data));
+ pCookieData->bRequestType = DIRECTORYREQUEST_INFOOWNER;
- packServIcqDirectoryHeader(&packet, this, wDataLen + 8, META_DIRECTORY_QUERY, DIRECTORY_QUERY_INFO, (WORD)dwCookie);
- packWord(&packet, 0x03); // with interests (ICQ6 uses 2 at login)
- packDWord(&packet, 0x01);
- packWord(&packet, wDataLen);
+ DWORD dwCookie = AllocateCookie(CKT_DIRECTORY_QUERY, 0, NULL, (void*)pCookieData);
+ WORD wDataLen = getUINLen(m_dwLocalUIN) + 4;
- packTLVUID(&packet, 0x32, m_dwLocalUIN, NULL);
+ packServIcqDirectoryHeader(&packet, this, wDataLen + 8, META_DIRECTORY_QUERY, DIRECTORY_QUERY_INFO, (WORD)dwCookie);
+ packWord(&packet, 0x03); // with interests (ICQ6 uses 2 at login)
+ packDWord(&packet, 0x01);
+ packWord(&packet, wDataLen);
+
+ packTLVUID(&packet, 0x32, m_dwLocalUIN, NULL);
+ }
sendServPacket(&packet);
}