1 | "use strict";
|
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
|
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
|
4 | };
|
5 | Object.defineProperty(exports, "__esModule", { value: true });
|
6 | const tls_1 = __importDefault(require("tls"));
|
7 | const net_1 = __importDefault(require("net"));
|
8 | const debug_1 = __importDefault(require("debug"));
|
9 | const debug = (0, debug_1.default)('mqttjs:tls');
|
10 | const buildStream = (client, opts) => {
|
11 | opts.port = opts.port || 8883;
|
12 | opts.host = opts.hostname || opts.host || 'localhost';
|
13 | if (net_1.default.isIP(opts.host) === 0) {
|
14 | opts.servername = opts.host;
|
15 | }
|
16 | opts.rejectUnauthorized = opts.rejectUnauthorized !== false;
|
17 | delete opts.path;
|
18 | debug('port %d host %s rejectUnauthorized %b', opts.port, opts.host, opts.rejectUnauthorized);
|
19 | const connection = tls_1.default.connect(opts);
|
20 | connection.on('secureConnect', () => {
|
21 | if (opts.rejectUnauthorized && !connection.authorized) {
|
22 | connection.emit('error', new Error('TLS not authorized'));
|
23 | }
|
24 | else {
|
25 | connection.removeListener('error', handleTLSerrors);
|
26 | }
|
27 | });
|
28 | function handleTLSerrors(err) {
|
29 | if (opts.rejectUnauthorized) {
|
30 | client.emit('error', err);
|
31 | }
|
32 | connection.end();
|
33 | }
|
34 | connection.on('error', handleTLSerrors);
|
35 | return connection;
|
36 | };
|
37 | exports.default = buildStream;
|
38 |
|
\ | No newline at end of file |