예제 #1
0
		public static new EOFPacket Parse(PacketReader packetReader)
		{
			return new EOFPacket() {
				FieldCount   = packetReader.ReadByte(),
				WarningCount = packetReader.ReadShort(),
				ServerStatus = packetReader.ReadShort()
			};
		}
예제 #2
0
		public static ResponsePacket Parse(PacketReader packetReader)
		{
			switch (packetReader.CurrentByte) {
			case 0:	   return OkPacket.Parse(packetReader);
			case 0xFE: return EOFPacket.Parse(packetReader);
			case 0xFF: return Error.Parse(packetReader);
			}
			return null;
		}
예제 #3
0
		public static new Error Parse(PacketReader packetReader)
		{
			return new Error() {
				FieldCount  = packetReader.ReadByte(),
				ErrorNumber = packetReader.ReadShort(),
				Marker      = packetReader.ReadByte(),
				State       = packetReader.ReadString(5),
				Message     = packetReader.ReadString(),
			};
		}
예제 #4
0
		public static MySqlConnectionPacket Parse(PacketReader packetReader)
		{
			MySqlConnectionPacket packet = new MySqlConnectionPacket();
			packet.ProtocolVersion    = packetReader.ReadByte();
			packet.ServerVersion      = DatabaseVersion.Parse(packetReader.ReadString(Encoding.ASCII));
			packet.ThreadId           = packetReader.ReadInt();
			packet.ScrambleBuffer     = packetReader.ReadBytes(sizeof(long));
			packet.Filler             = packetReader.ReadByte();
			packet.ServerCapabilities = packetReader.ReadShort();
			packet.ServerLanguage     = packetReader.ReadByte();
			packet.ServerStatus       = packetReader.ReadShort();
			packet.ServerCapabilitiesUpper = packetReader.ReadShort();
			packet.ScrambleLength     = packetReader.ReadByte();
			packet.SecondFiller       = packetReader.ReadBytes(10);
			
			packetReader.ReadByte();
			
			packet.SecondScramble  = packetReader.ReadBytes(packetReader.Length - packetReader.Position - 1);
			
			return packet;
		}
예제 #5
0
		public static new OkPacket Parse(PacketReader packetReader)
		{
			return new OkPacket() {
				FieldCount   = packetReader.ReadByte(),
				AffectedRows = packetReader.ReadLength(),
				InsertId     = packetReader.ReadLength(),
				ServerStatus = packetReader.ReadShort(),
				Message      = packetReader.ReadString(),
			};
		}
예제 #6
0
		public static ResponsePacketType GetType(PacketReader packetReader)
		{
			return GetType(packetReader.CurrentByte);
		}
예제 #7
0
		public static FieldPacket Parse(PacketReader packetReader)
		{
			return new FieldPacket() {
				Catalog       = packetReader.ReadLengthString(),
				Database      = packetReader.ReadLengthString(),
				Table         = packetReader.ReadLengthString(),
				OriginalTable = packetReader.ReadLengthString(),
				Name          = packetReader.ReadLengthString(),
				OriginalName  = packetReader.ReadLengthString(),
				
				Filler = packetReader.ReadByte(),
				
				CharsetNumber = packetReader.ReadShort(),
				Length        = packetReader.ReadInt(),
				Type          = (MySqlDbType)packetReader.ReadByte(),
				Flags         = (ColumnFlags)packetReader.ReadShort(),
				Decimals      = packetReader.ReadByte(),
				
				Filler2 = packetReader.ReadBytes(2),
				Default = packetReader.ReadLengthBytes()
			};
		}