public override void FromBytes(MySqlPacket data) { ProtocolVersion = data.ReadByte(); ServerVersion = data.ReadString(); ThreadId = data.ReadInteger(4); byte[] seedPart1 = data.ReadStringAsBytes(); if (data.HasMoreData) { Flags = (ClientFlags)data.ReadInteger(2); } ServerCharsetNumber = (int)data.ReadByte(); ServerStatus = (ServerStatusFlags)data.ReadInteger(2); var serverCapsHigh = (uint)data.ReadInteger(2); Flags |= (ClientFlags)(serverCapsHigh << 16); data.Position += 11; byte[] seedPart2 = data.ReadStringAsBytes(); if ((Flags & ClientFlags.PLUGIN_AUTH) != 0) { AuthenticationMethod = data.ReadString(); } else { AuthenticationMethod = "mysql_native_password"; } EncryptionSeed = new byte[seedPart1.Length + seedPart2.Length]; seedPart1.CopyTo(EncryptionSeed, 0); seedPart2.CopyTo(EncryptionSeed, seedPart1.Length); }
IMySqlValue IMySqlValue.ReadValue(MySqlPacket packet, long length, bool nullVal) { if (nullVal) { return new MySqlByte(true) { TreatAsBoolean = TreatAsBoolean } } ; MySqlByte b; if (length == -1) { b = new MySqlByte((sbyte)packet.ReadByte()); } else { string s = packet.ReadString(length); b = new MySqlByte(SByte.Parse(s, NumberStyles.Any, CultureInfo.InvariantCulture)); } b.TreatAsBoolean = TreatAsBoolean; return(b); } void IMySqlValue.SkipValue(MySqlPacket packet) { packet.ReadByte(); }
public override void FromBytes(MySqlPacket data) { Header = data.ReadByte(); AffectedRows = data.ReadByte(); InsertId = data.ReadByte(); //4. read server status ServerStatus = (ServerStatusFlags)data.ReadInteger(2); //5. read warning count WarningCount = data.ReadInteger(2); //6. read message Message = data.ReadLenString(); }
IMySqlValue IMySqlValue.ReadValue(MySqlPacket packet, long length, bool nullVal) { if (nullVal) { return(new MySqlTimeSpan(true)); } if (length >= 0L) { string s = packet.ReadString(length); this.ParseMySql(s); return(this); } long num = (long)((ulong)packet.ReadByte()); int num2 = 0; if (num > 0L) { num2 = (int)packet.ReadByte(); } this.isNull = false; if (num == 0L) { this.isNull = true; } else { if (num == 5L) { this.mValue = new TimeSpan(packet.ReadInteger(4), 0, 0, 0); } else { if (num == 8L) { this.mValue = new TimeSpan(packet.ReadInteger(4), (int)packet.ReadByte(), (int)packet.ReadByte(), (int)packet.ReadByte()); } else { this.mValue = new TimeSpan(packet.ReadInteger(4), (int)packet.ReadByte(), (int)packet.ReadByte(), (int)packet.ReadByte(), packet.ReadInteger(4) / 1000000); } } } if (num2 == 1) { this.mValue = this.mValue.Negate(); } return(this); }
private void HandleAuthChange(MySqlPacket packet) { packet.ReadByte(); string arg_3D_0 = packet.ReadString(); byte[] array = new byte[packet.Length - packet.Position]; Array.Copy(packet.Buffer, packet.Position, array, 0, array.Length); MySqlAuthenticationPlugin.GetPlugin(arg_3D_0, this.driver, array).AuthenticationChange(); }
public override void FromBytes(MySqlPacket data) { //1.read field count FieldCount = data.ReadByte(); //2.read warning count WarningCount = data.ReadInteger(2); //3.read status flag StatusFlag = data.ReadInteger(2); }
IMySqlValue IMySqlValue.ReadValue(MySqlPacket packet, long length, bool nullVal) { if (nullVal) { return(new MySqlTimeSpan(true)); } if (length >= 0) { string value = packet.ReadString(length); ParseMySql(value); return(this); } long bufLength = packet.ReadByte(); int negate = 0; if (bufLength > 0) { negate = packet.ReadByte(); } IsNull = false; if (bufLength == 0) { IsNull = true; } else if (bufLength == 5) { Value = new TimeSpan(packet.ReadInteger(4), 0, 0, 0); } else if (bufLength == 8) { Value = new TimeSpan(packet.ReadInteger(4), packet.ReadByte(), packet.ReadByte(), packet.ReadByte()); } else { var days = (int)packet.ReadInteger(4); var hours = (int)packet.ReadByte(); var minutes = (int)packet.ReadByte(); var seconds = (int)packet.ReadByte(); var microseconds = (int)packet.ReadInteger(4); Value = new TimeSpan(days, hours, minutes, seconds) + TimeSpan.FromTicks(microseconds * 10); } if (negate == 1) { Value = Value.Negate(); } return(this); }
IMySqlValue IMySqlValue.ReadValue(MySqlPacket packet, long length, bool nullVal) { if (nullVal) { return(new MySqlUByte(true)); } if (length == -1L) { return(new MySqlUByte(packet.ReadByte())); } return(new MySqlUByte(byte.Parse(packet.ReadString(length)))); }
IMySqlValue IMySqlValue.ReadValue(MySqlPacket packet, long length, bool nullVal) { if (nullVal) { return(new MySqlTimeSpan(true)); } if (length >= 0) { string value = packet.ReadString(length); ParseMySql(value); return(this); } long bufLength = packet.ReadByte(); int negate = 0; if (bufLength > 0) { negate = packet.ReadByte(); } isNull = false; if (bufLength == 0) { isNull = true; } else if (bufLength == 5) { mValue = new TimeSpan(packet.ReadInteger(4), 0, 0, 0); } else if (bufLength == 8) { mValue = new TimeSpan(packet.ReadInteger(4), packet.ReadByte(), packet.ReadByte(), packet.ReadByte()); } else { mValue = new TimeSpan(packet.ReadInteger(4), packet.ReadByte(), packet.ReadByte(), packet.ReadByte(), packet.ReadInteger(4) / 1000000); } if (negate == 1) { mValue = mValue.Negate(); } return(this); }
/// <summary> /// 字节 名称 /// ----- ---- /// 1 field_count, always = 0xff /// 2 error /// 1 sqlstate marker,always # /// 5 sqlstate /// n message /// </summary> public override void FromBytes(MySqlPacket data) { data.Position = 0; //1. read field count FieldCount = data.ReadByte(); //2. read error no ErrorNumber = data.ReadInteger(2); //3. read marker //SqlStateMarker = data.ReadByte(); //4. read sqlstate //data.Read(SqlState, 0, 5); //5. read message Message = data.ReadString(); }
private void HandleAuthChange(MySqlPacket packet) { byte b = packet.ReadByte(); Debug.Assert(b == 0xfe); string method = packet.ReadString(); byte[] authData = new byte[packet.Length - packet.Position]; Array.Copy(packet.Buffer, packet.Position, authData, 0, authData.Length); MySqlAuthenticationPlugin plugin = MySqlAuthenticationPlugin.GetPlugin(method, driver, authData); plugin.AuthenticationChange(); }
IMySqlValue IMySqlValue.ReadValue(MySqlPacket packet, long length, bool nullVal) { if (nullVal) { return(new MySqlUByte(true)); } if (length == -1) { return(new MySqlUByte((byte)packet.ReadByte())); } else { return(new MySqlUByte(Byte.Parse(packet.ReadString(length), CultureInfo.InvariantCulture))); } }
IMySqlValue IMySqlValue.ReadValue(MySqlPacket packet, long length, bool nullVal) { if (nullVal) { return(new MySqlByte(true)); } if (length == -1L) { return(new MySqlByte((sbyte)packet.ReadByte())); } string s = packet.ReadString(length); return(new MySqlByte(sbyte.Parse(s, NumberStyles.Any, CultureInfo.InvariantCulture)) { TreatAsBoolean = this.TreatAsBoolean }); }
IMySqlValue IMySqlValue.ReadValue(MySqlPacket packet, long length, bool nullVal) { if (nullVal) { return(new MySqlByte(true)); } if (length == -1) { return(new MySqlByte((sbyte)packet.ReadByte())); } else { var s = packet.ReadString(length); var b = new MySqlByte(SByte.Parse(s, NumberStyles.Any, CultureInfo.InvariantCulture)); b.TreatAsBoolean = TreatAsBoolean; return(b); } }
/// <summary> /// ReadPacket is called by NativeDriver to start reading the next /// packet on the stream. /// </summary> public MySqlPacket ReadPacket() { LoadPacket(); if (_packet.Buffer[0] == 0xff) { _packet.ReadByte(); // read off the 0xff int code = _packet.ReadInteger(2); string msg = String.Empty; msg = _packet.ReadString(Encoding.UTF8); if (msg.StartsWith("#", StringComparison.Ordinal)) { msg.Substring(1, 5); /* state code */ msg = msg.Substring(6); } throw new DotCanalException(msg, code); } return(_packet); }
IMySqlValue IMySqlValue.ReadValue(MySqlPacket packet, long length, bool nullVal) { if (nullVal) { return(new MySqlDateTime(_type, true)); } if (length >= 0) { string value = packet.ReadString(length); return(ParseMySql(value)); } long bufLength = packet.ReadByte(); int year = 0, month = 0, day = 0; int hour = 0, minute = 0, second = 0, microsecond = 0; if (bufLength >= 4) { year = packet.ReadInteger(2); month = packet.ReadByte(); day = packet.ReadByte(); } if (bufLength > 4) { hour = packet.ReadByte(); minute = packet.ReadByte(); second = packet.ReadByte(); } if (bufLength > 7) { microsecond = packet.Read3ByteInt(); packet.ReadByte(); } return(new MySqlDateTime(_type, year, month, day, hour, minute, second, microsecond)); }
IMySqlValue IMySqlValue.ReadValue(MySqlPacket packet, long length, bool nullVal) { if (nullVal) { return(new MySqlTimeSpan(true)); } if (length >= 0L) { string s = packet.ReadString(length); this.ParseMySql(s); return(this); } long num = packet.ReadByte(); int num2 = 0; if (num > 0L) { num2 = packet.ReadByte(); } this.isNull = false; switch (num) { case 0L: this.isNull = true; break; case 5L: this.mValue = new TimeSpan(packet.ReadInteger(4), 0, 0, 0); break; case 8L: this.mValue = new TimeSpan(packet.ReadInteger(4), packet.ReadByte(), packet.ReadByte(), packet.ReadByte()); break; default: this.mValue = new TimeSpan(packet.ReadInteger(4), packet.ReadByte(), packet.ReadByte(), packet.ReadByte(), packet.ReadInteger(4) / 0xf4240); break; } if (num2 == 1) { this.mValue = this.mValue.Negate(); } return(this); }
IMySqlValue IMySqlValue.ReadValue(MySqlPacket packet, long length, bool nullVal) { if (nullVal) { return(new MySqlDateTime(this.type, true)); } if (length >= 0L) { string s = packet.ReadString(length); return(this.ParseMySql(s)); } ulong arg_49_0 = (ulong)packet.ReadByte(); int num = 0; int num2 = 0; int num3 = 0; int num4 = 0; int num5 = 0; int num6 = 0; int num7 = 0; if (arg_49_0 >= 4uL) { num = packet.ReadInteger(2); num2 = (int)packet.ReadByte(); num3 = (int)packet.ReadByte(); } if (arg_49_0 > 4uL) { num4 = (int)packet.ReadByte(); num5 = (int)packet.ReadByte(); num6 = (int)packet.ReadByte(); } if (arg_49_0 > 7uL) { num7 = packet.Read3ByteInt(); packet.ReadByte(); } return(new MySqlDateTime(this.type, num, num2, num3, num4, num5, num6, num7)); }
IMySqlValue IMySqlValue.ReadValue(MySqlPacket packet, long length, bool nullVal) { if (nullVal) { return(new MySqlDateTime(this.type, true)); } if (length >= 0L) { string s = packet.ReadString(length); return(this.ParseMySql(s)); } long num = (long)((ulong)packet.ReadByte()); int num2 = 0; int num3 = 0; int num4 = 0; int num5 = 0; int num6 = 0; int num7 = 0; int num8 = 0; if (num >= 4L) { num2 = packet.ReadInteger(2); num3 = (int)packet.ReadByte(); num4 = (int)packet.ReadByte(); } if (num > 4L) { num5 = (int)packet.ReadByte(); num6 = (int)packet.ReadByte(); num7 = (int)packet.ReadByte(); } if (num > 7L) { num8 = packet.Read3ByteInt(); packet.ReadByte(); } return(new MySqlDateTime(this.type, num2, num3, num4, num5, num6, num7, num8)); }
void IMySqlValue.SkipValue(MySqlPacket packet) { packet.ReadByte(); }
void IMySqlValue.SkipValue(MySqlPacket packet) { int len = packet.ReadByte(); packet.Position += len; }
private void HandleAuthChange(MySqlPacket packet) { var b = packet.ReadByte(); Debug.Assert(b == 0xfe); var method = packet.ReadString(); var authData = new byte[packet.Length - packet.Position]; Array.Copy(packet.Buffer, packet.Position, authData, 0, authData.Length); var plugin = GetPlugin(method, driver, authData); plugin.AuthenticationChange(); }
void IMySqlValue.SkipValue(MySqlPacket packet) { int num = (int)packet.ReadByte(); packet.Position += num; }