/// <summary> /// A cityserver requested a decryptionkey for a client! /// </summary> public static void HandleKeyFetch(ref LoginListener Listener, PacketStream P, CityServerClient Client) { string AccountName = P.ReadString(); byte[] EncKey = new byte[1]; foreach (LoginClient Cl in Listener.Clients) { if (Cl.Username == AccountName) { EncKey = Cl.EncKey; if (Cl.CurrentlyActiveSim.CreatedThisSession) { //TODO: Update the DB to reflect the city that // this sim resides in. Database.UpdateCityForCharacter(Cl.CurrentlyActiveSim.Name, Client.ServerInfo.Name); } } } PacketStream OutPacket = new PacketStream(0x01, 0x00); OutPacket.WriteByte((byte)0x01); OutPacket.WriteByte((byte)(EncKey.Length + 2)); OutPacket.WriteByte((byte)EncKey.Length); OutPacket.Write(EncKey, 0, EncKey.Length); Client.Send(OutPacket.ToArray()); //For now, assume client has already disconnected and doesn't need to be disconnected manually. Listener.TransferringClients.Remove(Client); }
//: base(ClientSocket, (Listener)Server) public LoginClient(Socket ClientSocket, LoginListener Server) { m_Socket = ClientSocket; m_Listener = Server; m_Socket.BeginReceive(m_RecvBuffer, 0, m_RecvBuffer.Length, SocketFlags.None, new AsyncCallback(OnReceivedData), m_Socket); }
public LoginClient(Socket ClientSocket, LoginListener Server) //: base(ClientSocket, (Listener)Server) { m_Socket = ClientSocket; m_Listener = Server; m_Socket.BeginReceive(m_RecvBuffer, 0, m_RecvBuffer.Length, SocketFlags.None, new AsyncCallback(OnReceivedData), m_Socket); }
public Form1() { InitializeComponent(); try { Database.Connect(); } catch (NoDBConnection NoDB) { MessageBox.Show(NoDB.Message); Environment.Exit(0); } Logger.Initialize("Log.txt"); Logger.InfoEnabled = true; m_Listener = new LoginListener(); m_Listener.OnReceiveEvent += new OnReceiveDelegate(m_Listener_OnReceiveEvent); //LoginRequest - Variable size. LoginClient.RegisterLoginPacketID(0x00, 0); //CharacterInfoRequest - Variable size. LoginClient.RegisterLoginPacketID(0x05, 0); //CharacterCreate - Variable size. LoginClient.RegisterLoginPacketID(0x06, 0); m_Listener.Initialize(2106); m_CServerListener = new CityServerListener(); m_CServerListener.OnReceiveEvent += new OnCityReceiveDelegate(m_CServerListener_OnReceiveEvent); //CityServerLogin - Variable size. CityServerClient.RegisterPatchPacketID(0x00, 0); m_CServerListener.Initialize(2348); }