Changeset 6382 for trunk/licq/src/icqd-srv.cpp
- Timestamp:
- 07/01/08 18:58:01 (5 months ago)
- Files:
-
- 1 modified
-
trunk/licq/src/icqd-srv.cpp (modified) (51 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/licq/src/icqd-srv.cpp
r6357 r6382 500 500 void CICQDaemon::icqAlertUser(const char* id, unsigned long ppid) 501 501 { 502 ICQOwner *o = gUserManager.FetchOwner(LOCK_R);502 ICQOwner* o = gUserManager.FetchOwner(LICQ_PPID, LOCK_R); 503 503 char sz[MAX_MESSAGE_SIZE]; 504 504 sprintf(sz, "%s%c%s%c%s%c%s%c%c%c", o->GetAlias(), 0xFE, o->GetFirstName(), 505 505 0xFE, o->GetLastName(), 0xFE, o->GetEmailPrimary(), 0xFE, 506 506 o->GetAuthorization() ? '0' : '1', 0xFE); 507 gUserManager.DropOwner( );507 gUserManager.DropOwner(o); 508 508 CPU_ThroughServer *p = new CPU_ThroughServer(id, ICQ_CMDxSUB_ADDEDxTOxLIST, sz); 509 509 gLog.Info(tr("%sAlerting user they were added (#%hu)...\n"), L_SRVxSTR, p->Sequence()); … … 659 659 if (m_eStatus == STATUS_ONLINE) 660 660 { 661 ICQOwner *o = gUserManager.FetchOwner(LOCK_R);661 ICQOwner* o = gUserManager.FetchOwner(LICQ_PPID, LOCK_R); 662 662 status = o->StatusFull(); 663 gUserManager.DropOwner( );663 gUserManager.DropOwner(o); 664 664 } 665 665 else … … 783 783 bool isLogon = o->StatusOffline(); 784 784 int nPDINFO = o->GetPDINFO(); 785 gUserManager.DropOwner( LICQ_PPID);785 gUserManager.DropOwner(o); 786 786 787 787 if (nPDINFO == 0) 788 788 { 789 789 icqCreatePDINFO(); 790 790 791 791 o = gUserManager.FetchOwner(LICQ_PPID, LOCK_R); 792 792 nPDINFO = o->GetPDINFO(); 793 gUserManager.DropOwner( LICQ_PPID);794 } 795 793 gUserManager.DropOwner(o); 794 } 795 796 796 if (goInvisible) 797 797 { … … 1077 1077 // Since ICQ5.1, the status change packet is sent first, which means it is 1078 1078 // assumed that the set security info packet works. 1079 ICQOwner *o = gUserManager.FetchOwner(LOCK_W);1079 ICQOwner* o = gUserManager.FetchOwner(LICQ_PPID, LOCK_W); 1080 1080 o->SetEnableSave(false); 1081 1081 o->SetAuthorization(bAuthorize); … … 1085 1085 o->SaveLicqInfo(); 1086 1086 unsigned short s = o->StatusFull(); 1087 gUserManager.DropOwner( );1087 gUserManager.DropOwner(o); 1088 1088 // Set status to ensure the status flags are set 1089 1089 icqSetStatus(s); … … 1180 1180 o->SetClientInfoTimestamp(time(NULL)); 1181 1181 bool bOffline = o->StatusOffline(); 1182 gUserManager.DropOwner( );1182 gUserManager.DropOwner(o); 1183 1183 1184 1184 if (!bOffline) … … 1192 1192 o->SetClientInfoTimestamp(time(NULL)); 1193 1193 bool bOffline = o->StatusOffline(); 1194 gUserManager.DropOwner( );1194 gUserManager.DropOwner(o); 1195 1195 1196 1196 if (!bOffline) … … 1205 1205 o->SetPhoneFollowMeStatus(nNewStatus); 1206 1206 bool bOffline = o->StatusOffline(); 1207 gUserManager.DropOwner( );1207 gUserManager.DropOwner(o); 1208 1208 1209 1209 if (!bOffline) … … 1851 1851 if (o->IdString() == 0) 1852 1852 { 1853 gUserManager.DropOwner( );1853 gUserManager.DropOwner(o); 1854 1854 gLog.Error("%sNo registered user, unable to process logon attempt.\n", L_ERRORxSTR); 1855 1855 return 0; … … 1857 1857 if (o->Password()[0] == '\0') 1858 1858 { 1859 gUserManager.DropOwner( );1859 gUserManager.DropOwner(o); 1860 1860 gLog.Error(tr("%sNo password set. Edit ~/.licq/owner.Licq and fill in the password field.\n"), L_ERRORxSTR); 1861 1861 return 0; … … 1863 1863 1864 1864 m_nDesiredStatus = o->AddStatusFlags(logonStatus); 1865 gUserManager.DropOwner( );1865 gUserManager.DropOwner(o); 1866 1866 1867 1867 CPU_ConnectStart *startPacket = new CPU_ConnectStart(); … … 1883 1883 ICQOwner *o = gUserManager.FetchOwner(LICQ_PPID, LOCK_R); 1884 1884 CPU_RequestLogonSalt *p = new CPU_RequestLogonSalt(o->IdString()); 1885 gUserManager.DropOwner( );1885 gUserManager.DropOwner(o); 1886 1886 gLog.Info(tr("%sRequesting logon salt (#%hu)...\n"), L_SRVxSTR, p->Sequence()); 1887 1887 SendEvent_Server(p); … … 2028 2028 #endif 2029 2029 2030 ICQOwner *o = gUserManager.FetchOwner(LOCK_W);2030 ICQOwner* o = gUserManager.FetchOwner(LICQ_PPID, LOCK_W); 2031 2031 if (o) 2032 2032 ChangeUserStatus(o, ICQ_STATUS_OFFLINE); 2033 gUserManager.DropOwner( );2033 gUserManager.DropOwner(o); 2034 2034 2035 2035 if (m_szRegisterPasswd) … … 2083 2083 int CICQDaemon::ConnectToServer(const char* server, unsigned short port) 2084 2084 { 2085 SrvSocket *s = new SrvSocket(gUserManager. OwnerUin());2085 SrvSocket *s = new SrvSocket(gUserManager.icqOwnerUin()); 2086 2086 2087 2087 if (m_bProxyEnabled) … … 2119 2119 // Now get the internal ip from this socket 2120 2120 CPacket::SetLocalIp( NetworkIpToPacketIp(s->LocalIp() )); 2121 ICQOwner *o = gUserManager.FetchOwner(LOCK_W);2121 ICQOwner* o = gUserManager.FetchOwner(LICQ_PPID, LOCK_W); 2122 2122 if (o) 2123 2123 o->SetIntIp(s->LocalIp()); 2124 gUserManager.DropOwner( );2124 gUserManager.DropOwner(o); 2125 2125 2126 2126 gSocketManager.AddSocket(s); … … 2364 2364 // ICQOwner *o = gUserManager.FetchOwner(LICQ_PPID, LOCK_R); 2365 2365 // unsigned long nListTime = o->GetSSTime(); 2366 // gUserManager.DropOwner( LICQ_PPID);2366 // gUserManager.DropOwner(o); 2367 2367 2368 2368 CSrvPacketTcp* p; … … 2457 2457 realIP = PacketIpToNetworkIp(realIP); 2458 2458 CPacket::SetRealIp(NetworkIpToPacketIp(realIP)); 2459 ICQOwner *owner = gUserManager.FetchOwner(LOCK_W);2459 ICQOwner* owner = gUserManager.FetchOwner(LICQ_PPID, LOCK_W); 2460 2460 owner->SetIp(realIP); 2461 gUserManager.DropOwner( );2461 gUserManager.DropOwner(owner); 2462 2462 2463 2463 char buf[32]; … … 2468 2468 nOnlineSince = packet.UnpackUnsignedLongTLV(0x0003); 2469 2469 2470 ICQOwner *o = gUserManager.FetchOwner(LOCK_W);2470 ICQOwner* o = gUserManager.FetchOwner(LICQ_PPID, LOCK_W); 2471 2471 unsigned long nPFM = o->PhoneFollowMeStatus(); 2472 2472 // Workaround for the ICQ4.0 problem of it not liking the PFM flags … … 2480 2480 gLog.Info(tr("%sServer says we're now: %s\n"), L_SRVxSTR, ICQUser::StatusToStatusStr(o->Status(), o->StatusInvisible())); 2481 2481 2482 gUserManager.DropOwner( );2482 gUserManager.DropOwner(o); 2483 2483 2484 2484 break; … … 3776 3776 ICQOwner *o = gUserManager.FetchOwner(LICQ_PPID, LOCK_W); 3777 3777 AddUserEvent(o, e); 3778 gUserManager.DropOwner( );3778 gUserManager.DropOwner(o); 3779 3779 } 3780 3780 } … … 3841 3841 if (AddUserEvent(o, eEvent)) 3842 3842 { 3843 gUserManager.DropOwner( LICQ_PPID);3843 gUserManager.DropOwner(o); 3844 3844 eEvent->AddToHistory(NULL, LICQ_PPID, D_RECEIVER); 3845 3845 m_xOnEventManager.Do(ON_EVENT_SYSMSG, NULL); 3846 3846 } 3847 3847 else 3848 gUserManager.DropOwner( LICQ_PPID);3848 gUserManager.DropOwner(o); 3849 3849 break; 3850 3850 } … … 3871 3871 if (AddUserEvent(o, eEvent)) 3872 3872 { 3873 gUserManager.DropOwner( );3873 gUserManager.DropOwner(o); 3874 3874 eEvent->AddToHistory(NULL, LICQ_PPID, D_RECEIVER); 3875 3875 m_xOnEventManager.Do(ON_EVENT_SMS, NULL); 3876 3876 } 3877 3877 else 3878 gUserManager.DropOwner( );3878 gUserManager.DropOwner(o); 3879 3879 } 3880 3880 break; … … 4349 4349 if (cPrivacySettings == ICQ_PRIVACY_ALLOW_FOLLOWING) 4350 4350 ChangeUserStatus(o, o->StatusFull() | ICQ_STATUS_FxPRIVATE); 4351 gUserManager.DropOwner( LICQ_PPID);4351 gUserManager.DropOwner(o); 4352 4352 break; 4353 4353 } … … 4367 4367 CheckExport(); 4368 4368 } 4369 4369 4370 4370 // Update local info about contact list 4371 4371 nTime = packet.UnpackUnsignedLongBE(); 4372 ICQOwner *o = gUserManager.FetchOwner(LOCK_W);4372 ICQOwner* o = gUserManager.FetchOwner(LICQ_PPID, LOCK_W); 4373 4373 o->SetSSTime(nTime); 4374 4374 o->SetSSCount(nCount); 4375 gUserManager.DropOwner( );4375 gUserManager.DropOwner(o); 4376 4376 4377 4377 gLog.Info(tr("%sActivate server contact list.\n"), L_SRVxSTR); … … 4465 4465 unsigned long nListTime = o->GetSSTime(); 4466 4466 o->SetSSTime(time(0)); 4467 gUserManager.DropOwner( LICQ_PPID);4467 gUserManager.DropOwner(o); 4468 4468 4469 4469 CSrvPacketTcp *pReply = 0; … … 4644 4644 if (AddUserEvent(o, e)) 4645 4645 { 4646 gUserManager.DropOwner( LICQ_PPID);4646 gUserManager.DropOwner(o); 4647 4647 e->AddToHistory(NULL, LICQ_PPID, D_RECEIVER); 4648 4648 m_xOnEventManager.Do(ON_EVENT_SYSMSG, NULL); 4649 4649 } 4650 4650 else 4651 gUserManager.DropOwner( LICQ_PPID);4652 4651 gUserManager.DropOwner(o); 4652 4653 4653 delete [] szId; 4654 4654 delete [] szMsg; … … 4695 4695 if (AddUserEvent(o, eEvent)) 4696 4696 { 4697 gUserManager.DropOwner( LICQ_PPID);4697 gUserManager.DropOwner(o); 4698 4698 eEvent->AddToHistory(NULL, LICQ_PPID, D_RECEIVER); 4699 4699 m_xOnEventManager.Do(ON_EVENT_SYSMSG, NULL); 4700 4700 } 4701 4701 else 4702 gUserManager.DropOwner( LICQ_PPID);4702 gUserManager.DropOwner(o); 4703 4703 4704 4704 delete [] szId; … … 4718 4718 if (AddUserEvent(o, e)) 4719 4719 { 4720 gUserManager.DropOwner( LICQ_PPID);4720 gUserManager.DropOwner(o); 4721 4721 e->AddToHistory(NULL, LICQ_PPID, D_RECEIVER); 4722 4722 m_xOnEventManager.Do(ON_EVENT_SYSMSG, NULL); 4723 4723 } 4724 4724 else 4725 gUserManager.DropOwner( LICQ_PPID);4725 gUserManager.DropOwner(o); 4726 4726 4727 4727 delete [] szId; … … 4831 4831 sendTM.tm_isdst = -1; 4832 4832 4833 ICQOwner *o = gUserManager.FetchOwner(LOCK_R);4833 ICQOwner* o = gUserManager.FetchOwner(LICQ_PPID, LOCK_R); 4834 4834 nTimeSent = mktime(&sendTM) - o->SystemTimeGMTOffset(); 4835 gUserManager.DropOwner();4836 4835 gUserManager.DropOwner(o); 4836 4837 4837 // Msg type & flags 4838 4838 unsigned short nTypeMsg = msg.UnpackUnsignedShort(); … … 5079 5079 CEventUnknownSysMsg *e = new CEventUnknownSysMsg(nTypeMsg, ICQ_CMDxRCV_SYSxMSGxOFFLINE, 5080 5080 nUin, szMessage, nTimeSent, 0); 5081 5082 ICQOwner *o = gUserManager.FetchOwner(LOCK_W);5081 5082 ICQOwner* o = gUserManager.FetchOwner(LICQ_PPID, LOCK_W); 5083 5083 AddUserEvent(o, e); 5084 gUserManager.DropOwner();5084 gUserManager.DropOwner(o); 5085 5085 } 5086 5086 } … … 5141 5141 } 5142 5142 5143 ICQOwner *o = gUserManager.FetchOwner(LOCK_W);5143 ICQOwner* o = gUserManager.FetchOwner(LICQ_PPID, LOCK_W); 5144 5144 if (AddUserEvent(o, eEvent)) 5145 5145 { 5146 gUserManager.DropOwner();5146 gUserManager.DropOwner(o); 5147 5147 eEvent->AddToHistory(NULL, LICQ_PPID, D_RECEIVER); 5148 5148 m_xOnEventManager.Do(ON_EVENT_SYSMSG, NULL); 5149 5149 } 5150 5150 else 5151 gUserManager.DropOwner();5151 gUserManager.DropOwner(o); 5152 5152 break; 5153 5153 } … … 5166 5166 } 5167 5167 else 5168 { 5169 ICQOwner *o = gUserManager.FetchOwner(LOCK_W);5168 { 5169 ICQOwner* o = gUserManager.FetchOwner(LICQ_PPID, LOCK_W); 5170 5170 gLog.Info(tr("%sOffline SMS from %s.\n"), L_BLANKxSTR, eSms->Number()); 5171 5171 if (AddUserEvent(o, eEvent)) 5172 5172 { 5173 gUserManager.DropOwner();5173 gUserManager.DropOwner(o); 5174 5174 eEvent->AddToHistory(NULL, LICQ_PPID, D_RECEIVER); 5175 5175 m_xOnEventManager.Do(ON_EVENT_SMS, NULL); 5176 5176 } 5177 5177 else 5178 gUserManager.DropOwner();5179 }5178 gUserManager.DropOwner(o); 5179 } 5180 5180 break; 5181 5181 } … … 5210 5210 if (pEvent != NULL && nResult == META_SUCCESS) 5211 5211 { 5212 ICQOwner *o = gUserManager.FetchOwner(LOCK_W);5212 ICQOwner* o = gUserManager.FetchOwner(LICQ_PPID, LOCK_W); 5213 5213 o->SetEnableSave(false); 5214 5214 o->SetPassword(((CPU_SetPassword *)pEvent->m_pPacket)->m_szPassword); 5215 5215 o->SetEnableSave(true); 5216 5216 o->SaveLicqInfo(); 5217 gUserManager.DropOwner();5217 gUserManager.DropOwner(o); 5218 5218 } 5219 5219 } … … 5233 5233 { 5234 5234 CPU_Meta_SetGeneralInfo *p = (CPU_Meta_SetGeneralInfo *)pEvent->m_pPacket; 5235 ICQOwner *o = gUserManager.FetchOwner(LOCK_W);5235 ICQOwner* o = gUserManager.FetchOwner(LICQ_PPID, LOCK_W); 5236 5236 o->SetEnableSave(false); 5237 5237 o->SetAlias(p->m_szAlias); … … 5266 5266 o->SetEnableSave(true); 5267 5267 o->SaveGeneralInfo(); 5268 gUserManager.DropOwner();5268 gUserManager.DropOwner(o); 5269 5269 } 5270 5270 } … … 5278 5278 { 5279 5279 CPU_Meta_SetEmailInfo *p = (CPU_Meta_SetEmailInfo *)pEvent->m_pPacket; 5280 ICQOwner *o = gUserManager.FetchOwner(LOCK_W);5280 ICQOwner* o = gUserManager.FetchOwner(LICQ_PPID, LOCK_W); 5281 5281 o->SetEnableSave(false); 5282 5282 o->SetEmailSecondary(p->m_szEmailSecondary); … … 5290 5290 o->SetEnableSave(true); 5291 5291 o->SaveGeneralInfo(); 5292 gUserManager.DropOwner();5292 gUserManager.DropOwner(o); 5293 5293 } 5294 5294 } … … 5302 5302 { 5303 5303 CPU_Meta_SetMoreInfo *p = (CPU_Meta_SetMoreInfo *)pEvent->m_pPacket; 5304 ICQOwner *o = gUserManager.FetchOwner(LOCK_W);5304 ICQOwner* o = gUserManager.FetchOwner(LICQ_PPID, LOCK_W); 5305 5305 o->SetEnableSave(false); 5306 5306 o->SetAge(p->m_nAge); … … 5320 5320 o->SetEnableSave(true); 5321 5321 o->SaveMoreInfo(); 5322 gUserManager.DropOwner();5322 gUserManager.DropOwner(o); 5323 5323 } 5324 5324 } … … 5333 5333 CPU_Meta_SetInterestsInfo *p = 5334 5334 (CPU_Meta_SetInterestsInfo *)pEvent->m_pPacket; 5335 ICQOwner *o = gUserManager.FetchOwner(LOCK_W);5335 ICQOwner* o = gUserManager.FetchOwner(LICQ_PPID, LOCK_W); 5336 5336 o->SetEnableSave(false); 5337 5337 unsigned short cat; … … 5347 5347 o->SetEnableSave(true); 5348 5348 o->SaveInterestsInfo(); 5349 gUserManager.DropOwner();5349 gUserManager.DropOwner(o); 5350 5350 } 5351 5351 } … … 5359 5359 { 5360 5360 CPU_Meta_SetWorkInfo *p = (CPU_Meta_SetWorkInfo *)pEvent->m_pPacket; 5361 ICQOwner *o = gUserManager.FetchOwner(LOCK_W);5361 ICQOwner* o = gUserManager.FetchOwner(LICQ_PPID, LOCK_W); 5362 5362 o->SetEnableSave(false); 5363 5363 o->SetCompanyCity(p->m_szCity); … … 5389 5389 o->SetEnableSave(true); 5390 5390 o->SaveWorkInfo(); 5391 gUserManager.DropOwner();5391 gUserManager.DropOwner(o); 5392 5392 } 5393 5393 } … … 5401 5401 { 5402 5402 CPU_Meta_SetAbout *p = (CPU_Meta_SetAbout *)pEvent->m_pPacket; 5403 ICQOwner *o = gUserManager.FetchOwner(LOCK_W);5403 ICQOwner* o = gUserManager.FetchOwner(LICQ_PPID, LOCK_W); 5404 5404 char* msg = gTranslator.RNToN(p->m_szAbout); 5405 5405 o->SetEnableSave(false); … … 5413 5413 o->SetEnableSave(true); 5414 5414 o->SaveAboutInfo(); 5415 gUserManager.DropOwner();5415 gUserManager.DropOwner(o); 5416 5416 } 5417 5417 } … … 5456 5456 o->SetEnableSave(true); 5457 5457 o->SaveBackgroundsInfo(); 5458 gUserManager.DropOwner();5458 gUserManager.DropOwner(o); 5459 5459 } 5460 5460 } … … 5581 5581 if (pEvent != NULL && nResult == META_SUCCESS) 5582 5582 { 5583 ICQOwner *o = gUserManager.FetchOwner(LOCK_W);5583 ICQOwner* o = gUserManager.FetchOwner(LICQ_PPID, LOCK_W); 5584 5584 o->SetRandomChatGroup(((CPU_SetRandomChatGroup *)pEvent->m_pPacket)->Group()); 5585 gUserManager.DropOwner();5585 gUserManager.DropOwner(o); 5586 5586 } 5587 5587 } … … 6287 6287 unsigned long nNewUin = packet.UnpackUnsignedLong(); 6288 6288 6289 if ( gUserManager.OwnerUin() != 0)6290 { 6291 gLog.Warn(tr("%sReceived new uin (%lu) when already have a uin (% lu).\n"), L_WARNxSTR,6292 nNewUin, gUserManager.Owner Uin());6289 if (!gUserManager.OwnerId(LICQ_PPID).empty()) 6290 { 6291 gLog.Warn(tr("%sReceived new uin (%lu) when already have a uin (%s).\n"), L_WARNxSTR, 6292 nNewUin, gUserManager.OwnerId(LICQ_PPID).c_str()); 6293 6293 return; 6294 6294 } … … 6303 6303 { 6304 6304 o->SetPassword(m_szRegisterPasswd); 6305 gUserManager.DropOwner( LICQ_PPID);6305 gUserManager.DropOwner(o); 6306 6306 free(m_szRegisterPasswd); 6307 6307 m_szRegisterPasswd = 0; … … 6327 6327 ICQOwner *o = gUserManager.FetchOwner(LICQ_PPID, LOCK_R); 6328 6328 CPU_NewLogon *p = new CPU_NewLogon(o->Password(), o->IdString(), md5Salt); 6329 gUserManager.DropOwner( LICQ_PPID);6329 gUserManager.DropOwner(o); 6330 6330 gLog.Info(tr("%sSending md5 hashed password.\n"), L_SRVxSTR); 6331 6331 SendEvent_Server(p); … … 6585 6585 unsigned short nRemotePort) 6586 6586 { 6587 if (nUin == gUserManager.OwnerUin()) return -1; 6587 if (nUin == gUserManager.icqOwnerUin()) 6588 return -1; 6588 6589 6589 6590 ICQUser *u = gUserManager.FetchUser(nUin, LOCK_W);
