Ticket #1445: newdiff.patch
| File newdiff.patch, 6.1 kB (added by emostar, 23 months ago) |
|---|
-
include/licq_icq.h
7 7 #define MODE_INDIRECT 0x02 8 8 #define MODE_DENIED 0x01 // user denies direct connection from "any" user 9 9 10 #define ICQ_VERSION 811 const unsigned short ICQ_VERSION_TCP = 0x000 8;10 #define ICQ_VERSION 9 11 const unsigned short ICQ_VERSION_TCP = 0x0009; 12 12 13 13 #define LICQ_WITHSSL 0x7D800000 14 14 #define LICQ_WITHOUTSSL 0x7D000000 … … 558 558 ' ', 'R', '.', 'K', '.', ' ', 559 559 0x00, 0x00, 0x00, 0x00 }; 560 560 561 const char ICQ_CAPABILITY_AIM_FILE[] = { 0x09, 0x46, 0x13, 0x43, 0x4c, 0x7f, 562 0x11, 0xd1, 0x82, 0x22, 0x44, 0x45, 563 0x53, 0x54, 0x00, 0x00 }; 564 565 const char ICQ_CAPABILITY_UNKNOWN1[] = { 0xb2, 0xec, 0x8f, 0x16, 0x7c, 0x6f, 566 0x45, 0x1b, 0xbd, 0x79, 0xdc, 0x58, 567 0x49, 0x78, 0x88, 0xb9 }; 568 const char ICQ_CAPABILITY_UNKNOWN2[] = {0x09, 0x46, 0x13, 0x4c, 0x4c, 0x7f, 0x11, 0xd1, 0x82, 0x22, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00 }; 569 const char ICQ_CAPABILITY_UNKNOWN3[] = {0x17, 0x8c, 0x2d, 0x9b, 0xda, 0xa5, 0x45, 0xbb, 0x8d, 0xdb, 0xf3, 0xbd, 0xbd, 0x53, 0xa1, 0x0a }; 570 const char ICQ_CAPABILITY_UNKNOWN4[] = {0x67, 0x36, 0x15, 0x15, 0x61, 0x2d, 0x4c, 0x07, 0x8f, 0x3d, 0xbd, 0xe6, 0x40, 0x8e, 0xa0, 0x41 }; 571 const char ICQ_CAPABILITY_UNKNOWN5[] = {0xb9, 0x97, 0x08, 0xb5, 0x3a, 0x92, 0x42, 0x02, 0xb0, 0x69, 0xf1, 0xe7, 0x57, 0xbb, 0x2e, 0x17 }; 572 // Unknown {b2ec8f16-7c6f-451b-bd79-dc58497888b9} 573 // Unknown {0946134c-4c7f-11d1-8222-444553540000} 574 // Unknown {178c2d9b-daa5-45bb-8ddb-f3bdbd53a10a} 575 // Unknown {67361515-612d-4c07-8f3d-bde6408ea041} 576 // Unknown {b99708b5-3a92-4202-b069-f1e757bb2e17} 577 // Send File {09461343-4c7f-11d1-8222-444553540000} 578 // Unknown {563fc809-0b6f-41bd-9f79-422609dfa2f3} TYPING 579 // Unknown {1a093c6c-d7fd-4ec5-9d51-a6474e34f5a0} XTRA 580 561 581 // XtraAway 562 582 const int XTRA_AWAY_COUNT = 32; 563 583 const char XtraAwayCaps[XTRA_AWAY_COUNT][0x10] = -
include/licq_icqd.h
817 817 unsigned long icqRequestStatusPlugin(ICQUser *, bool, const char *); 818 818 void icqUpdateInfoTimestamp(const char *); 819 819 820 // Xtraz 821 int checkXtraAway(char *); 822 820 823 void StupidChatLinkageFix(); 821 824 822 825 // Declare all our thread functions as friends -
src/icqpacket.cpp
827 827 buffer->PackUnsignedShortBE(0x0014); 828 828 // Client version minor 829 829 buffer->PackUnsignedLongBE(0x00180002); 830 buffer->PackUnsignedShortBE(0x00 22);830 buffer->PackUnsignedShortBE(0x0034); 831 831 buffer->PackUnsignedLongBE(0x00190002); 832 832 buffer->PackUnsignedShortBE(0x0000); 833 833 // Client version build … … 923 923 CPU_CapabilitySettings::CPU_CapabilitySettings() 924 924 : CPU_CommonFamily(ICQ_SNACxFAM_LOCATION, ICQ_SNACxLOC_SETxUSERxINFO) 925 925 { 926 char data[ 7][CAP_LENGTH];926 char data[13][CAP_LENGTH]; 927 927 m_nSize += 4 + sizeof(data); 928 928 InitBuffer(); 929 929 … … 934 934 memcpy(data[4], ICQ_CAPABILITY_AIMxINTER, CAP_LENGTH); 935 935 memcpy(data[5], ICQ_CAPABILITY_RTFxMSGS, CAP_LENGTH); 936 936 memcpy(data[6], ICQ_CAPABILITY_ICHAT, CAP_LENGTH); 937 memcpy(data[7], ICQ_CAPABILITY_UTF8, CAP_LENGTH); 938 //memcpy(data[8], ICQ_CAPABILITY_AIM_FILE, CAP_LENGTH); 939 //memcpy(data[9], ICQ_CAPABILITY_XTRAZ, CAP_LENGTH); 940 memcpy(data[8], ICQ_CAPABILITY_UNKNOWN1, CAP_LENGTH); 941 memcpy(data[9], ICQ_CAPABILITY_UNKNOWN2, CAP_LENGTH); 942 memcpy(data[10], ICQ_CAPABILITY_UNKNOWN3, CAP_LENGTH); 943 memcpy(data[11], ICQ_CAPABILITY_UNKNOWN4, CAP_LENGTH); 944 memcpy(data[12], ICQ_CAPABILITY_UNKNOWN5, CAP_LENGTH); 937 945 938 946 // Send our licq version 939 947 data[3][12] = INT_VERSION / 1000; -
src/icqd.cpp
2415 2415 unsigned short nSequence, bool bIsAck, 2416 2416 bool &bNewUser) 2417 2417 { 2418 gLog.Info("Msg Type: %d, Mask: %ld, Sequence: %d, Ack %c\nText: %s", 2419 nMsgType, nMask, nSequence, bIsAck? '1': '0', message); 2418 2420 char *szType = NULL; 2419 2421 CUserEvent *pEvent = NULL; 2420 2422 unsigned short nEventType = 0; -
src/icqd-srv.cpp
2937 2937 { 2938 2938 gLog.Info(tr("%sReceived rights for Contact List..\n"), L_SRVxSTR); 2939 2939 2940 icqUpdateContactList(); 2940 // ICQ5.1 doesn't seem to do this anymore. 2941 //icqUpdateContactList(); 2941 2942 break; 2942 2943 } 2943 2944 … … 3226 3227 break; 3227 3228 } 3228 3229 3230 // XXX Temporary workaround for the UIN being sent instead of the message 3231 // type when we are invisible. Needs a real fix. 3232 unsigned long nTmpHack; 3233 char szHackStr[11]; 3229 3234 advMsg >> nStatus >> nMsgFlags; 3235 //nTmpHack = (nMsgType << 16) & nStatus; 3236 nTmpHack = (nMsgType & 0x00FF) << 24 | 3237 (nMsgType & 0xFF00) << 8 | 3238 (nStatus & 0x00FF) << 8 | 3239 (nStatus & 0xFF00) >> 8; 3240 snprintf(szHackStr, 11, "%ld", nTmpHack); 3230 3241 3242 if (strcmp(szHackStr, szId) == 0) 3243 { 3244 nMsgType = 0x0001; 3245 } 3246 3231 3247 if (nMsgType & ICQ_CMDxSUB_FxMULTIREC) 3232 3248 { 3233 3249 nMask |= ICQ_CMDxSUB_FxMULTIREC; … … 3266 3282 3267 3283 u->SetTyping(ICQ_TYPING_INACTIVEx0); 3268 3284 3285 // XXX Part of the hack above. If it is a messed up packet, ignore the 3286 // status. If not, don't touch the status here... we extracted it above. 3287 if (strcmp(szHackStr, szId) != 0) 3288 nStatus = u->Status(); 3289 3269 3290 if (msgTxt.getTLVLen(0x0004) == 4) 3270 3291 { 3271 3292 unsigned long Ip = msgTxt.UnpackUnsignedLongTLV(0x0004);
