コード例 #1
0
ファイル: TaskProcessor.cs プロジェクト: acid1789/DecoServer2
        void LoginRequest_Process_Handler(Task t)
        {
            LoginRequestPacket lrp = (LoginRequestPacket)t.Args;

            if (t.Query.Rows.Count > 0)
            {
                // 0: account_id
                // 1: user_name
                // 2: password
                object[] row        = t.Query.Rows[0];
                int      account_id = (int)row[0];
                string   pass       = (string)row[1];
                if (pass != lrp.Password)
                {
                    t.Client.SendPacket(new LoginErrorPacket(LoginErrorPacket.ErrorCodes.PasswordDoesntMatch, "wrong password"));
                }
                else
                {
                    // Login ok - TODO: Implement other server support
                    string authKey = _server.ExpectConnection(account_id);
                    t.Client.SendPacket(new ServerListPacket(_server.PlayServers, authKey));
                }
            }
            else
            {
                // Account not found
                t.Client.SendPacket(new LoginErrorPacket(LoginErrorPacket.ErrorCodes.AccountDoesntExist, "makeanaccount.com"));
            }
        }
コード例 #2
0
ファイル: TaskProcessor.cs プロジェクト: acid1789/DecoServer2
        void LoginRequest_Fetch_Handler(Task t)
        {
            LoginRequestPacket lrp = (LoginRequestPacket)t.Args;
            string             sql = string.Format("SELECT * FROM accounts WHERE user_name=\"{0}\";", lrp.UserName);

            t.Type = Task.TaskType.LoginRequest_Process;
            AddDBQuery(sql, t);
        }
コード例 #3
0
ファイル: Packets.cs プロジェクト: acid1789/DecoServer2
        public static LoginRequestPacket Read(PacketHeader header, BinaryReader br)
        {
            LoginRequestPacket lrp = new LoginRequestPacket();

            lrp.Header   = header;
            lrp.UserName = Utils.ReadByteString(br, 65);
            lrp.Password = Utils.ReadByteString(br, 65);

            return(lrp);
        }
コード例 #4
0
ファイル: ServerBase.cs プロジェクト: acid1789/DecoServer2
 private void Client_OnLoginRequest(object sender, LoginRequestPacket e)
 {
     TaskProcessor.AddTask(new Task(Task.TaskType.LoginRequest_Fetch, (Connection)sender, e));
 }
コード例 #5
0
ファイル: Packets.cs プロジェクト: acid1789/DecoServer2
        public static LoginRequestPacket Read(PacketHeader header, BinaryReader br)
        {
            LoginRequestPacket lrp = new LoginRequestPacket();
            lrp.Header = header;
            lrp.UserName = Utils.ReadByteString(br, 65);
            lrp.Password = Utils.ReadByteString(br, 65);

            return lrp;
        }
コード例 #6
0
        void LoginRequest_Handler(PacketHeader header, BinaryReader br)
        {
            LoginRequestPacket lrp = LoginRequestPacket.Read(header, br);

            OnLoginRequest(this, lrp);
        }
コード例 #7
0
ファイル: ServerBase.cs プロジェクト: acid1789/DecoServer2
 private void Client_OnLoginRequest(object sender, LoginRequestPacket e)
 {
     TaskProcessor.AddTask(new Task(Task.TaskType.LoginRequest_Fetch, (Connection)sender, e));
 }