void ClientList::ClientUpdate(ZoneServer* zoneserver, ServerClientList_Struct* scl) { LinkedListIterator<ClientListEntry*> iterator(clientlist); ClientListEntry* cle; iterator.Reset(); while(iterator.MoreElements()) { if (iterator.GetData()->GetID() == scl->wid) { cle = iterator.GetData(); if (scl->remove == 2){ cle->LeavingZone(zoneserver, CLE_Status_Offline); } else if (scl->remove == 1) cle->LeavingZone(zoneserver, CLE_Status_Zoning); else cle->Update(zoneserver, scl); return; } iterator.Advance(); } if (scl->remove == 2) cle = new ClientListEntry(GetNextCLEID(), zoneserver, scl, CLE_Status_Online); else if (scl->remove == 1) cle = new ClientListEntry(GetNextCLEID(), zoneserver, scl, CLE_Status_Zoning); else cle = new ClientListEntry(GetNextCLEID(), zoneserver, scl, CLE_Status_InZone); clientlist.Insert(cle); zoneserver->ChangeWID(scl->charid, cle->GetID()); }
ClientListEntry* ClientList::CheckAuth(const char* iName, const char* iPassword) { LinkedListIterator<ClientListEntry*> iterator(clientlist); MD5 tmpMD5(iPassword); iterator.Reset(); while(iterator.MoreElements()) { if (iterator.GetData()->CheckAuth(iName, tmpMD5)) return iterator.GetData(); iterator.Advance(); } int16 tmpadmin; _log(WORLD__ZONELIST,"Login with '%s' and '%s'", iName, iPassword); uint32 accid = database.CheckLogin(iName, iPassword, &tmpadmin); if (accid) { ClientListEntry* tmp = new ClientListEntry(GetNextCLEID(), accid, iName, tmpMD5, tmpadmin); clientlist.Append(tmp); return tmp; } return 0; }
ClientListEntry* ClientList::CheckAuth(const char* iName, const char* iPassword) { LinkedListIterator<ClientListEntry*> iterator(clientlist); MD5 tmpMD5(iPassword); iterator.Reset(); while(iterator.MoreElements()) { if (iterator.GetData()->CheckAuth(iName, tmpMD5)) return iterator.GetData(); iterator.Advance(); } int16 tmpadmin; //Log.LogDebugType(Logs::Detail, Logs::World_Server,"Login with '%s' and '%s'", iName, iPassword); uint32 accid = database.CheckLogin(iName, iPassword, &tmpadmin); if (accid) { uint32 lsid = 0; database.GetAccountIDByName(iName, &tmpadmin, &lsid); auto tmp = new ClientListEntry(GetNextCLEID(), lsid, iName, tmpMD5, tmpadmin, 0, 0); clientlist.Append(tmp); return tmp; } return 0; }
void ClientList::CLEAdd(uint32 iLSID, const char* iLoginName, const char* iLoginKey, int16 iWorldAdmin, uint32 ip, uint8 local) { ClientListEntry* tmp = new ClientListEntry(GetNextCLEID(), iLSID, iLoginName, iLoginKey, iWorldAdmin, ip, local); clientlist.Append(tmp); }