mysql2
Version:
fast mysql driver. Implements core protocol, prepared statements, ssl and compression in native JS
46 lines (40 loc) • 1.71 kB
JavaScript
var util = require('util');
var Command = require('./command.js');
var Packets = require('../packets/index.js');
var ClientConstants = require('../constants/client.js');
var ClientHandshake = require('./client_handshake.js');
function ChangeUser (options, callback)
{
this.onResult = callback;
this.user = options.user;
this.password = options.password;
this.database = options.database;
this.passwordSha1 = options.passwordSha1;
this.charsetNumber = options.charsetNumber;
this.currentConfig = options.currentConfig;
Command.call(this);
}
util.inherits(ChangeUser, Command);
ChangeUser.prototype.handshakeResult = ClientHandshake.prototype.handshakeResult;
ChangeUser.prototype.calculateNativePasswordAuthToken = ClientHandshake.prototype.calculateNativePasswordAuthToken;
ChangeUser.prototype.start = function (packet, connection) {
var packet = new Packets.ChangeUser({
flags : connection.config.clientFlags,
user : this.user,
database : this.database,
charsetNumber : this.charsetNumber,
password : this.password,
passwordSha1 : this.passwordSha1,
authPluginData1 : connection._handshakePacket.authPluginData1,
authPluginData2 : connection._handshakePacket.authPluginData2
});
this.currentConfig.user = this.user;
this.currentConfig.password = this.password;
this.currentConfig.database = this.database;
this.currentConfig.charsetNumber = this.charsetNumber;
// reset prepared statements cache as all statements become invalid after changeUser
connection._statements = {};
connection.writePacket(packet.toPacket());
return ChangeUser.prototype.handshakeResult;
};
module.exports = ChangeUser;