-
Notifications
You must be signed in to change notification settings - Fork 2.5k
/
Copy pathComChangeUserPacket.js
40 lines (35 loc) · 1.51 KB
/
ComChangeUserPacket.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
module.exports = ComChangeUserPacket;
var ConnectionConfig = require('../../ConnectionConfig');
var Client = require('../constants/client');
function ComChangeUserPacket(options) {
options = options || {};
this.command = 0x11;
this.user = options.user;
this.scrambleBuff = options.scrambleBuff;
this.database = options.database;
this.charsetNumber = options.charsetNumber;
}
ComChangeUserPacket.prototype.parse = function(parser) {
this.command = parser.parseUnsignedNumber(1);
this.user = parser.parseNullTerminatedString();
this.scrambleBuff = parser.parseLengthCodedBuffer();
this.database = parser.parseNullTerminatedString();
this.charsetNumber = parser.parseUnsignedNumber(1);
var defaultFlags = ConnectionConfig.getDefaultFlags();
var mergedFlags = ConnectionConfig.mergeFlags(defaultFlags);
if(mergedFlags & Client.CLIENT_PLUGIN_AUTH != 0) {
this.authPluginName = parser.parseNullTerminatedString();
}
};
ComChangeUserPacket.prototype.write = function(writer) {
writer.writeUnsignedNumber(1, this.command);
writer.writeNullTerminatedString(this.user);
writer.writeLengthCodedBuffer(this.scrambleBuff);
writer.writeNullTerminatedString(this.database);
writer.writeUnsignedNumber(2, this.charsetNumber);
var defaultFlags = ConnectionConfig.getDefaultFlags();
var mergedFlags = ConnectionConfig.mergeFlags(defaultFlags);
if(mergedFlags & Client.CLIENT_PLUGIN_AUTH != 0) {
writer.writeNullTerminatedString("mysql_native_password");
}
};