Changeset 6405
- Timestamp:
- 07/03/08 22:13:49 (2 months ago)
- Location:
- trunk/licq
- Files:
-
- 13 modified
-
include/licq_chat.h (modified) (2 diffs)
-
include/licq_icqd.h (modified) (4 diffs)
-
include/licq_message.h (modified) (2 diffs)
-
include/licq_packets.h (modified) (1 diff)
-
src/fifo.cpp (modified) (4 diffs)
-
src/history.cpp (modified) (9 diffs)
-
src/icqd-chat.cpp (modified) (23 diffs)
-
src/icqd-srv.cpp (modified) (19 diffs)
-
src/icqd-tcp.cpp (modified) (5 diffs)
-
src/icqd-threads.cpp (modified) (2 diffs)
-
src/icqd.cpp (modified) (1 diff)
-
src/icqpacket.cpp (modified) (1 diff)
-
src/message.cpp (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/licq/include/licq_chat.h
r6347 r6405 599 599 void SendBackspace(); 600 600 void SendCharacter(char); 601 void SendKick( unsigned long);602 void SendKickNoVote( unsigned long);601 void SendKick(const char* id); 602 void SendKickNoVote(const char* id); 603 603 void SendVoteYes(unsigned long); 604 604 void SendVoteNo(unsigned long); … … 659 659 660 660 void SendBuffer(CBuffer *, unsigned char, 661 unsigned long _nUin = 0, 662 bool bNotIter = true); 661 const char* id = NULL, bool bNotIter = true); 663 662 bool SendBufferToClient(CBuffer *, unsigned char, CChatUser *); 664 663 void SendBuffer_Raw(CBuffer *); -
trunk/licq/include/licq_icqd.h
r6404 r6405 350 350 unsigned long icqFetchAutoResponse(const char *_szId, unsigned long _nPPID, bool bServer = false); 351 351 // Chat Request 352 unsigned long icqChatRequest(const char* id, const char *szReason, 353 unsigned short nLevel, bool bServer); 352 354 unsigned long icqChatRequest(unsigned long nUin, const char *szReason, 355 unsigned short nLevel, bool bServer); 356 unsigned long icqMultiPartyChatRequest(const char* id, 357 const char *szReason, const char *szChatUsers, unsigned short nPort, 353 358 unsigned short nLevel, bool bServer); 354 359 unsigned long icqMultiPartyChatRequest(unsigned long nUin, 355 360 const char *szReason, const char *szChatUsers, unsigned short nPort, 356 361 unsigned short nLevel, bool bServer); 362 void icqChatRequestRefuse(const char* id, const char* szReason, 363 unsigned short nSequence, const unsigned long nMsgID[], bool bDirect); 357 364 void icqChatRequestRefuse(unsigned long nUin, const char *szReason, 358 365 unsigned short nSequence, const unsigned long nMsgID[], bool bDirect); 366 void icqChatRequestAccept(const char* id, unsigned short nPort, 367 const char* szClients, unsigned short nSequence, 368 const unsigned long nMsgID[], bool bDirect); 359 369 void icqChatRequestAccept(unsigned long nUin, unsigned short nPort, 360 370 const char* szClients, unsigned short nSequence, 361 371 const unsigned long nMsgID[], bool bDirect); 372 void icqChatRequestCancel(const char* id, unsigned short nSequence); 362 373 void icqChatRequestCancel(unsigned long nUin, unsigned short nSequence); 363 374 // File Transfer … … 468 479 unsigned long icqAuthorizeRefuse(unsigned long nUin, const char *szMessage); 469 480 unsigned long icqAuthorizeRefuse(const char *szId, const char *szMessage); 481 void icqRequestAuth(const char* id, const char *_szMessage); 470 482 void icqRequestAuth(unsigned long _nUin, const char *_szMessage); 471 483 void icqAlertUser(unsigned long _nUin); … … 594 606 595 607 // SMS 608 unsigned long icqSendSms(const char* id, unsigned long ppid, 609 const char* number, const char* message); 596 610 unsigned long icqSendSms(const char *szNumber, const char *szMessage, 597 611 unsigned long nUin); … … 805 819 void RejectEvent(const char* id, CUserEvent* e); 806 820 ICQUser *FindUserForInfoUpdate(const char *szId, ICQEvent *e, const char *); 821 std::string FindUserByCellular(const char* cellular); 807 822 unsigned long FindUinByCellular(const char *_szCellular); 808 823 -
trunk/licq/include/licq_message.h
r6347 r6405 477 477 { 478 478 public: 479 #if 0480 479 CEventUnknownSysMsg(unsigned short _nSubCommand, 481 480 unsigned short _nCommand, const char *_szId, unsigned long _nPPID, 482 481 const char *_szMsg, 483 482 time_t _tTime, unsigned long _nFlags); 484 #endif485 CEventUnknownSysMsg(unsigned short _nSubCommand,486 unsigned short _nCommand, unsigned long _nUin,487 const char *_szMsg,488 time_t _tTime, unsigned long _nFlags);489 483 ~CEventUnknownSysMsg(); 490 484 virtual CEventUnknownSysMsg* Copy() const; … … 492 486 protected: 493 487 void CreateDescription() const; 494 unsigned long m_nUin;495 488 char *m_szMsg; 496 #if 0497 489 char *m_szId; 498 490 unsigned long m_nPPID; 491 }; 492 499 493 #endif 500 };501 502 #endif -
trunk/licq/include/licq_packets.h
r6402 r6405 944 944 { 945 945 public: 946 CPU_RequestAuth( unsigned long, const char *);946 CPU_RequestAuth(const char* id, const char *); 947 947 }; 948 948 -
trunk/licq/src/fifo.cpp
r6382 r6405 28 28 #include <cstring> 29 29 #include <cctype> 30 #include <string> 30 31 #include <sys/types.h> 31 32 #include <unistd.h> … … 57 58 #include "licq_icqd.h" 58 59 60 using std::string; 59 61 60 62 #define ReportMissingParams(cmdname) \ … … 469 471 if (u != NULL) 470 472 { 471 const char *szNumber = u->GetCellularNumber(); 472 if (strlen(szNumber)) 473 d->icqSendSms(szNumber, argv[2], u->Uin() ); 473 string number = u->GetCellularNumber(); 474 gUserManager.DropUser(u); 475 if (!number.empty()) 476 d->icqSendSms(szId, nPPID, number.c_str(), argv[2]); 474 477 else 475 478 gLog.Error("%sUnable to send SMS to %s, no SMS number found.\n", 476 479 L_ERRORxSTR, szId); 477 478 gUserManager.DropUser(u);479 480 } 480 481 } … … 501 502 } 502 503 503 ICQOwner* owner = gUserManager.FetchOwner(LICQ_PPID, LOCK_R); 504 d->icqSendSms(argv[1], argv[2], owner->Uin()); 505 gUserManager.DropOwner(owner); 504 string id = gUserManager.OwnerId(LICQ_PPID); 505 d->icqSendSms(id.c_str(), LICQ_PPID, argv[1], argv[2]); 506 506 return 0; 507 507 } -
trunk/licq/src/history.cpp
r6177 r6405 17 17 #include <sys/types.h> 18 18 #include <fcntl.h> 19 #include <string> 19 20 20 21 // Localization … … 39 40 40 41 #define MAX_HISTORY_MSG_SIZE 8192 42 43 using std::string; 41 44 42 45 CUserHistory::CUserHistory() … … 250 253 { 251 254 GET_VALID_LINE_OR_BREAK; 252 unsigned long nUin = atol(&szResult[1]);255 char* id = strdup(&szResult[1]); 253 256 GET_VALID_LINE_OR_BREAK; 254 257 char *szAlias = strdup(&szResult[1]); … … 260 263 char *szEmail = strdup(&szResult[1]); 261 264 GET_VALID_LINES; 262 e = new CEventAuthRequest(nUin, szAlias, szFName, szLName, szEmail, szMsg, 263 nCommand, tTime, nFlags); 265 e = new CEventAuthRequest(id, LICQ_PPID, szAlias, szFName, szLName, 266 szEmail, szMsg, nCommand, tTime, nFlags); 267 free(id); 264 268 free(szAlias); 265 269 free(szFName); … … 271 275 { 272 276 GET_VALID_LINE_OR_BREAK; 273 unsigned long nUin = atol(&szResult[1]); 274 GET_VALID_LINES; 275 e = new CEventAuthGranted(nUin, szMsg, nCommand, tTime, nFlags); 277 char* id = strdup(&szResult[1]); 278 GET_VALID_LINES; 279 e = new CEventAuthGranted(id, LICQ_PPID, szMsg, nCommand, tTime, nFlags); 280 free(id); 276 281 break; 277 282 } … … 279 284 { 280 285 GET_VALID_LINE_OR_BREAK; 281 unsigned long nUin = atol(&szResult[1]); 282 GET_VALID_LINES; 283 e = new CEventAuthRefused(nUin, szMsg, nCommand, tTime, nFlags); 286 char* id = strdup(&szResult[1]); 287 GET_VALID_LINES; 288 e = new CEventAuthRefused(id, LICQ_PPID, szMsg, nCommand, tTime, nFlags); 289 free(id); 284 290 break; 285 291 } … … 287 293 { 288 294 GET_VALID_LINE_OR_BREAK; 289 unsigned long nUin = atol(&szResult[1]);295 char* id = strdup(&szResult[1]); 290 296 GET_VALID_LINE_OR_BREAK; 291 297 char *szAlias = strdup(&szResult[1]); … … 296 302 GET_VALID_LINE_OR_BREAK; 297 303 char *szEmail = strdup(&szResult[1]); 298 e = new CEventAdded(nUin, szAlias, szFName, szLName, szEmail,304 e = new CEventAdded(id, LICQ_PPID, szAlias, szFName, szLName, szEmail, 299 305 nCommand, tTime, nFlags); 306 free(id); 300 307 free(szAlias); 301 308 free(szFName); … … 334 341 ContactList vc; 335 342 bool b = true; 336 unsigned long nUin = 0;343 string id; 337 344 while (true) 338 345 { 339 346 GET_VALID_LINE_OR_BREAK; 340 347 if (b) 341 nUin = atol(&szResult[1]);342 else if ( nUin != 0)343 vc.push_back(new CContact( nUin, &szResult[1]));348 id = &szResult[1]; 349 else if (!id.empty()) 350 vc.push_back(new CContact(id.c_str(), LICQ_PPID, &szResult[1])); 344 351 b = !b; 345 352 } -
trunk/licq/src/icqd-chat.cpp
r6402 r6405 124 124 { 125 125 m_nVersion = u->Version(); 126 m_nUin = u->Uin();127 126 m_szId = strdup(u->IdString()); 127 m_nUin = strtoul(m_szId, NULL, 10); 128 128 m_nPPID = u->PPID(); 129 129 m_nIp = u->Ip(); … … 793 793 bool bTryDirect = true; 794 794 bool bResult = false; 795 ICQUser *temp_user = gUserManager.FetchUser(u->uin, LOCK_R);795 ICQUser* temp_user = gUserManager.FetchUser(u->szId, u->nPPID, LOCK_R); 796 796 if (temp_user != NULL) 797 797 { … … 883 883 u->m_pClient = new CChatClient(); 884 884 u->m_pClient->m_nVersion = s->Version(); 885 u->m_pClient->m_nUin = s->Owner();886 885 u->m_pClient->m_szId = strdup(s->OwnerId()); 886 u->m_pClient->m_nUin = strtoul(u->m_pClient->m_szId, NULL, 10); 887 887 u->m_pClient->m_nPPID = s->OwnerPPID(); 888 888 u->m_pClient->m_nIp = s->RemoteIp(); … … 1090 1090 1091 1091 CPChat_ColorFont pin(u->sock.RecvBuffer()); 1092 u->uin = pin.Uin();1093 1092 u->szId = strdup(pin.Id()); 1093 u->uin = strtoul(u->szId, NULL, 10); 1094 1094 u->nPPID = pin.PPID(); 1095 1095 // m_nSession = pin.Session(); … … 1462 1462 unsigned long nUin = u->chatQueue[0] | (u->chatQueue[1] << 8) | 1463 1463 (u->chatQueue[2] << 16) | (u->chatQueue[3] << 24); 1464 char id[16]; 1465 snprintf(id, 16, "%lu", nUin); 1464 1466 1465 1467 // Deque all the characters … … 1471 1473 for (iter = chatUsers.begin(); iter != chatUsers.end(); ++iter) 1472 1474 { 1473 if ((*iter)->Uin() == nUin)1475 if (strcmp((*iter)->Id(), id) == 0) 1474 1476 break; 1475 1477 } … … 1478 1480 1479 1481 CBuffer bye(4); 1480 SendBuffer(&bye, CHAT_DISCONNECTIONxKICKED, nUin, true);1482 SendBuffer(&bye, CHAT_DISCONNECTIONxKICKED, id, true); 1481 1483 1482 1484 CloseClient(*iter); … … 1749 1751 unsigned long nUin = u->chatQueue[0] | (u->chatQueue[1] << 8) | 1750 1752 (u->chatQueue[2] << 16) | (u->chatQueue[3] << 24); 1753 char id[16]; 1754 snprintf(id, 16, "%lu", nUin); 1751 1755 1752 1756 // Find the user and say bye-bye to him … … 1754 1758 for (iter = chatUsers.begin(); iter != chatUsers.end(); ++iter) 1755 1759 { 1756 if ((*iter)->Uin() == nUin)1760 if (strcmp((*iter)->Id(), id) == 0) 1757 1761 break; 1758 1762 } … … 1761 1765 1762 1766 CBuffer bye(4); 1763 SendBuffer(&bye, CHAT_DISCONNECTIONxKICKED, nUin, true);1767 SendBuffer(&bye, CHAT_DISCONNECTIONxKICKED, id, true); 1764 1768 1765 1769 CloseClient(*iter); … … 1864 1868 //-----CChatManager::SendBuffer---------------------------------------------- 1865 1869 void CChatManager::SendBuffer(CBuffer *b, unsigned char cmd, 1866 unsigned long _nUin, 1867 bool bNotIter) 1870 const char* id, bool bNotIter) 1868 1871 { 1869 1872 ChatUserList::iterator iter; … … 1871 1874 bool ok = false; 1872 1875 1873 if ( _nUin != 0)1876 if (id != NULL) 1874 1877 { 1875 1878 for (u_iter = chatUsers.begin(); u_iter != chatUsers.end(); ++u_iter) 1876 1879 { 1877 if ( (*u_iter)->Uin() == _nUin)1880 if (strcmp((*u_iter)->Id(), id) == 0) 1878 1881 break; 1879 1882 } … … 1888 1891 1889 1892 // Send it to every user 1890 if ( _nUin == 0)1893 if (id == NULL) 1891 1894 { 1892 1895 for (iter = chatUsers.begin(); iter != chatUsers.end(); ++iter) … … 2022 2025 2023 2026 2024 void CChatManager::SendKick(unsigned long _nUin) 2025 { 2027 void CChatManager::SendKick(const char* id) 2028 { 2029 unsigned long _nUin = strtoul(id, NULL, 10); 2030 2026 2031 // Take care of the vote stuff now 2027 2032 // The user we are kicking automatically is a no vote … … 2038 2043 CBuffer buf(4); 2039 2044 buf.PackUnsignedLong(_nUin); 2040 SendBuffer(&buf, CHAT_KICK, _nUin, true); 2041 } 2042 2043 2044 void CChatManager::SendKickNoVote(unsigned long _nUin) 2045 { 2045 SendBuffer(&buf, CHAT_KICK, id, true); 2046 } 2047 2048 2049 void CChatManager::SendKickNoVote(const char *id) 2050 { 2051 unsigned long _nUin = strtoul(id, NULL, 10); 2052 2046 2053 // Tell everyone that this user has been kicked 2047 2054 CBuffer buf_TellAll(6); … … 2049 2056 buf_TellAll.PackChar(0x02); 2050 2057 buf_TellAll.PackChar(0x01); 2051 SendBuffer(&buf_TellAll, CHAT_KICKxPASS, _nUin, true);2058 SendBuffer(&buf_TellAll, CHAT_KICKxPASS, id, true); 2052 2059 2053 2060 // They don't know if there was a vote or not, they just see they've been kicked … … 2055 2062 buf.PackChar(0x02); 2056 2063 buf.PackChar(0x01); 2057 SendBuffer(&buf, CHAT_KICKxYOU, _nUin, false);2064 SendBuffer(&buf, CHAT_KICKxYOU, id, false); 2058 2065 2059 2066 // And close the connection to the kicked user … … 2061 2068 for (iter = chatUsers.begin(); iter != chatUsers.end(); ++iter) 2062 2069 { 2063 if( (*iter)->Uin() == _nUin)2070 if(strcmp((*iter)->Id(), id) == 0) 2064 2071 break; 2065 2072 } … … 2068 2075 2069 2076 CBuffer bye(4); 2070 SendBuffer(&bye, CHAT_DISCONNECTIONxKICKED, _nUin, false);2077 SendBuffer(&bye, CHAT_DISCONNECTIONxKICKED, id, false); 2071 2078 2072 2079 CloseClient(*iter); … … 2247 2254 void CChatManager::FinishKickVote(VoteInfoList::iterator iter, bool bPassed) 2248 2255 { 2256 char voteId[16]; 2257 snprintf(voteId, 16, "%lu", (*iter)->nUin); 2258 2249 2259 // Find the person we are kicking in the ChatUserList 2250 2260 ChatUserList::iterator userIter; 2251 2261 for (userIter = chatUsers.begin(); userIter != chatUsers.end(); ++userIter) 2252 2262 { 2253 if ( (*userIter)->Uin() == (*iter)->nUin)2263 if (strcmp((*userIter)->Id(), voteId) == 0) 2254 2264 break; 2255 2265 } … … 2271 2281 2272 2282 if (bPassed) 2273 SendBuffer(&buf, CHAT_KICKxPASS, (*iter)->nUin, true);2283 SendBuffer(&buf, CHAT_KICKxPASS, voteId, true); 2274 2284 else 2275 SendBuffer(&buf, CHAT_KICKxFAIL, (*iter)->nUin, true);2285 SendBuffer(&buf, CHAT_KICKxFAIL, voteId, true); 2276 2286 2277 2287 // Send the person a notice if they were kicked 2278 2288 if (bPassed) 2279 2289 { 2280 SendBuffer(&buf, CHAT_KICKxYOU, (*iter)->nUin, false);2290 SendBuffer(&buf, CHAT_KICKxYOU, voteId, false); 2281 2291 CloseClient(*userIter); 2282 2292 } … … 2321 2331 if (sz[0] != '\0') nPos += sprintf(&sz[nPos], ", "); 2322 2332 if ((*iter)->Name()[0] == '\0') 2323 nPos += sprintf(&sz[nPos], "% lu", (*iter)->Uin());2333 nPos += sprintf(&sz[nPos], "%s", (*iter)->Id()); 2324 2334 else 2325 2335 nPos += sprintf(&sz[nPos], "%s", (*iter)->Name()); … … 2501 2511 2502 2512 bool bSendIntIp = false; 2503 ICQUser *temp_user = gUserManager.FetchUser(rc->u->Uin(), LOCK_R);2513 ICQUser* temp_user = gUserManager.FetchUser(rc->u->Id(), rc->u->PPID(), LOCK_R); 2504 2514 if (temp_user != NULL) 2505 2515 { -
trunk/licq/src/icqd-srv.cpp
r6404 r6405 1068 1068 void CICQDaemon::icqRequestAuth(unsigned long _nUin, const char *_szMessage) 1069 1069 { 1070 CSrvPacketTcp *p = new CPU_RequestAuth(_nUin, _szMessage); 1070 char id[16]; 1071 snprintf(id, 16, "%lu", _nUin); 1072 icqRequestAuth(id, _szMessage); 1073 } 1074 1075 void CICQDaemon::icqRequestAuth(const char* id, const char *_szMessage) 1076 { 1077 CSrvPacketTcp* p = new CPU_RequestAuth(id, _szMessage); 1071 1078 SendEvent_Server(p); 1072 1079 } … … 1726 1733 unsigned long nUin) 1727 1734 { 1728 CEventSms *ue = new CEventSms(szNumber, szMessage, ICQ_CMDxSND_THRUxSERVER, TIME_NOW, INT_VERSION); 1729 CPU_SendSms *p = new CPU_SendSms(szNumber, szMessage); 1735 char id[16]; 1736 snprintf(id, 16, "%lu", nUin); 1737 return icqSendSms(id, LICQ_PPID, szNumber, szMessage); 1738 } 1739 1740 unsigned long CICQDaemon::icqSendSms(const char* id, unsigned long ppid, 1741 const char* number, const char* message) 1742 { 1743 CEventSms* ue = new CEventSms(number, message, ICQ_CMDxSND_THRUxSERVER, TIME_NOW, INT_VERSION); 1744 CPU_SendSms* p = new CPU_SendSms(number, message); 1730 1745 gLog.Info(tr("%sSending SMS through server (#%hu/#%d)...\n"), L_SRVxSTR, 1731 p->Sequence(), p->SubSequence());1732 ICQEvent *e = SendExpectEvent_Server(nUin, p, ue);1746 p->Sequence(), p->SubSequence()); 1747 ICQEvent* e = SendExpectEvent_Server(id, ppid, p, ue); 1733 1748 if (e != NULL) 1734 1749 return e->EventId(); … … 2171 2186 unsigned long CICQDaemon::FindUinByCellular(const char *szCellular) 2172 2187 { 2188 return strtoul(FindUserByCellular(szCellular).c_str(), NULL, 10); 2189 } 2190 2191 string CICQDaemon::FindUserByCellular(const char *szCellular) 2192 { 2173 2193 char szParsedNumber1[16], szParsedNumber2[16]; 2174 unsigned long nUin = 0;2175 2194 string id; 2195 2176 2196 FOR_EACH_USER_START(LOCK_R) 2177 2197 { … … 2179 2199 ParseDigits(szParsedNumber2, szCellular, 15); 2180 2200 if (!strcmp(szParsedNumber1, szParsedNumber2)) 2181 nUin = strtoul(pUser->IdString(), NULL, 10);2201 id = pUser->IdString(); 2182 2202 } 2183 2203 FOR_EACH_USER_END 2184 2204 2185 return nUin;2205 return id; 2186 2206 } 2187 2207 … … 3773 3793 delete [] buf; 3774 3794 //TODO 3775 CEventUnknownSysMsg *e = new CEventUnknownSysMsg(nTypeMsg, ICQ_CMDxRCV_SYSxMSGxONLINE, 3776 strtoul(szId, (char **)NULL, 10), 3777 szMessage, nTimeSent, 0); 3795 CEventUnknownSysMsg* e = new CEventUnknownSysMsg(nTypeMsg, ICQ_CMDxRCV_SYSxMSGxONLINE, 3796 szId, LICQ_PPID, szMessage, nTimeSent, 0); 3778 3797 3779 3798 ICQOwner *o = gUserManager.FetchOwner(LICQ_PPID, LOCK_W); … … 3856 3875 CEventSms *eSms = (CEventSms *)eEvent; 3857 3876 //TODO 3858 unsigned long nUinSms = FindUinByCellular(eSms->Number());3859 3860 if (nUinSms != 0)3861 {3877 string idSms = FindUserByCellular(eSms->Number()); 3878 3879 if (!idSms.empty()) 3880 { 3862 3881 //TODO 3863 ICQUser* u = gUserManager.FetchUser(nUinSms, LOCK_W);3864 gLog.Info(tr("%sSMS from %s - %s (%lu).\n"), L_SBLANKxSTR, eSms->Number(), 3865 u->GetAlias(), nUinSms);3882 ICQUser* u = gUserManager.FetchUser(idSms.c_str(), LICQ_PPID, LOCK_W); 3883 gLog.Info(tr("%sSMS from %s - %s (%s).\n"), L_SBLANKxSTR, eSms->Number(), 3884 u->GetAlias(), idSms.c_str()); 3866 3885 if (AddUserEvent(u, eEvent)) 3867 3886 m_xOnEventManager.Do(ON_EVENT_SMS, u); … … 4753 4772 unsigned long nUin; 4754 4773 unsigned long nTimeSent; 4755 4774 4756 4775 nUin = msg.UnpackUnsignedLong(); 4776 char id[16]; 4777 snprintf(id, 16, "%lu", nUin); 4757 4778 4758 4779 sendTM.tm_year = msg.UnpackUnsignedShort() - 1900; … … 4808 4829 case ICQ_CMDxSUB_AUTHxREQUEST: 4809 4830 { 4810 gLog.Info(tr("%sOffline authorization request from %lu.\n"), L_SBLANKxSTR, nUin);4811 4831 gLog.Info(tr("%sOffline authorization request from %s.\n"), L_SBLANKxSTR, id); 4832 4812 4833 char **szFields = new char *[6]; // alias, first name, last name, email, auth, comment 4813 4834 … … 4829 4850 gTranslator.ServerToClient (szFields[5]); // comment 4830 4851 4831 CEventAuthRequest *e = new CEventAuthRequest(nUin, szFields[0], szFields[1],4832 szFields[2], szFields[3], szFields[5],4833 ICQ_CMDxRCV_SYSxMSGxOFFLINE, nTimeSent, 0);4834 delete [] szFields;
