mirror of
https://github.com/brianc/node-postgres.git
synced 2025-12-08 20:16:25 +00:00
refactor sending simple messages
This commit is contained in:
parent
406e8a56a9
commit
3fe6661819
@ -28,18 +28,14 @@ p.connect = function() {
|
||||
var self = this;
|
||||
this.stream.on('connect', function() {
|
||||
var data = ['user',self.user,'database', self.database, '\0'].join('\0');
|
||||
var dataBuffer = Buffer(data);
|
||||
var fullBuffer = Buffer(8 + dataBuffer.length);
|
||||
fullBuffer[0] = fullBuffer.length >>> 24;
|
||||
fullBuffer[1] = fullBuffer.length >>> 16;
|
||||
fullBuffer[2] = fullBuffer.length >>> 8;
|
||||
fullBuffer[3] = fullBuffer.length >>> 0;
|
||||
fullBuffer[4] = 0;
|
||||
fullBuffer[5] = 3;
|
||||
fullBuffer[6] = 0;
|
||||
fullBuffer[7] = 0;
|
||||
fullBuffer.write(data,8);
|
||||
self.stream.write(fullBuffer);
|
||||
var dataBuffer = Buffer(data,'utf8');
|
||||
var fullBuffer = Buffer(4 + dataBuffer.length);
|
||||
fullBuffer[0] = 0;
|
||||
fullBuffer[1] = 3;
|
||||
fullBuffer[2] = 0;
|
||||
fullBuffer[3] = 0;
|
||||
dataBuffer.copy(fullBuffer, 4, 0);
|
||||
self.send(null, fullBuffer);
|
||||
});
|
||||
var parser = new Parser();
|
||||
this.stream.on('data', function(buffer) {
|
||||
@ -53,16 +49,8 @@ p.connect = function() {
|
||||
});
|
||||
|
||||
this.on('authenticationCleartextPassword', function() {
|
||||
console.log(self);
|
||||
var stringBuffer = new Buffer(self.password + '\0', 'utf8');
|
||||
var buffer = Buffer(stringBuffer.length + 5);
|
||||
buffer[0] = 0x70;
|
||||
buffer[1] = 0;
|
||||
buffer[2] = 0;
|
||||
buffer[3] = 0;
|
||||
buffer[4] = buffer.length - 1;
|
||||
buffer.write(self.password, 5)
|
||||
self.stream.write(buffer);
|
||||
self.send('p', stringBuffer);
|
||||
});
|
||||
|
||||
this.on('readyForQuery', function() {
|
||||
@ -71,6 +59,21 @@ p.connect = function() {
|
||||
});
|
||||
};
|
||||
|
||||
p.send = function(code, bodyBuffer) {
|
||||
var length = bodyBuffer.length + 4;
|
||||
var buffer = Buffer(length + (code ? 1 : 0));
|
||||
var offset = 0;
|
||||
if(code) {
|
||||
buffer[offset++] = Buffer(code,'utf8') [0];
|
||||
}
|
||||
buffer[offset++] = length >>> 24 & 0xFF;
|
||||
buffer[offset++] = length >>> 16 & 0xFF;
|
||||
buffer[offset++] = length >>> 8 & 0xFF;
|
||||
buffer[offset++] = length >>> 0 & 0xFF;
|
||||
bodyBuffer.copy(buffer, offset, 0);
|
||||
return this.stream.write(buffer);
|
||||
};
|
||||
|
||||
p.disconnect = function() {
|
||||
var terminationBuffer = new Buffer([88,0,0,0,4]);
|
||||
this.stream.write(terminationBuffer);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user