Changeset 6227 for trunk/licq/src/icqd-srv.cpp
- Timestamp:
- 06/02/08 00:14:42 (6 months ago)
- Files:
-
- 1 modified
-
trunk/licq/src/icqd-srv.cpp (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/licq/src/icqd-srv.cpp
r6217 r6227 1776 1776 case MAKESNAC(ICQ_SNACxFAM_BUDDY, ICQ_SNACxBDY_ADDxTOxLIST): 1777 1777 case MAKESNAC(ICQ_SNACxFAM_BUDDY, ICQ_SNACxBDY_REMOVExFROMxLIST): 1778 case MAKESNAC(ICQ_SNACxFAM_ NEWUIN, ICQ_SNACxREGISTER_USER):1778 case MAKESNAC(ICQ_SNACxFAM_AUTH, ICQ_SNACxREGISTER_USER): 1779 1779 case MAKESNAC(ICQ_SNACxFAM_LOCATION, ICQ_SNACxREQUESTxUSERxINFO): 1780 1780 case MAKESNAC(ICQ_SNACxFAM_LOCATION, ICQ_SNACxLOC_INFOxREQ): … … 1858 1858 } 1859 1859 1860 char *passwd = strdup(o->Password()); 1861 char *user = strdup(o->IdString()); 1862 unsigned long status = o->AddStatusFlags(logonStatus); 1860 m_nDesiredStatus = o->AddStatusFlags(logonStatus); 1863 1861 gUserManager.DropOwner(); 1864 CPU_Logon *p = new CPU_Logon(passwd, user, status); 1865 free(passwd); 1866 free(user); 1862 1863 CPU_ConnectStart *startPacket = new CPU_ConnectStart(); 1864 SendEvent_Server(startPacket); 1865 1867 1866 m_bOnlineNotifies = false; 1868 gLog.Info(tr("%sRequesting logon (#%hu)...\n"), L_SRVxSTR, p->Sequence());1869 1867 m_nServerSequence = 0; 1870 m_nDesiredStatus = status;1871 1868 m_bLoggingOn = true; 1872 1869 m_tLogonTime = time(NULL); 1873 1874 SendEvent_Server(p); 1870 m_bNeedSalt = true; 1871 1872 return 0; 1873 } 1874 1875 unsigned long CICQDaemon::icqRequestLogonSalt() 1876 { 1877 if (m_bNeedSalt) 1878 { 1879 ICQOwner *o = gUserManager.FetchOwner(LICQ_PPID, LOCK_R); 1880 CPU_RequestLogonSalt *p = new CPU_RequestLogonSalt(o->IdString()); 1881 gUserManager.DropOwner(); 1882 gLog.Info(tr("%sRequesting logon salt (#%hu)...\n"), L_SRVxSTR, p->Sequence()); 1883 SendEvent_Server(p); 1884 } 1875 1885 1876 1886 return 0; … … 2212 2222 m_bRegistering = false; 2213 2223 } 2224 } 2225 else if (m_bLoggingOn) 2226 { 2227 icqRequestLogonSalt(); 2214 2228 } 2215 2229 break; … … 6195 6209 } 6196 6210 6197 //--------Process NewUINFam-----------------------------------------------------6198 void CICQDaemon::Process NewUINFam(CBuffer &packet, unsigned short nSubtype)6211 //--------ProcessAuthFam---------------------------------------------------- 6212 void CICQDaemon::ProcessAuthFam(CBuffer &packet, unsigned short nSubtype) 6199 6213 { 6200 6214 /*unsigned long Flags =*/ packet.UnpackUnsignedLongBE(); … … 6289 6303 } 6290 6304 6305 case ICQ_SNACxAUTHxSALT_REPLY: 6306 { 6307 char *md5Salt = packet.UnpackStringBE(); 6308 ICQOwner *o = gUserManager.FetchOwner(LICQ_PPID, LOCK_R); 6309 CPU_NewLogon *p = new CPU_NewLogon(o->Password(), o->IdString(), md5Salt); 6310 gUserManager.DropOwner(LICQ_PPID); 6311 gLog.Info(tr("%sSending md5 hashed password.\n"), L_SRVxSTR); 6312 SendEvent_Server(p); 6313 delete [] md5Salt; 6314 m_bNeedSalt = false; 6315 break; 6316 } 6317 6318 case ICQ_SNACxAUTHxLOGON_REPLY: 6319 { 6320 ProcessCloseChannel(packet); 6321 break; 6322 } 6323 6291 6324 case ICQ_SNACxSEND_IMAGE: 6292 6325 { … … 6377 6410 break; 6378 6411 6379 case ICQ_SNACxFAM_ NEWUIN:6380 Process NewUINFam(packet, nSubtype);6412 case ICQ_SNACxFAM_AUTH: 6413 ProcessAuthFam(packet, nSubtype); 6381 6414 break; 6382 6415
