D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
etb1lp46s9ed
/
washeet.softurecs.com
/
node_modules
/
mysql2
/
lib
/
packets
/
Filename :
register_slave.js
back
Copy
'use strict'; // http://dev.mysql.com/doc/internals/en/com-register-slave.html // note that documentation is incorrect, for example command code is actually 0x15 but documented as 0x14 const Packet = require('../packets/packet'); const CommandCodes = require('../constants/commands'); class RegisterSlave { constructor(opts) { this.serverId = opts.serverId || 0; this.slaveHostname = opts.slaveHostname || ''; this.slaveUser = opts.slaveUser || ''; this.slavePassword = opts.slavePassword || ''; this.slavePort = opts.slavePort || 0; this.replicationRank = opts.replicationRank || 0; this.masterId = opts.masterId || 0; } toPacket() { const length = 15 + // TODO: should be ascii? Buffer.byteLength(this.slaveHostname, 'utf8') + Buffer.byteLength(this.slaveUser, 'utf8') + Buffer.byteLength(this.slavePassword, 'utf8') + 3 + 4; const buffer = Buffer.allocUnsafe(length); const packet = new Packet(0, buffer, 0, length); packet.offset = 4; packet.writeInt8(CommandCodes.REGISTER_SLAVE); packet.writeInt32(this.serverId); packet.writeInt8(Buffer.byteLength(this.slaveHostname, 'utf8')); packet.writeString(this.slaveHostname); packet.writeInt8(Buffer.byteLength(this.slaveUser, 'utf8')); packet.writeString(this.slaveUser); packet.writeInt8(Buffer.byteLength(this.slavePassword, 'utf8')); packet.writeString(this.slavePassword); packet.writeInt16(this.slavePort); packet.writeInt32(this.replicationRank); packet.writeInt32(this.masterId); return packet; } } module.exports = RegisterSlave;