public override void ParsePacketContent(MySqlStreamReader r) { if (protocol41) { catalog = r.ReadLengthCodedString();//3,100,101,102,103 (always "def") schema = r.ReadLengthCodedString(); table = r.ReadLengthCodedString(); orgTable = r.ReadLengthCodedString(); name = r.ReadLengthCodedString(); orgName = r.ReadLengthCodedString(); //next_length (lenenc_int) -- length of the following fields (always 0x0c) *** uint lengthCodedNumber = r.ReadLengthCodedNumber(); if (lengthCodedNumber != 0x0c) { //var err = new TypeError('Received invalid field length'); //err.code = 'PARSER_INVALID_FIELD_LENGTH'; //throw err; #if DEBUG if (lengthCodedNumber == 0) { //error //this package is error packet //server may send the correct one? dbugFailure = true; return; } #endif throw new Exception("Received invalid field length"); } charsetNr = r.U2();//2 maxLengthOfField = r.U4();//4 columnType = r.ReadByte();//1 flags = r.U2();//2 maxShownDecimalDigits = r.ReadByte(); filler = r.ReadBuffer(2); if (filler[0] != 0x0 || filler[1] != 0x0) { //var err = new TypeError('Received invalid filler'); //err.code = 'PARSER_INVALID_FILLER'; //throw err; throw new Exception("Received invalid filler"); } // parsed flags //this.zeroFill = (this.flags & 0x0040 ? true : false); zeroFill = ((flags & 0x0040) == 0x0040 ? true : false); if (r.ReachedPacketEnd()) { return; } //---- //if command was COM_FIELD_LIST { // lenenc_int length of default- values //string[$len] default values //} strDefault = r.ReadLengthCodedString(); } else { table = r.ReadLengthCodedString(); name = r.ReadLengthCodedString(); maxLengthOfField = r.ReadUnsigedNumber(r.ReadByte()); columnType = (int)r.ReadUnsigedNumber(r.ReadByte()); } }
public override void ParsePacketContent(MySqlStreamReader r) { _fieldCount = r.ReadByte(); _errno = r.U2();//2 if (r.PeekByte() == 0x23) { _sqlStateMarker = r.ReadChar(); _sqlState = r.ReadString(5); } message = r.ReadPacketTerminatedString(); #if DEBUG throw new Exception(_sqlStateMarker + _sqlState + " " + message); #endif }
public override void ParsePacketContent(MySqlStreamReader r) { fieldCount = r.ReadByte(); if (protocol41) { warningCount = r.U2();//2 serverStatus = r.U2();//2 } }
public override void ParsePacketContent(MySqlStreamReader r) { if (protocol41) { clientFlags = r.U4(); //4 maxPacketSize = r.U4(); //4 charsetNumber = r.ReadByte(); r.ReadFiller(23); user = r.ReadNullTerminatedString(); scrambleBuff = r.ReadLengthCodedBuffer(); database = r.ReadNullTerminatedString(); } else { clientFlags = r.U2();//2 maxPacketSize = r.U3();//3 user = r.ReadNullTerminatedString(); scrambleBuff = r.ReadBuffer(8); database = r.ReadLengthCodedString(); } }
public override void ParsePacketContent(MySqlStreamReader r) { _fieldCount = r.ReadByte(); affectedRows = r.ReadLengthCodedNumber(); insertId = r.ReadLengthCodedNumber(); if (_protocol41) { _serverStatus = r.U2(); _warningCount = r.U2(); } //TODO: review here again //https://dev.mysql.com/doc/internals/en/packet-OK_Packet.html _message = r.ReadPacketTerminatedString(); //var m = this.message.match(/\schanged:\s * (\d +) / i); //if (m !== null) //{ // this.changedRows = parseInt(m[1], 10); //} }
public override void ParsePacketContent(MySqlStreamReader r) { //we already have header *** protocolVersion = r.ReadByte();//1 serverVertion = r.ReadNullTerminatedString(); threadId = r.U4();//4 scrambleBuff1 = r.ReadBuffer(8); filler1 = r.ReadByte(); serverCapabilities1 = r.U2();//2 serverLanguage = r.ReadByte(); serverStatus = r.U2();//2 protocol41 = (serverCapabilities1 & (1 << 9)) > 0; if (protocol41) { serverCapabilities2 = r.U2(); scrambleLength = r.ReadByte(); filler2 = r.ReadBuffer(10); scrambleBuff2 = r.ReadBuffer(12); filler3 = r.ReadByte(); } else { filler2 = r.ReadBuffer(13); } if (r.ReadPosition == r.CurrentInputLength) { return; } pluginData = r.ReadPacketTerminatedString(); var last = pluginData.Length - 1; if (pluginData[last] == '\0') { pluginData = pluginData.Substring(0, last); } }