Example #1
0
        private void ConnectionRead(byte packetNumber, byte[] packet)
        {
            packetReader.NewPacket(packet);
            switch (State)
            {
            case ConnectionState.WaitForServerGreet:
                var connPacket = MySqlConnectionPacket.Parse(packetReader);

                bool version = connPacket.ServerVersion.IsAtLeast(4, 1, 1);

                if (!version)
                {
                }

                var response = new ClientAuthResponse()
                {
                    ClientFlags   = 0xA685,
                    MaxPacketSize = 256 * 256,
                    CharsetNumber = connPacket.ServerLanguage,
                    User          = Username,
                };

                packetBuilder.NewPacket();
                Socket.Write(response.Serialize(packetBuilder));
                State = ConnectionState.WaitForLoginResponse;
                break;

            case ConnectionState.WaitForLoginResponse:
                var res = ResponsePacket.Parse(packetReader);
                if (res is OkPacket)
                {
                    ConnectionCommand.FireSuccess(res as OkPacket);
                    State = ConnectionState.ParsePackets;
                    FireFirstCommand();
                }
                else if (res is Error)
                {
                    ConnectionCommand.FireError(res as Error);
                }
                break;
            }
        }
Example #2
0
		private void ConnectionRead(byte packetNumber, byte[] packet)
		{
			packetReader.NewPacket(packet);
			switch (State) {
			case ConnectionState.WaitForServerGreet:
				var connPacket = MySqlConnectionPacket.Parse(packetReader);
				
				bool version = connPacket.ServerVersion.IsAtLeast(4, 1, 1);
				
				if (!version) {
				}

				var response = new ClientAuthResponse() {
					ClientFlags = 0xA685,
					MaxPacketSize = 256*256,
					CharsetNumber = connPacket.ServerLanguage,
					User = Username,
				};

				packetBuilder.NewPacket();
				Socket.Write(response.Serialize(packetBuilder));
				State = ConnectionState.WaitForLoginResponse;
				break;
			case ConnectionState.WaitForLoginResponse:
				var res = ResponsePacket.Parse(packetReader);
				if (res is OkPacket) {
					ConnectionCommand.FireSuccess(res as OkPacket);
					State = ConnectionState.ParsePackets;
					FireFirstCommand();
				} else if (res is Error) {
					ConnectionCommand.FireError(res as Error);
				}
				break;
			}
		}