diff options
author | Robert Pösel <robyer@seznam.cz> | 2013-02-09 09:49:40 +0000 |
---|---|---|
committer | Robert Pösel <robyer@seznam.cz> | 2013-02-09 09:49:40 +0000 |
commit | ce3ab93c2c61a22ac4cd38c05ea9e71e4f9695ae (patch) | |
tree | beca856ed866bdba40b885c5446b27ee41d4bece /protocols/IcqOscarJ/src/fam_17signon.cpp | |
parent | 6494bd1f41a94d784c71ee4e089b76e4baca5761 (diff) |
ICQ: Added patch from ryo-oh-ki:
1. Compatibility fix for third-party local ICQ servers - ICQ Groupware and IserverD. Added new option in Network -> ICQ -> Account -> "[X] Legacy fix", it's off by default (wont connect to old ICQ servers).
2. Compatibility fix for old non-unicode ICQ clients (crashes on file transfer).
3. Fixed double-freed memory in oscar_filetransfer.cpp (crashes after file transfer).
git-svn-id: http://svn.miranda-ng.org/main/trunk@3499 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'protocols/IcqOscarJ/src/fam_17signon.cpp')
-rw-r--r-- | protocols/IcqOscarJ/src/fam_17signon.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/protocols/IcqOscarJ/src/fam_17signon.cpp b/protocols/IcqOscarJ/src/fam_17signon.cpp index b35a432a48..dae5c38a0e 100644 --- a/protocols/IcqOscarJ/src/fam_17signon.cpp +++ b/protocols/IcqOscarJ/src/fam_17signon.cpp @@ -82,7 +82,7 @@ void CIcqProto::sendClientAuth(const char *szKey, WORD wKeyLen, BOOL bSecure) wUinLen = strlennull(strUID(m_dwLocalUIN, szUin));
- packet.wLen = 70 + sizeof(CLIENT_ID_STRING) + wUinLen + wKeyLen + (m_bSecureConnection ? 4 : 0);
+ packet.wLen = (m_bLegacyFix ? 65 : 70) + sizeof(CLIENT_ID_STRING) + wUinLen + wKeyLen + (m_bSecureConnection ? 4 : 0);
if (bSecure)
{
@@ -119,7 +119,8 @@ void CIcqProto::sendClientAuth(const char *szKey, WORD wKeyLen, BOOL bSecure) packTLVDWord(&packet, 0x0014, CLIENT_DISTRIBUTION);
packTLV(&packet, 0x000f, 0x0002, (LPBYTE)CLIENT_LANGUAGE);
packTLV(&packet, 0x000e, 0x0002, (LPBYTE)CLIENT_COUNTRY);
- packTLV(&packet, 0x0094, 0x0001, &m_bConnectionLost); // CLIENT_RECONNECT flag
+ if (!m_bLegacyFix)
+ packTLV(&packet, 0x0094, 0x0001, &m_bConnectionLost); // CLIENT_RECONNECT flag
if (m_bSecureConnection)
packDWord(&packet, 0x008C0000); // empty TLV(0x8C): use SSL
|