Show
Ignore:
Timestamp:
06/02/08 00:14:42 (6 months ago)
Author:
emostar
Message:

Use MD5 method for logins.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/licq/src/icqd-srv.cpp

    r6217 r6227  
    17761776      case MAKESNAC(ICQ_SNACxFAM_BUDDY, ICQ_SNACxBDY_ADDxTOxLIST): 
    17771777      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): 
    17791779      case MAKESNAC(ICQ_SNACxFAM_LOCATION, ICQ_SNACxREQUESTxUSERxINFO): 
    17801780      case MAKESNAC(ICQ_SNACxFAM_LOCATION, ICQ_SNACxLOC_INFOxREQ): 
     
    18581858  } 
    18591859 
    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); 
    18631861  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 
    18671866  m_bOnlineNotifies = false; 
    1868   gLog.Info(tr("%sRequesting logon (#%hu)...\n"), L_SRVxSTR, p->Sequence()); 
    18691867  m_nServerSequence = 0; 
    1870   m_nDesiredStatus = status; 
    18711868  m_bLoggingOn = true; 
    18721869  m_tLogonTime = time(NULL); 
    1873  
    1874   SendEvent_Server(p); 
     1870  m_bNeedSalt = true; 
     1871 
     1872  return 0; 
     1873} 
     1874 
     1875unsigned 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  } 
    18751885 
    18761886  return 0; 
     
    22122222        m_bRegistering = false; 
    22132223      } 
     2224    } 
     2225    else if (m_bLoggingOn) 
     2226    { 
     2227      icqRequestLogonSalt(); 
    22142228    } 
    22152229    break; 
     
    61956209} 
    61966210 
    6197 //--------ProcessNewUINFam----------------------------------------------------- 
    6198 void CICQDaemon::ProcessNewUINFam(CBuffer &packet, unsigned short nSubtype) 
     6211//--------ProcessAuthFam---------------------------------------------------- 
     6212void CICQDaemon::ProcessAuthFam(CBuffer &packet, unsigned short nSubtype) 
    61996213{ 
    62006214  /*unsigned long Flags =*/ packet.UnpackUnsignedLongBE(); 
     
    62896303    } 
    62906304 
     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 
    62916324    case ICQ_SNACxSEND_IMAGE: 
    62926325    { 
     
    63776410    break; 
    63786411 
    6379   case ICQ_SNACxFAM_NEWUIN: 
    6380     ProcessNewUINFam(packet, nSubtype); 
     6412  case ICQ_SNACxFAM_AUTH: 
     6413    ProcessAuthFam(packet, nSubtype); 
    63816414    break; 
    63826415