Initial commit
This commit is contained in:
67
node_modules/mysql/lib/protocol/sequences/ChangeUser.js
generated
vendored
Normal file
67
node_modules/mysql/lib/protocol/sequences/ChangeUser.js
generated
vendored
Normal file
@ -0,0 +1,67 @@
|
||||
var Sequence = require('./Sequence');
|
||||
var Util = require('util');
|
||||
var Packets = require('../packets');
|
||||
var Auth = require('../Auth');
|
||||
|
||||
module.exports = ChangeUser;
|
||||
Util.inherits(ChangeUser, Sequence);
|
||||
function ChangeUser(options, callback) {
|
||||
Sequence.call(this, options, callback);
|
||||
|
||||
this._user = options.user;
|
||||
this._password = options.password;
|
||||
this._database = options.database;
|
||||
this._charsetNumber = options.charsetNumber;
|
||||
this._currentConfig = options.currentConfig;
|
||||
}
|
||||
|
||||
ChangeUser.prototype.determinePacket = function determinePacket(firstByte) {
|
||||
switch (firstByte) {
|
||||
case 0xfe: return Packets.AuthSwitchRequestPacket;
|
||||
case 0xff: return Packets.ErrorPacket;
|
||||
default: return undefined;
|
||||
}
|
||||
};
|
||||
|
||||
ChangeUser.prototype.start = function(handshakeInitializationPacket) {
|
||||
var scrambleBuff = handshakeInitializationPacket.scrambleBuff();
|
||||
scrambleBuff = Auth.token(this._password, scrambleBuff);
|
||||
|
||||
var packet = new Packets.ComChangeUserPacket({
|
||||
user : this._user,
|
||||
scrambleBuff : scrambleBuff,
|
||||
database : this._database,
|
||||
charsetNumber : this._charsetNumber
|
||||
});
|
||||
|
||||
this._currentConfig.user = this._user;
|
||||
this._currentConfig.password = this._password;
|
||||
this._currentConfig.database = this._database;
|
||||
this._currentConfig.charsetNumber = this._charsetNumber;
|
||||
|
||||
this.emit('packet', packet);
|
||||
};
|
||||
|
||||
ChangeUser.prototype['AuthSwitchRequestPacket'] = function (packet) {
|
||||
var name = packet.authMethodName;
|
||||
var data = Auth.auth(name, packet.authMethodData, {
|
||||
password: this._password
|
||||
});
|
||||
|
||||
if (data !== undefined) {
|
||||
this.emit('packet', new Packets.AuthSwitchResponsePacket({
|
||||
data: data
|
||||
}));
|
||||
} else {
|
||||
var err = new Error('MySQL is requesting the ' + name + ' authentication method, which is not supported.');
|
||||
err.code = 'UNSUPPORTED_AUTH_METHOD';
|
||||
err.fatal = true;
|
||||
this.end(err);
|
||||
}
|
||||
};
|
||||
|
||||
ChangeUser.prototype['ErrorPacket'] = function(packet) {
|
||||
var err = this._packetToError(packet);
|
||||
err.fatal = true;
|
||||
this.end(err);
|
||||
};
|
Reference in New Issue
Block a user