nodejs/test/parallel/test-tls-inception.js
James M Snell 85ab4a5f12 buffer: add .from(), .alloc() and .allocUnsafe()
Several changes:

* Soft-Deprecate Buffer() constructors
* Add `Buffer.from()`, `Buffer.alloc()`, and `Buffer.allocUnsafe()`
* Add `--zero-fill-buffers` command line option
* Add byteOffset and length to `new Buffer(arrayBuffer)` constructor
* buffer.fill('') previously had no effect, now zero-fills
* Update the docs

PR-URL: https://github.com/nodejs/node/pull/4682
Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com>
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com>
2016-03-16 08:34:02 -07:00

71 lines
1.5 KiB
JavaScript

'use strict';
var common = require('../common');
var assert = require('assert');
if (!common.hasCrypto) {
console.log('1..0 # Skipped: missing crypto');
return;
}
var tls = require('tls');
var fs = require('fs');
var path = require('path');
var net = require('net');
var options, a, b;
var body = Buffer.alloc(400000, 'A');
options = {
key: fs.readFileSync(path.join(common.fixturesDir, 'test_key.pem')),
cert: fs.readFileSync(path.join(common.fixturesDir, 'test_cert.pem'))
};
// the "proxy" server
a = tls.createServer(options, function(socket) {
var options = {
host: '127.0.0.1',
port: b.address().port,
rejectUnauthorized: false
};
var dest = net.connect(options);
dest.pipe(socket);
socket.pipe(dest);
dest.on('end', function() {
socket.destroy();
});
});
// the "target" server
b = tls.createServer(options, function(socket) {
socket.end(body);
});
a.listen(common.PORT, function() {
b.listen(common.PORT + 1, function() {
options = {
host: '127.0.0.1',
port: a.address().port,
rejectUnauthorized: false
};
var socket = tls.connect(options);
var ssl;
ssl = tls.connect({
socket: socket,
rejectUnauthorized: false
});
ssl.setEncoding('utf8');
var buf = '';
ssl.on('data', function(data) {
buf += data;
});
ssl.on('end', common.mustCall(function() {
assert.equal(buf, body);
ssl.end();
a.close();
b.close();
}));
});
});