/** * little-endian byte order */ public void fromBytes(byte[] data) { if (data == null || data.length != 4) { throw new IllegalArgumentException("invalid header data. It can't be null and the length must be 4 byte."); } this.packetBodyLength = (data[0] & 0xFF) | ((data[1] & 0xFF) << 8) | ((data[2] & 0xFF) << 16); this.setPacketSequenceNumber(data[3]); }
private byte[] assembleHeaderBytes(int length) { HeaderPacket header = new HeaderPacket(); header.setPacketBodyLength(length); header.setPacketSequenceNumber((byte) 0x00); return header.toBytes(); } }
public static void writeBody0(SocketChannel ch, byte[] body, byte packetSeqNumber) throws IOException { HeaderPacket header = new HeaderPacket(); header.setPacketBodyLength(body.length); header.setPacketSequenceNumber(packetSeqNumber); ch.write(header.toBytes(), body); } }
public final ChannelBuffer createHeader(int bodyLength, byte packetNumber) { HeaderPacket header = new HeaderPacket(); header.setPacketBodyLength(bodyLength); header.setPacketSequenceNumber(packetNumber); return ChannelBuffers.wrappedBuffer(header.toBytes()); }
public final ChannelBuffer createHeaderWithPacketNumberPlusOne(int bodyLength, byte packetNumber) { HeaderPacket header = new HeaderPacket(); header.setPacketBodyLength(bodyLength); header.setPacketSequenceNumber((byte) (packetNumber + 1)); return ChannelBuffers.wrappedBuffer(header.toBytes()); }
public void sendSemiAck(String binlogfilename, Long binlogPosition) throws IOException { SemiAckCommandPacket semiAckCmd = new SemiAckCommandPacket(); semiAckCmd.binlogFileName = binlogfilename; semiAckCmd.binlogPosition = binlogPosition; byte[] cmdBody = semiAckCmd.toBytes(); logger.info("SEMI ACK with position:{}", semiAckCmd); HeaderPacket semiAckHeader = new HeaderPacket(); semiAckHeader.setPacketBodyLength(cmdBody.length); semiAckHeader.setPacketSequenceNumber((byte) 0x00); PacketManager.writePkg(connector.getChannel(), semiAckHeader.toBytes(), cmdBody); }
private void sendBinlogDumpGTID(GTIDSet gtidSet) throws IOException { BinlogDumpGTIDCommandPacket binlogDumpCmd = new BinlogDumpGTIDCommandPacket(); binlogDumpCmd.slaveServerId = this.slaveId; binlogDumpCmd.gtidSet = gtidSet; byte[] cmdBody = binlogDumpCmd.toBytes(); logger.info("COM_BINLOG_DUMP_GTID:{}", binlogDumpCmd); HeaderPacket binlogDumpHeader = new HeaderPacket(); binlogDumpHeader.setPacketBodyLength(cmdBody.length); binlogDumpHeader.setPacketSequenceNumber((byte) 0x00); PacketManager.writePkg(connector.getChannel(), binlogDumpHeader.toBytes(), cmdBody); connector.setDumping(true); }
private void auth323(SocketChannel channel, byte packetSequenceNumber, byte[] seed) throws IOException { // auth 323 Reply323Packet r323 = new Reply323Packet(); if (password != null && password.length() > 0) { r323.seed = MySQLPasswordEncrypter.scramble323(password, new String(seed)).getBytes(); } byte[] b323Body = r323.toBytes(); HeaderPacket h323 = new HeaderPacket(); h323.setPacketBodyLength(b323Body.length); h323.setPacketSequenceNumber((byte) (packetSequenceNumber + 1)); PacketManager.writePkg(channel, h323.toBytes(), b323Body); logger.info("client 323 authentication packet is sent out."); // check auth result HeaderPacket header = PacketManager.readHeader(channel, 4); byte[] body = PacketManager.readBytes(channel, header.getPacketBodyLength()); assert body != null; switch (body[0]) { case 0: break; case -1: ErrorPacket err = new ErrorPacket(); err.fromBytes(body); throw new IOException("Error When doing Client Authentication:" + err.toString()); default: throw new IOException("unpexpected packet with field_count=" + body[0]); } }
private void sendBinlogDump(String binlogfilename, Long binlogPosition) throws IOException { BinlogDumpCommandPacket binlogDumpCmd = new BinlogDumpCommandPacket(); binlogDumpCmd.binlogFileName = binlogfilename; binlogDumpCmd.binlogPosition = binlogPosition; binlogDumpCmd.slaveServerId = this.slaveId; byte[] cmdBody = binlogDumpCmd.toBytes(); logger.info("COM_BINLOG_DUMP with position:{}", binlogDumpCmd); HeaderPacket binlogDumpHeader = new HeaderPacket(); binlogDumpHeader.setPacketBodyLength(cmdBody.length); binlogDumpHeader.setPacketSequenceNumber((byte) 0x00); PacketManager.writePkg(connector.getChannel(), binlogDumpHeader.toBytes(), cmdBody); connector.setDumping(true); }
public void quit() throws IOException { QuitCommandPacket quit = new QuitCommandPacket(); byte[] cmdBody = quit.toBytes(); HeaderPacket quitHeader = new HeaderPacket(); quitHeader.setPacketBodyLength(cmdBody.length); quitHeader.setPacketSequenceNumber((byte) 0x00); PacketManager.writePkg(channel, quitHeader.toBytes(), cmdBody); }
header.setPacketSequenceNumber((byte) 0x00); PacketManager.writePkg(connector.getChannel(), header.toBytes(), cmdBody);
HeaderPacket h = new HeaderPacket(); h.setPacketBodyLength(clientAuthPkgBody.length); h.setPacketSequenceNumber((byte) (header.getPacketSequenceNumber() + 1));
/** * little-endian byte order */ public void fromBytes(byte[] data) { if (data == null || data.length != 4) { throw new IllegalArgumentException("invalid header data. It can't be null and the length must be 4 byte."); } this.packetBodyLength = (data[0] & 0xFF) | ((data[1] & 0xFF) << 8) | ((data[2] & 0xFF) << 16); this.setPacketSequenceNumber(data[3]); }
private byte[] assembleHeaderBytes(int length) { HeaderPacket header = new HeaderPacket(); header.setPacketBodyLength(length); header.setPacketSequenceNumber((byte) 0x00); return header.toBytes(); } }
public static void writeBody0(SocketChannel ch, byte[] body, byte packetSeqNumber) throws IOException { HeaderPacket header = new HeaderPacket(); header.setPacketBodyLength(body.length); header.setPacketSequenceNumber(packetSeqNumber); ch.write(header.toBytes(), body); } }
public final ChannelBuffer createHeaderWithPacketNumberPlusOne(int bodyLength, byte packetNumber) { HeaderPacket header = new HeaderPacket(); header.setPacketBodyLength(bodyLength); header.setPacketSequenceNumber((byte) (packetNumber + 1)); return ChannelBuffers.wrappedBuffer(header.toBytes()); }
public final ChannelBuffer createHeader(int bodyLength, byte packetNumber) { HeaderPacket header = new HeaderPacket(); header.setPacketBodyLength(bodyLength); header.setPacketSequenceNumber(packetNumber); return ChannelBuffers.wrappedBuffer(header.toBytes()); }
public void quit() throws IOException { QuitCommandPacket quit = new QuitCommandPacket(); byte[] cmdBody = quit.toBytes(); HeaderPacket quitHeader = new HeaderPacket(); quitHeader.setPacketBodyLength(cmdBody.length); quitHeader.setPacketSequenceNumber((byte) 0x00); PacketManager.writePkg(channel, quitHeader.toBytes(), cmdBody); }
private void auth323(SocketChannel channel, byte packetSequenceNumber, byte[] seed) throws IOException { // auth 323 Reply323Packet r323 = new Reply323Packet(); if (password != null && password.length() > 0) { r323.seed = MySQLPasswordEncrypter.scramble323(password, new String(seed)).getBytes(); } byte[] b323Body = r323.toBytes(); HeaderPacket h323 = new HeaderPacket(); h323.setPacketBodyLength(b323Body.length); h323.setPacketSequenceNumber((byte) (packetSequenceNumber + 1)); PacketManager.writePkg(channel, h323.toBytes(), b323Body); logger.info("client 323 authentication packet is sent out."); // check auth result HeaderPacket header = PacketManager.readHeader(channel, 4); byte[] body = PacketManager.readBytes(channel, header.getPacketBodyLength()); assert body != null; switch (body[0]) { case 0: break; case -1: ErrorPacket err = new ErrorPacket(); err.fromBytes(body); throw new IOException("Error When doing Client Authentication:" + err.toString()); default: throw new IOException("unpexpected packet with field_count=" + body[0]); } }
HeaderPacket h = new HeaderPacket(); h.setPacketBodyLength(clientAuthPkgBody.length); h.setPacketSequenceNumber((byte) (header.getPacketSequenceNumber() + 1));