Changeset 6402 for trunk/licq/src/icqd-tcp.cpp
- Timestamp:
- 07/03/08 05:54:19 (5 months ago)
- Files:
-
- 1 modified
-
trunk/licq/src/icqd-tcp.cpp (modified) (70 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/licq/src/icqd-tcp.cpp
r6382 r6402 1213 1213 * Shake hands on the given socket with the given user. 1214 1214 *-------------------------------------------------------------------------*/ 1215 bool CICQDaemon::Handshake_Send(TCPSocket *s, unsigned long nUin,1215 bool CICQDaemon::Handshake_Send(TCPSocket *s, const char* id, 1216 1216 unsigned short nPort, unsigned short nVersion, bool bConfirm, 1217 1217 unsigned long nId) 1218 1218 { 1219 1219 s->SetVersion(nVersion); 1220 s->SetOwner(nUin); 1220 s->SetOwner(id, LICQ_PPID); 1221 1222 unsigned long nUin = strtoul(id, NULL, 10); 1221 1223 1222 1224 switch (nVersion) … … 1359 1361 * to the global socket manager and to the user. 1360 1362 *----------------------------------------------------------------------------*/ 1361 int CICQDaemon::ConnectToUser( unsigned long nUin, unsigned char nChannel)1362 { 1363 ICQUser *u = gUserManager.FetchUser(nUin, LOCK_W);1363 int CICQDaemon::ConnectToUser(const char* id, unsigned char nChannel) 1364 { 1365 ICQUser* u = gUserManager.FetchUser(id, LICQ_PPID, LOCK_W); 1364 1366 if (u == NULL) return -1; 1365 1367 … … 1370 1372 { 1371 1373 gUserManager.DropUser(u); 1372 gLog.Warn(tr("%sConnection attempted to already connected user (% ld).\n"),1373 L_WARNxSTR, nUin);1374 gLog.Warn(tr("%sConnection attempted to already connected user (%s).\n"), 1375 L_WARNxSTR, id); 1374 1376 return sd; 1375 1377 } … … 1387 1389 struct timeval tv = { 2, 0 }; 1388 1390 if (select(0, NULL, NULL, NULL, &tv) == -1 && errno == EINTR) return -1; 1389 u = gUserManager.FetchUser( nUin, LOCK_W);1391 u = gUserManager.FetchUser(id, LICQ_PPID, LOCK_W); 1390 1392 if (u == NULL) return -1; 1391 1393 } … … 1395 1397 if (sd != -1) return sd; 1396 1398 1397 TCPSocket *s = new TCPSocket(nUin);1398 if (!OpenConnectionToUser( nUin, s, nPort))1399 { 1400 u = gUserManager.FetchUser( nUin, LOCK_W);1399 TCPSocket* s = new TCPSocket(id, LICQ_PPID); 1400 if (!OpenConnectionToUser(id, s, nPort)) 1401 { 1402 u = gUserManager.FetchUser(id, LICQ_PPID, LOCK_W); 1401 1403 if (u != NULL) u->SetConnectionInProgress(false); 1402 1404 gUserManager.DropUser(u); … … 1405 1407 } 1406 1408 s->SetChannel(nChannel); 1407 1408 gLog.Info(tr("%sShaking hands with %s (% ld) [v%d].\n"), L_TCPxSTR,1409 szAlias, nUin, nVersion);1409 1410 gLog.Info(tr("%sShaking hands with %s (%s) [v%d].\n"), L_TCPxSTR, 1411 szAlias, id, nVersion); 1410 1412 nPort = s->LocalPort(); 1411 1413 1412 if (!Handshake_Send(s, nUin, 0, nVersion))1413 { 1414 u = gUserManager.FetchUser( nUin, LOCK_W);1414 if (!Handshake_Send(s, id, 0, nVersion)) 1415 { 1416 u = gUserManager.FetchUser(id, LICQ_PPID, LOCK_W); 1415 1417 if (u != NULL) u->SetConnectionInProgress(false); 1416 1418 gUserManager.DropUser(u); … … 1422 1424 1423 1425 // Set the socket descriptor in the user 1424 u = gUserManager.FetchUser( nUin, LOCK_W);1426 u = gUserManager.FetchUser(id, LICQ_PPID, LOCK_W); 1425 1427 if (u == NULL) return -1; 1426 1428 u->SetSocketDesc(s); … … 1445 1447 * Connects a socket to a given user on a given port. 1446 1448 *----------------------------------------------------------------------------*/ 1447 bool CICQDaemon::OpenConnectionToUser( unsigned long nUin, TCPSocket *sock,1449 bool CICQDaemon::OpenConnectionToUser(const char* id, TCPSocket *sock, 1448 1450 unsigned short nPort) 1449 1451 { 1450 ICQUser *u = gUserManager.FetchUser(nUin, LOCK_R);1452 ICQUser* u = gUserManager.FetchUser(id, LICQ_PPID, LOCK_R); 1451 1453 if (u == NULL) return false; 1452 1454 … … 1532 1534 * to the global socket manager and to the user. 1533 1535 *----------------------------------------------------------------------------*/ 1534 int CICQDaemon::ReverseConnectToUser( unsigned long nUin, unsigned long nIp,1536 int CICQDaemon::ReverseConnectToUser(const char* id, unsigned long nIp, 1535 1537 unsigned short nPort, unsigned short nVersion, unsigned short nFailedPort, 1536 1538 unsigned long nId, unsigned long nMsgID1, unsigned long nMsgID2) … … 1551 1553 } 1552 1554 1553 TCPSocket *s = new TCPSocket(nUin);1555 TCPSocket* s = new TCPSocket(id, LICQ_PPID); 1554 1556 char buf[32]; 1555 1557 1556 gLog.Info(tr("%sReverse connecting to % lu at %s:%d.\n"), L_TCPxSTR, nUin,1558 gLog.Info(tr("%sReverse connecting to %s at %s:%d.\n"), L_TCPxSTR, id, 1557 1559 ip_ntoa(nIp, buf), nPort); 1558 1560 … … 1563 1565 { 1564 1566 char buf[128]; 1565 gLog.Warn(tr("%sReverse connect to %lu failed:\n%s%s.\n"), L_WARNxSTR, 1566 nUin, L_BLANKxSTR, s->ErrorStr(buf, 128)); 1567 1568 CPU_ReverseConnectFailed *p = new CPU_ReverseConnectFailed(nUin, nMsgID1, 1569 nMsgID2, nPort, 1570 nFailedPort, nId); 1567 gLog.Warn(tr("%sReverse connect to %s failed:\n%s%s.\n"), L_WARNxSTR, 1568 id, L_BLANKxSTR, s->ErrorStr(buf, 128)); 1569 1570 CPU_ReverseConnectFailed* p = new CPU_ReverseConnectFailed(id, nMsgID1, 1571 nMsgID2, nPort, nFailedPort, nId); 1571 1572 SendEvent_Server(p); 1572 1573 return -1; 1573 1574 } 1574 1575 1575 gLog.Info(tr("%sReverse shaking hands with % lu.\n"), L_TCPxSTR, nUin);1576 gLog.Info(tr("%sReverse shaking hands with %s.\n"), L_TCPxSTR, id); 1576 1577 bool bConfirm = ftm == NULL && cm == NULL; 1577 1578 … … 1579 1580 nVersion = VersionToUse(nVersion); 1580 1581 1581 if (!Handshake_Send(s, nUin, 0, nVersion, bConfirm, nId))1582 if (!Handshake_Send(s, id, 0, nVersion, bConfirm, nId)) 1582 1583 { 1583 1584 delete s; … … 1605 1606 { 1606 1607 // Set the socket descriptor in the user if this user is on our list 1607 ICQUser *u = gUserManager.FetchUser(nUin, LOCK_W);1608 ICQUser* u = gUserManager.FetchUser(id, LICQ_PPID, LOCK_W); 1608 1609 if (u != NULL) 1609 1610 { … … 1625 1626 bool CICQDaemon::ProcessTcpPacket(TCPSocket *pSock) 1626 1627 { 1627 unsigned long nUin,senderIp, localIp,1628 unsigned long senderIp, localIp, 1628 1629 senderPort, junkLong, nPort, nPortReversed; 1629 1630 unsigned short version, command, junkShort, newCommand, messageLen, … … 1632 1633 bool errorOccured = false; 1633 1634 char *message = 0; 1635 char id[16] = ""; 1634 1636 1635 1637 // only used for v7,v8 … … 1647 1649 case 3: 1648 1650 { 1651 unsigned long nUin; 1649 1652 packet >> nUin 1650 1653 >> version … … 1655 1658 >> messageLen // length of incoming message 1656 1659 ; 1660 snprintf(id, 15, "%lu", nUin); 1657 1661 break; 1658 1662 } … … 1667 1671 return false; 1668 1672 } 1673 unsigned long nUin; 1669 1674 packet >> nUin 1670 1675 >> version … … 1676 1681 >> messageLen // length of incoming message 1677 1682 ; 1683 snprintf(id, 15, "%lu", nUin); 1678 1684 break; 1679 1685 } 1680 1686 case 6: 1681 1687 { 1682 nUin = pSock->Owner();1688 strncpy(id, pSock->OwnerId(), 15); id[15] = '\0'; 1683 1689 if (!Decrypt_Client(&packet, 6)) 1684 1690 { … … 1703 1709 case 8: 1704 1710 { 1705 nUin = pSock->Owner();1711 strncpy(id, pSock->OwnerId(), 15); id[15] = '\0'; 1706 1712 if (!Decrypt_Client(&packet, nInVersion)) 1707 1713 { … … 1725 1731 msgFlags = packet.UnpackUnsignedShort(); 1726 1732 packet >> messageLen; 1727 1733 1728 1734 // Stupid AOL 1729 ICQUser *u = gUserManager.FetchUser(nUin, LOCK_R);1735 ICQUser* u = gUserManager.FetchUser(id, LICQ_PPID, LOCK_R); 1730 1736 if (u && (u->LicqVersion() == 0 || u->LicqVersion() >= 1022)) 1731 1737 { … … 1751 1757 1752 1758 // Some simple validation of the packet 1753 if ( nUin == 0|| command == 0)1759 if (id[0] == '\0' || command == 0) 1754 1760 { 1755 1761 char *buf; 1756 gLog.Unknown("%sInvalid TCP packet (uin: % 08lx, cmd: %04x):\n%s\n",1757 L_UNKNOWNxSTR, nUin, command, packet.print(buf));1762 gLog.Unknown("%sInvalid TCP packet (uin: %s, cmd: %04x):\n%s\n", 1763 L_UNKNOWNxSTR, id, command, packet.print(buf)); 1758 1764 delete [] buf; 1759 1765 return false; 1760 1766 } 1761 1767 1762 if ( nUin == gUserManager.icqOwnerUin() || nUin != pSock->Owner())1768 if (gUserManager.FindOwner(id, LICQ_PPID) != NULL || strcmp(id, pSock->OwnerId()) != 0) 1763 1769 { 1764 1770 char *buf; 1765 if ( nUin == gUserManager.icqOwnerUin())1771 if (gUserManager.FindOwner(id, LICQ_PPID) != NULL) 1766 1772 gLog.Warn(tr("%sTCP message from self (probable spoof):\n%s\n"), L_WARNxSTR, packet.print(buf)); 1767 1773 else 1768 gLog.Warn(tr("%sTCP message from invalid UIN (% ld, expect %ld):\n%s\n"),1769 L_WARNxSTR, nUin, pSock->Owner(), packet.print(buf));1774 gLog.Warn(tr("%sTCP message from invalid UIN (%s, expect %s):\n%s\n"), 1775 L_WARNxSTR, id, pSock->OwnerId(), packet.print(buf)); 1770 1776 delete [] buf; 1771 1777 return false; … … 1779 1785 // find which user was sent 1780 1786 bool bNewUser = false; 1781 ICQUser *u = gUserManager.FetchUser(nUin, LOCK_W);1787 ICQUser* u = gUserManager.FetchUser(id, LICQ_PPID, LOCK_W); 1782 1788 if (u == NULL) 1783 1789 { 1784 u = new ICQUser( nUin);1790 u = new ICQUser(id, LICQ_PPID); 1785 1791 u->SetSocketDesc(pSock); 1786 1792 bNewUser = true; … … 1923 1929 nMask |= licqVersion; 1924 1930 if (licqChar == 'L') 1925 gLog.Info(tr("%sMessage from %s (%ld) [Licq %s].\n"), L_TCPxSTR, u->GetAlias(),1926 nUin, CUserEvent::LicqVersionToString(licqVersion));1927 else1928 gLog.Info(tr("%sMessage from %s (%ld).\n"), L_TCPxSTR, u->GetAlias(), nUin);1931 gLog.Info(tr("%sMessage from %s (%s) [Licq %s].\n"), L_TCPxSTR, 1932 u->GetAlias(), id, CUserEvent::LicqVersionToString(licqVersion)); 1933 else 1934 gLog.Info(tr("%sMessage from %s (%s).\n"), L_TCPxSTR, u->GetAlias(), id); 1929 1935 1930 1936 CPT_AckGeneral p(newCommand, theSequence, true, bAccept, u); … … 1951 1957 // FIXME should either refuse the event or have a special auto response 1952 1958 // for rejected events instead of pretending to accept the user 1953 RejectEvent(nUin, e);1959 RejectEvent(id, e); 1954 1960 break; 1955 1961 } … … 1982 1988 packet >> licqChar >> licqVersion; 1983 1989 if (licqChar == 'L') 1984 gLog.Info(tr("%s%s (%ld) requested auto response [Licq %s].\n"), L_TCPxSTR,1985 u->GetAlias(), nUin, CUserEvent::LicqVersionToString(licqVersion));1986 else1987 gLog.Info(tr("%s%s (%ld) requested auto response.\n"), L_TCPxSTR, u->GetAlias(), nUin);1990 gLog.Info(tr("%s%s (%s) requested auto response [Licq %s].\n"), L_TCPxSTR, 1991 u->GetAlias(), id, CUserEvent::LicqVersionToString(licqVersion)); 1992 else 1993 gLog.Info(tr("%s%s (%s) requested auto response.\n"), L_TCPxSTR, u->GetAlias(), id); 1988 1994 1989 1995 CPT_AckGeneral p(newCommand, theSequence, true, false, u); … … 1993 1999 u->SetLastCheckedAutoResponse(); 1994 2000 1995 PushPluginSignal(new CICQSignal(SIGNAL_UPDATExUSER, USER_EVENTS, nUin));2001 PushPluginSignal(new CICQSignal(SIGNAL_UPDATExUSER, USER_EVENTS, id, LICQ_PPID)); 1996 2002 break; 1997 2003 } … … 2021 2027 nMask |= licqVersion; 2022 2028 if (licqChar == 'L') 2023 gLog.Info(tr("%sURL from %s (%ld) [Licq %s].\n"), L_TCPxSTR, u->GetAlias(),2024 nUin, CUserEvent::LicqVersionToString(licqVersion));2025 else2026 gLog.Info(tr("%sURL from %s (%ld).\n"), L_TCPxSTR, u->GetAlias(), nUin);2029 gLog.Info(tr("%sURL from %s (%s) [Licq %s].\n"), L_TCPxSTR, u->GetAlias(), 2030 id, CUserEvent::LicqVersionToString(licqVersion)); 2031 else 2032 gLog.Info(tr("%sURL from %s (%s).\n"), L_TCPxSTR, u->GetAlias(), id); 2027 2033 2028 2034 CEventUrl *e = CEventUrl::Parse(message, ICQ_CMDxTCP_START, TIME_NOW, nMask); … … 2054 2060 if (Ignore(IGNORE_NEWUSERS)) 2055 2061 { 2056 RejectEvent(nUin, e);2062 RejectEvent(id, e); 2057 2063 break; 2058 2064 } … … 2090 2096 nMask |= licqVersion; 2091 2097 if (licqChar == 'L') 2092 gLog.Info(tr("%sContact list from %s (%ld) [Licq %s].\n"), L_TCPxSTR,2093 u->GetAlias(), nUin, CUserEvent::LicqVersionToString(licqVersion));2094 else2095 gLog.Info(tr("%sContact list from %s (%ld).\n"), L_TCPxSTR, u->GetAlias(),2096 nUin);2098 gLog.Info(tr("%sContact list from %s (%s) [Licq %s].\n"), L_TCPxSTR, 2099 u->GetAlias(), id, CUserEvent::LicqVersionToString(licqVersion)); 2100 else 2101 gLog.Info(tr("%sContact list from %s (%s).\n"), L_TCPxSTR, 2102 u->GetAlias(), id); 2097 2103 2098 2104 CEventContactList *e = CEventContactList::Parse(message, ICQ_CMDxTCP_START, TIME_NOW, nMask); … … 2124 2130 if (Ignore(IGNORE_NEWUSERS)) 2125 2131 { 2126 RejectEvent(nUin, e);2132 RejectEvent(id, e); 2127 2133 break; 2128 2134 } … … 2157 2163 2158 2164 if (licqChar == 'L') 2159 gLog.Info(tr("%sChat request from %s (%ld) [Licq %s].\n"), L_TCPxSTR,2160 u->GetAlias(), nUin, CUserEvent::LicqVersionToString(licqVersion));2161 else2162 gLog.Info(tr("%sChat request from %s (%ld).\n"), L_TCPxSTR, u->GetAlias(),2163 nUin);2165 gLog.Info(tr("%sChat request from %s (%s) [Licq %s].\n"), L_TCPxSTR, 2166 u->GetAlias(), id, CUserEvent::LicqVersionToString(licqVersion)); 2167 else 2168 gLog.Info(tr("%sChat request from %s (%s).\n"), L_TCPxSTR, 2169 u->GetAlias(), id); 2164 2170 2165 2171 // translating string with translation table … … 2173 2179 if (Ignore(IGNORE_NEWUSERS)) 2174 2180 { 2175 RejectEvent(nUin, e);2181 RejectEvent(id, e); 2176 2182 break; 2177 2183 } … … 2211 2217 2212 2218 if (licqChar == 'L') 2213 gLog.Info(tr("%sFile transfer request from %s (%ld) [Licq %s].\n"),2214 L_TCPxSTR, u->GetAlias(), nUin, CUserEvent::LicqVersionToString(licqVersion));2215 else2216 gLog.Info(tr("%sFile transfer request from %s (%ld).\n"), L_TCPxSTR,2217 u->GetAlias(), nUin);2219 gLog.Info(tr("%sFile transfer request from %s (%s) [Licq %s].\n"), 2220 L_TCPxSTR, u->GetAlias(), id, CUserEvent::LicqVersionToString(licqVersion)); 2221 else 2222 gLog.Info(tr("%sFile transfer request from %s (%s).\n"), L_TCPxSTR, 2223 u->GetAlias(), id); 2218 2224 2219 2225 ConstFileList filelist; … … 2230 2236 if (Ignore(IGNORE_NEWUSERS)) 2231 2237 { 2232 RejectEvent(nUin, e);2238 RejectEvent(id, e); 2233 2239 break; 2234 2240 } … … 2297 2303 packet.incDataPosRead(2); // reversed port (BE) 2298 2304 2299 gLog.Info(tr("%sFile transfer request from %s (%ld).\n"), L_TCPxSTR,2300 u->GetAlias(), nUin);2305 gLog.Info(tr("%sFile transfer request from %s (%s).\n"), 2306 L_TCPxSTR, u->GetAlias(), id); 2301 2307 2302 2308 ConstFileList filelist; … … 2311 2317 if (Ignore(IGNORE_NEWUSERS)) 2312 2318 { 2313 RejectEvent(nUin, e);2319 RejectEvent(id, e); 2314 2320 break; 2315 2321 } … … 2332 2338 nPort = nPortReversed; 2333 2339 2334 gLog.Info(tr("%sChat request from %s (%ld).\n"), L_TCPxSTR,2335 u->GetAlias(), nUin);2336 2340 gLog.Info(tr("%sChat request from %s (%s).\n"), L_TCPxSTR, 2341 u->GetAlias(), id); 2342 2337 2343 // translating string with translation table 2338 2344 gTranslator.ServerToClient(szMessage); … … 2343 2349 if (Ignore(IGNORE_NEWUSERS)) 2344 2350 { 2345 RejectEvent(nUin, e);2351 RejectEvent(id, e); 2346 2352 break; 2347 2353 } … … 2356 2362 case ICQ_CMDxSUB_URL: 2357 2363 { 2358 gLog.Info(tr("%sURL from %s (%ld).\n"), L_TCPxSTR, u->GetAlias(), nUin);2364 gLog.Info(tr("%sURL from %s (%s).\n"), L_TCPxSTR, u->GetAlias(), id); 2359 2365 CEventUrl *e = CEventUrl::Parse(szMessage, ICQ_CMDxTCP_START, 2360 2366 TIME_NOW, nMask); … … 2373 2379 if (Ignore(IGNORE_NEWUSERS)) 2374 2380 { 2375 RejectEvent(nUin, e);2381 RejectEvent(id, e); 2376 2382 break; 2377 2383 } … … 2386 2392 case ICQ_CMDxSUB_CONTACTxLIST: 2387 2393 { 2388 gLog.Info(tr("%sContact list from %s (%ld).\n"), L_TCPxSTR,2389 u->GetAlias(), nUin);2394 gLog.Info(tr("%sContact list from %s (%s).\n"), L_TCPxSTR, 2395 u->GetAlias(), id); 2390 2396 CEventContactList *e = CEventContactList::Parse(szMessage, 2391 2397 ICQ_CMDxTCP_START, … … 2405 2411 if (Ignore(IGNORE_NEWUSERS)) 2406 2412 { 2407 RejectEvent(nUin, e);2413 RejectEvent(id, e); 2408 2414 break; 2409 2415 } … … 2424 2430 case ICQ_CMDxSUB_SECURExOLD: 2425 2431 { 2426 gLog.Info(tr("%sReceived old-style key request from %s (%ld) but we do not support it.\n"),2427 L_TCPxSTR, u->GetAlias(), nUin);2432 gLog.Info(tr("%sReceived old-style key request from %s (%s) but we do not support it.\n"), 2433 L_TCPxSTR, u->GetAlias(), id); 2428 2434 // Send the nack back 2429 2435 CPT_AckOldSecureChannel p(theSequence, u); … … 2449 2455 2450 2456 if (licqChar == 'L') 2451 gLog.Info(tr("%sSecure channel request from %s (%ld) [Licq %s].\n"),2452 L_TCPxSTR, u->GetAlias(), nUin, CUserEvent::LicqVersionToString(licqVersion));2453 else2454 gLog.Info(tr("%sSecure channel request from %s (%ld).\n"), L_TCPxSTR,2455 u->GetAlias(), nUin);2457 gLog.Info(tr("%sSecure channel request from %s (%s) [Licq %s].\n"), 2458 L_TCPxSTR, u->GetAlias(), id, CUserEvent::LicqVersionToString(licqVersion)); 2459 else 2460 gLog.Info(tr("%sSecure channel request from %s (%s).\n"), L_TCPxSTR, 2461 u->GetAlias(), id); 2456 2462 2457 2463 CPT_AckOpenSecureChannel p(theSequence, true, u); … … 2475 2481 2476 2482 u->SetSendServer(false); 2477 PushPluginSignal(new CICQSignal(SIGNAL_UPDATExUSER, USER_SECURITY, nUin, 1));2478 2479 gLog.Info(tr("%sSecure channel established with %s (%ld).\n"),2480 L_SSLxSTR, u->GetAlias(), nUin);2483 PushPluginSignal(new CICQSignal(SIGNAL_UPDATExUSER, USER_SECURITY, id, LICQ_PPID, 1)); 2484 2485 gLog.Info(tr("%sSecure channel established with %s (%s).\n"), 2486 L_SSLxSTR, u->GetAlias(), id); 2481 2487 2482 2488 break; 2483 2489 2484 2490 #else // We do not support OpenSSL 2485 gLog.Info(tr("%sReceived secure channel request from %s (%ld) but we do not support OpenSSL.\n"),2486 L_TCPxSTR, u->GetAlias(), nUin);2491 gLog.Info(tr("%sReceived secure channel request from %s (%s) but we do not support OpenSSL.\n"), 2492 L_TCPxSTR, u->GetAlias(), id); 2487 2493 // Send the nack back 2488 2494 CPT_AckOpenSecureChannel p(theSequence, false, u); … … 2510 2516 2511 2517 if (licqChar == 'L') 2512 gLog.Info(tr("%sSecure channel closed by %s (%ld) [Licq %s].\n"),2513 L_TCPxSTR, u->GetAlias(), nUin, CUserEvent::LicqVersionToString(licqVersion));2514 else2515 gLog.Info(tr("%sSecure channel closed by %s (%ld).\n"), L_TCPxSTR,2516 u->GetAlias(), nUin);2518 gLog.Info(tr("%sSecure channel closed by %s (%s) [Licq %s].\n"), 2519 L_TCPxSTR, u->GetAlias(), id, CUserEvent::LicqVersionToString(licqVersion)); 2520 else 2521 gLog.Info(tr("%sSecure channel closed by %s (%s).\n"), L_TCPxSTR, 2522 u->GetAlias(), id); 2517 2523 2518 2524 // send ack … … 2522 2528 pSock->SecureStop(); 2523 2529 u->SetSecure(false); 2524 PushPluginSignal(new CICQSignal(SIGNAL_UPDATExUSER, USER_SECURITY, nUin, 0));2530 PushPluginSignal(new CICQSignal(SIGNAL_UPDATExUSER, USER_SECURITY, id, LICQ_PPID, 0)); 2525 2531 break; 2526 2532 2527 2533 #else // We do not support OpenSSL 2528 gLog.Info(tr("%sReceived secure channel close from %s (%ld) but we do not support OpenSSL.\n"),2529 L_TCPxSTR, u->GetAlias(), nUin);2534 gLog.Info(tr("%sReceived secure channel close from %s (%s) but we do not support OpenSSL.\n"), 2535 L_TCPxSTR, u->GetAlias(), id); 2530 2536 // Send the nack back 2531 2537 CPT_AckCloseSecureChannel p(theSequence, u); … … 2736 2742 if (licqChar == 'L') sprintf(l, " [Licq %s]", 2737 2743 CUserEvent::LicqVersionToString(licqVersion)); 2738 gLog.Info(tr("%sSecure channel response from %s (%ld)%s.\n"), L_TCPxSTR,2739 u->GetAlias(), nUin, l);2744 gLog.Info(tr("%sSecure channel response from %s (%s)%s.\n"), L_TCPxSTR, 2745 u->GetAlias(), id, l); 2740 2746 2741 2747 ICQEvent *e = NULL; … … 2744 2750 if (message[0] == '\0') 2745 2751 { 2746 gLog.Info(tr("%s%s (%ld) does not support OpenSSL.\n"), L_TCPxSTR,2747 u->GetAlias(), nUin);2752 gLog.Info(tr("%s%s (%s) does not support OpenSSL.\n"), L_TCPxSTR, 2753 u->GetAlias(), id); 2748 2754 u->SetSecure(false); 2749 PushPluginSignal(new CICQSignal(SIGNAL_UPDATExUSER, USER_SECURITY, nUin, 0));2755 PushPluginSignal(new CICQSignal(SIGNAL_UPDATExUSER, USER_SECURITY, id, LICQ_PPID, 0)); 2750 2756 // find the event, fail it 2751 2757 e = DoneEvent(sockfd, theSequence, EVENT_FAILED); … … 2759 2765 if (e == NULL) 2760 2766 { 2761 gLog.Warn(tr("%sSecure channel response from %s (%ld) when no request in progress.\n"),2762 L_WARNxSTR, u->GetAlias(), nUin);2767 gLog.Warn(tr("%sSecure channel response from %s (%s) when no request in progress.\n"), 2768 L_WARNxSTR, u->GetAlias(), id); 2763 2769 // Close the connection as we are in trouble 2764 2770 u->SetSecure(false); 2765 2771 gUserManager.DropUser(u); 2766
