Changeset 3487 for branches/protocol_plugin_1_3_0
- Timestamp:
- 05/03/03 09:10:11 (6 years ago)
- Location:
- branches/protocol_plugin_1_3_0/licq
- Files:
-
- 2 modified
-
include/licq_chat.h (modified) (10 diffs)
-
src/icqd-chat.cpp (modified) (22 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/protocol_plugin_1_3_0/licq/include/licq_chat.h
r3197 r3487 189 189 const char *Name() { return m_szName; } 190 190 unsigned long Uin() { return m_nUin; } 191 char *Id() { return m_szId; } 192 unsigned long PPID() { return m_nPPID; } 191 193 unsigned short Port() { return m_nPort; } 192 194 int ColorForeRed() { return m_nColorForeRed; } … … 197 199 int ColorBackBlue() { return m_nColorBackBlue; } 198 200 199 virtual ~CPChat_Color() { if (m_szName != NULL) free(m_szName); } 201 virtual ~CPChat_Color() { if (m_szName != NULL) free(m_szName); if (m_szId != NULL) free(m_szId); } 202 200 203 protected: 201 204 unsigned long m_nUin; 205 char *m_szId; 206 unsigned long m_nPPID; 202 207 char *m_szName; 203 208 unsigned short m_nPort; … … 219 224 CChatClient(); 220 225 CChatClient(ICQUser *); 226 ~CChatClient() { if (m_szId) free(m_szId); } 221 227 222 228 // Initialize from the handshake buffer (does not set the session … … 230 236 unsigned short m_nPort; 231 237 unsigned long m_nUin; 238 char *m_szId; 239 unsigned long m_nPPID; 232 240 unsigned long m_nIp; 233 241 unsigned long m_nIntIp; … … 264 272 CPChat_ColorFont(CBuffer &); 265 273 266 virtual ~CPChat_ColorFont() { if (m_szName != NULL) free (m_szName); if (m_szFontFamily != NULL) free(m_szFontFamily); }274 virtual ~CPChat_ColorFont() { if (m_szName != NULL) free (m_szName); if (m_szFontFamily != NULL) free(m_szFontFamily); if (m_szId != NULL) free(m_szId); } 267 275 268 276 // Accessors 269 277 const char *Name() { return m_szName; } 270 278 unsigned long Uin() { return m_nUin; } 279 char *Id() { return m_szId; } 280 unsigned long PPID() { return m_nPPID; } 271 281 unsigned short Session() { return m_nSession; } 272 282 int ColorForeRed() { return m_nColorForeRed; } … … 290 300 protected: 291 301 unsigned long m_nUin; 302 char *m_szId; 303 unsigned long m_nPPID; 292 304 unsigned short m_nSession; 293 305 char *m_szName; … … 443 455 public: 444 456 unsigned long Uin() { return uin; } 457 char *Id() { return szId; } 458 unsigned long PPID() { return nPPID; } 445 459 unsigned long ToKick() { return nToKick; } 446 460 const char *Name() { return chatname; } … … 458 472 bool Sleep() { return sleep; } 459 473 460 ~CChatUser() { }474 ~CChatUser() {if (szId) free(szId);} 461 475 462 476 protected: … … 464 478 465 479 unsigned long uin; 480 char *szId; 481 unsigned long nPPID; 466 482 unsigned long nToKick; 467 483 char chatname[32]; … … 580 596 int pipe_events[2], pipe_thread[2]; 581 597 unsigned long m_nUin; 598 char *m_szId; 599 unsigned long m_nPPID; 582 600 unsigned short m_nSession; 583 601 ChatUserList chatUsers; -
branches/protocol_plugin_1_3_0/licq/src/icqd-chat.cpp
r3230 r3487 38 38 m_nPort = _nLocalPort; 39 39 m_nUin = gUserManager.OwnerUin(); 40 char szUin[24]; 41 sprintf(szUin, "%lu", m_nUin); 42 m_szId = strdup(szUin); 43 m_nPPID = LICQ_PPID; 40 44 m_nColorForeRed = nColorForeRed; 41 45 m_nColorForeGreen = nColorForeGreen; … … 72 76 b.UnpackUnsignedLong(); 73 77 m_nUin = b.UnpackUnsignedLong(); 78 char szUin[24]; 79 sprintf(szUin, "%lu", m_nUin); 80 m_szId = strdup(szUin); 81 m_nPPID = LICQ_PPID; 74 82 m_szName = strdup(b.UnpackString(buf, sizeof(buf))); 75 83 m_nPort = b.UnpackUnsignedShort(); … … 89 97 CChatClient::CChatClient() 90 98 { 91 m_nVersion = m_nUin = m_n Ip = m_nIntIp = m_nPort = m_nMode99 m_nVersion = m_nUin = m_nPPID = m_nIp = m_nIntIp = m_nPort = m_nMode 92 100 = m_nSession = m_nHandshake = 0; 101 m_szId = NULL; 93 102 } 94 103 … … 98 107 m_nVersion = u->Version(); 99 108 m_nUin = u->Uin(); 109 m_szId = strdup(u->IdString()); 110 m_nPPID = u->PPID(); 100 111 m_nIp = u->Ip(); 101 112 m_nIntIp = u->IntIp(); … … 121 132 b.UnpackUnsignedShort(); 122 133 m_nUin = b.UnpackUnsignedLong(); 134 char szUin[24]; 135 sprintf(szUin, "%lu", m_nUin); 136 m_szId = strdup(szUin); 137 m_nPPID = LICQ_PPID; 123 138 m_nIp = b.UnpackUnsignedLong(); 124 139 m_nIntIp = b.UnpackUnsignedLong(); … … 141 156 b.UnpackUnsignedLong(); 142 157 m_nUin = b.UnpackUnsignedLong(); 158 char szUin[24]; 159 sprintf(szUin, "%lu", m_nUin); 160 m_szId = strdup(szUin); 161 m_nPPID = LICQ_PPID; 143 162 m_nIp = b.UnpackUnsignedLong(); 144 163 m_nIntIp = b.UnpackUnsignedLong(); … … 163 182 b.UnpackUnsignedLong(); 164 183 m_nUin = b.UnpackUnsignedLong(); 184 char szUin[24]; 185 sprintf(szUin, "%lu", m_nUin); 186 m_szId = strdup(szUin); 187 m_nPPID = LICQ_PPID; 165 188 m_nIp = b.UnpackUnsignedLong(); // Will probably be zero... 166 189 m_nIntIp = b.UnpackUnsignedLong(); … … 182 205 m_nVersion = hand.VersionMajor(); 183 206 m_nUin = hand.SourceUin(); 207 char szUin[24]; 208 sprintf(szUin, "%lu", m_nUin); 209 m_szId = strdup(szUin); 210 m_nPPID = LICQ_PPID; 184 211 m_nIntIp = hand.LocalIp(); 185 212 m_nIp = hand.RealIp(); … … 201 228 m_nVersion = hand.VersionMajor(); 202 229 m_nUin = hand.SourceUin(); 230 char szUin[24]; 231 sprintf(szUin, "%lu", m_nUin); 232 m_szId = strdup(szUin); 233 m_nPPID = LICQ_PPID; 203 234 m_nIntIp = hand.LocalIp(); 204 235 m_nIp = hand.RealIp(); … … 226 257 m_nPort = nLocalPort; 227 258 m_nUin = gUserManager.OwnerUin(); 259 char szUin[24]; 260 sprintf(szUin, "%lu", m_nUin); 261 m_szId = strdup(szUin); 262 m_nPPID = LICQ_PPID; 228 263 m_nColorForeRed = nColorForeRed; 229 264 m_nColorForeGreen = nColorForeGreen; … … 293 328 b.UnpackUnsignedLong(); 294 329 m_nUin = b.UnpackUnsignedLong(); 330 char szUin[24]; 331 sprintf(szUin, "%lu", m_nUin); 332 m_szId = strdup(szUin); 333 m_nPPID = LICQ_PPID; 295 334 m_szName = strdup(b.UnpackString(buf, sizeof(buf))); 296 335 m_nColorForeRed = (unsigned char)b.UnpackChar(); … … 523 562 { 524 563 uin = 0; 564 szId = 0; 565 nPPID = 0; 525 566 nToKick = 0; 526 567 state = CHAT_STATE_DISCONNECTED; … … 572 613 573 614 m_nUin = nUin; 615 char szUin[24]; 616 sprintf(szUin, "%lu", m_nUin); 617 m_szId = strdup(szUin); 618 m_nPPID = LICQ_PPID; 619 574 620 // m_nSession = rand(); 575 621 licqDaemon = d; … … 647 693 if (!StartChatServer()) return; 648 694 649 ICQUser *u = gUserManager.FetchUser(m_ nUin, LOCK_R);695 ICQUser *u = gUserManager.FetchUser(m_szId, LICQ_PPID, LOCK_R); 650 696 if (u == NULL) return; 651 697 m_pChatClient = new CChatClient(u); … … 669 715 u->m_pClient->m_nSession = m_nSession; 670 716 u->uin = c->m_nUin; 717 u->szId = strdup(c->m_szId); 718 u->nPPID = c->m_nPPID; 671 719 672 720 bool bSendIntIp = false; … … 720 768 u->m_pClient->m_nVersion = s->Version(); 721 769 u->m_pClient->m_nUin = s->Owner(); 770 u->m_pClient->m_szId = s->OwnerId(); 771 u->m_pClient->m_nPPID = s->OwnerPPID(); 722 772 u->m_pClient->m_nIp = s->RemoteIp(); 723 773 u->m_pClient->m_nIntIp = s->RemoteIp(); … … 730 780 731 781 u->uin = u->m_pClient->m_nUin; 782 u->szId = strdup(u->m_pClient->m_szId); 783 u->nPPID = u->m_pClient->m_nPPID; 732 784 u->state = CHAT_STATE_WAITxFORxCOLOR; 733 785 chatUsers.push_back(u); … … 803 855 break; 804 856 } 805 gLog.Info("%sChat: Received handshake from % ld[v%ld].\n", L_TCPxSTR,806 u->m_pClient->m_ nUin, u->sock.Version());857 gLog.Info("%sChat: Received handshake from %s [v%ld].\n", L_TCPxSTR, 858 u->m_pClient->m_szId, u->sock.Version()); 807 859 u->uin = u->m_pClient->m_nUin; 860 if (u->szId) free(u->szId); 861 u->szId = strdup(u->m_pClient->m_szId); 862 u->nPPID = u->m_pClient->m_nPPID; 808 863 u->state = CHAT_STATE_WAITxFORxCOLOR; 809 864 break; … … 836 891 { 837 892 // Skip this guys client info and anybody we haven't connected to yet 838 if ((*iter)->uin == u->uin || (*iter)->m_pClient->m_nUin == 0) continue; 893 if ((strcmp((*iter)->szId, u->szId) == 0 && (*iter)->nPPID == u->nPPID) 894 || (*iter)->m_pClient->m_szId == 0) continue; 839 895 l.push_back((*iter)->m_pClient); 840 896 } … … 882 938 CPChat_ColorFont pin(u->sock.RecvBuffer()); 883 939 u->uin = pin.Uin(); 940 u->szId = strdup(pin.Id()); 941 u->nPPID = pin.PPID(); 884 942 // m_nSession = pin.Session(); 885 943 … … 916 974 for (iter2 = chatUsers.begin(); iter2 != chatUsers.end(); iter2++) 917 975 { 918 if ((*iter2)->uin == iter->m_nUin) break; 976 if (strcmp((*iter2)->szId, iter->m_szId) == 0 && 977 (*iter2)->nPPID == iter->m_nPPID) break; 919 978 } 920 979 if (iter2 != chatUsers.end()) continue; … … 2262 2321 } 2263 2322 if (iter != cmList.end()) cmList.erase(iter); 2264 } 2265 2323 2324 if (m_szId) free(m_szId); 2325 } 2326
