Skip to content

Commit 35ae21b

Browse files
committed
Implement Filler
1 parent 2c7c21b commit 35ae21b

File tree

2 files changed

+47
-0
lines changed

2 files changed

+47
-0
lines changed

lib/protocol/types/Filler.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
// "(filler) always 0x00"
2+
// -- http://forge.mysql.com/wiki/MySQL_Internals_ClientServer_Protocol#Handshake_Initialization_Packet
3+
4+
module.exports = Filler;
5+
function Filler(length) {
6+
this.length = length;
7+
}
8+
9+
Filler.prototype.copy = function(buffer, offset) {
10+
for (var i = 0; i < this.length; i++) {
11+
buffer[i + offset] = 0x00;
12+
}
13+
};
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
var common = require('../../../common');
2+
var assert = require('assert');
3+
var test = require('utest');
4+
var Filler = require(common.dir.lib + '/protocol/types/Filler');
5+
6+
test('Filler', {
7+
'1 byte': function() {
8+
var filler = new Filler(1);
9+
var buffer = new Buffer([255]);
10+
11+
filler.copy(buffer, 0);
12+
13+
assert.deepEqual(buffer, new Buffer([0]));
14+
},
15+
16+
'10 bytes': function() {
17+
var filler = new Filler(10);
18+
var buffer = new Buffer([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);
19+
20+
filler.copy(buffer, 0);
21+
22+
assert.deepEqual(buffer, new Buffer([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]));
23+
},
24+
25+
'offset': function() {
26+
var filler = new Filler(1);
27+
var buffer = new Buffer([1, 2, 3]);
28+
29+
filler.copy(buffer, 1);
30+
31+
assert.deepEqual(buffer, new Buffer([1, 0, 3]));
32+
},
33+
});
34+

0 commit comments

Comments
 (0)