removed some unused file and cleaned package.json
I used git grep to find all require statements coupled with sed, sort and uniq to create a list of all node modules actually required in our code, then went through package.json to make the list match our dependencies.
This commit is contained in:
parent
78e8266ce3
commit
73d3396609
144
lib/tunnel.js
144
lib/tunnel.js
|
@ -1,144 +0,0 @@
|
||||||
'use strict';
|
|
||||||
|
|
||||||
module.exports.create = function (opts, servers) {
|
|
||||||
// servers = { plainserver, server }
|
|
||||||
var Oauth3 = require('oauth3-cli');
|
|
||||||
var Tunnel = require('daplie-tunnel').create({
|
|
||||||
Oauth3: Oauth3
|
|
||||||
, PromiseA: opts.PromiseA
|
|
||||||
, CLI: {
|
|
||||||
init: function (rs, ws/*, state, options*/) {
|
|
||||||
// noop
|
|
||||||
return ws;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}).Tunnel;
|
|
||||||
var stunnel = require('stunnel');
|
|
||||||
var killcount = 0;
|
|
||||||
|
|
||||||
/*
|
|
||||||
var Dup = {
|
|
||||||
write: function (chunk, encoding, cb) {
|
|
||||||
this.__my_socket.push(chunk, encoding);
|
|
||||||
cb();
|
|
||||||
}
|
|
||||||
, read: function (size) {
|
|
||||||
var x = this.__my_socket.read(size);
|
|
||||||
if (x) { this.push(x); }
|
|
||||||
}
|
|
||||||
, setTimeout: function () {
|
|
||||||
console.log('TODO implement setTimeout on Duplex');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
var httpServer = require('http').createServer(function (req, res) {
|
|
||||||
console.log('req.socket.encrypted', req.socket.encrypted);
|
|
||||||
res.end('Hello, tunneled World!');
|
|
||||||
});
|
|
||||||
|
|
||||||
var tlsServer = require('tls').createServer(opts.httpsOptions, function (tlsSocket) {
|
|
||||||
console.log('tls connection');
|
|
||||||
// things get a little messed up here
|
|
||||||
httpServer.emit('connection', tlsSocket);
|
|
||||||
|
|
||||||
// try again
|
|
||||||
//servers.server.emit('connection', tlsSocket);
|
|
||||||
});
|
|
||||||
*/
|
|
||||||
|
|
||||||
process.on('SIGINT', function () {
|
|
||||||
killcount += 1;
|
|
||||||
console.log('[quit] closing http and https servers');
|
|
||||||
if (killcount >= 3) {
|
|
||||||
process.exit(1);
|
|
||||||
}
|
|
||||||
if (servers.server) {
|
|
||||||
servers.server.close();
|
|
||||||
}
|
|
||||||
if (servers.insecureServer) {
|
|
||||||
servers.insecureServer.close();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return Tunnel.token({
|
|
||||||
refreshToken: opts.refreshToken
|
|
||||||
, email: opts.email
|
|
||||||
, domains: opts.sites.map(function (site) {
|
|
||||||
return site.name;
|
|
||||||
})
|
|
||||||
, device: { hostname: opts.devicename || opts.device }
|
|
||||||
}).then(function (result) {
|
|
||||||
// { jwt, tunnelUrl }
|
|
||||||
var locals = [];
|
|
||||||
opts.sites.map(function (site) {
|
|
||||||
locals.push({
|
|
||||||
protocol: 'https'
|
|
||||||
, hostname: site.name
|
|
||||||
, port: opts.port
|
|
||||||
});
|
|
||||||
locals.push({
|
|
||||||
protocol: 'http'
|
|
||||||
, hostname: site.name
|
|
||||||
, port: opts.insecurePort || opts.port
|
|
||||||
});
|
|
||||||
});
|
|
||||||
return stunnel.connect({
|
|
||||||
token: result.jwt
|
|
||||||
, stunneld: result.tunnelUrl
|
|
||||||
// XXX TODO BUG // this is just for testing
|
|
||||||
, insecure: /*opts.insecure*/ true
|
|
||||||
, locals: locals
|
|
||||||
// a simple passthru is proving to not be so simple
|
|
||||||
, net: require('net') /*
|
|
||||||
{
|
|
||||||
createConnection: function (info, cb) {
|
|
||||||
// data is the hello packet / first chunk
|
|
||||||
// info = { data, servername, port, host, remoteAddress: { family, address, port } }
|
|
||||||
|
|
||||||
var myDuplex = new (require('stream').Duplex)();
|
|
||||||
var myDuplex2 = new (require('stream').Duplex)();
|
|
||||||
// duplex = { write, push, end, events: [ 'readable', 'data', 'error', 'end' ] };
|
|
||||||
|
|
||||||
myDuplex2.__my_socket = myDuplex;
|
|
||||||
myDuplex.__my_socket = myDuplex2;
|
|
||||||
|
|
||||||
myDuplex2._write = Dup.write;
|
|
||||||
myDuplex2._read = Dup.read;
|
|
||||||
|
|
||||||
myDuplex._write = Dup.write;
|
|
||||||
myDuplex._read = Dup.read;
|
|
||||||
|
|
||||||
myDuplex.remoteFamily = info.remoteFamily;
|
|
||||||
myDuplex.remoteAddress = info.remoteAddress;
|
|
||||||
myDuplex.remotePort = info.remotePort;
|
|
||||||
|
|
||||||
// socket.local{Family,Address,Port}
|
|
||||||
myDuplex.localFamily = 'IPv4';
|
|
||||||
myDuplex.localAddress = '127.0.01';
|
|
||||||
myDuplex.localPort = info.port;
|
|
||||||
|
|
||||||
myDuplex.setTimeout = Dup.setTimeout;
|
|
||||||
|
|
||||||
// this doesn't seem to work so well
|
|
||||||
//servers.server.emit('connection', myDuplex);
|
|
||||||
|
|
||||||
// try a little more manual wrapping / unwrapping
|
|
||||||
var firstByte = info.data[0];
|
|
||||||
if (firstByte < 32 || firstByte >= 127) {
|
|
||||||
tlsServer.emit('connection', myDuplex);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
httpServer.emit('connection', myDuplex);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (cb) {
|
|
||||||
process.nextTick(cb);
|
|
||||||
}
|
|
||||||
|
|
||||||
return myDuplex2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//*/
|
|
||||||
});
|
|
||||||
});
|
|
||||||
};
|
|
11
package.json
11
package.json
|
@ -41,29 +41,26 @@
|
||||||
"bluebird": "^3.4.6",
|
"bluebird": "^3.4.6",
|
||||||
"body-parser": "git+https://github.com/expressjs/body-parser.git#1.16.1",
|
"body-parser": "git+https://github.com/expressjs/body-parser.git#1.16.1",
|
||||||
"commander": "^2.9.0",
|
"commander": "^2.9.0",
|
||||||
"daplie-tunnel": "git+https://git.daplie.com/Daplie/daplie-cli-tunnel.git#master",
|
|
||||||
"ddns-cli": "git+https://git.daplie.com/Daplie/node-ddns-client.git#master",
|
|
||||||
"express": "git+https://github.com/expressjs/express.git#4.x",
|
"express": "git+https://github.com/expressjs/express.git#4.x",
|
||||||
"finalhandler": "^0.4.0",
|
"finalhandler": "^0.4.0",
|
||||||
"greenlock": "git+https://git.daplie.com/Daplie/node-greenlock.git#master",
|
"greenlock": "git+https://git.daplie.com/Daplie/node-greenlock.git#master",
|
||||||
"greenlock-express": "git+https://git.daplie.com/Daplie/greenlock-express.git#master",
|
|
||||||
"httpolyglot": "^0.1.1",
|
|
||||||
"ipaddr.js": "git+https://github.com/whitequark/ipaddr.js.git#v1.3.0",
|
"ipaddr.js": "git+https://github.com/whitequark/ipaddr.js.git#v1.3.0",
|
||||||
"ipify": "^1.1.0",
|
"ipify": "^1.1.0",
|
||||||
"js-yaml": "^3.8.3",
|
"js-yaml": "^3.8.3",
|
||||||
|
"jsonwebtoken": "^7.4.0",
|
||||||
"le-challenge-ddns": "git+https://git.daplie.com/Daplie/le-challenge-ddns.git#master",
|
"le-challenge-ddns": "git+https://git.daplie.com/Daplie/le-challenge-ddns.git#master",
|
||||||
"le-challenge-fs": "git+https://git.daplie.com/Daplie/le-challenge-webroot.git#master",
|
"le-challenge-fs": "git+https://git.daplie.com/Daplie/le-challenge-webroot.git#master",
|
||||||
"le-challenge-sni": "^2.0.1",
|
"le-challenge-sni": "^2.0.1",
|
||||||
"livereload": "^0.6.0",
|
"le-store-certbot": "git+https://git.daplie.com/Daplie/le-store-certbot.git#master",
|
||||||
"localhost.daplie.me-certificates": "^1.3.0",
|
"localhost.daplie.me-certificates": "^1.3.0",
|
||||||
"minimist": "^1.1.1",
|
|
||||||
"oauth3-cli": "git+https://git.daplie.com/OAuth3/oauth3-cli.git#master",
|
|
||||||
"recase": "git+https://git.daplie.com/coolaj86/recase-js.git#v1.0.4",
|
"recase": "git+https://git.daplie.com/coolaj86/recase-js.git#v1.0.4",
|
||||||
"redirect-https": "^1.1.0",
|
"redirect-https": "^1.1.0",
|
||||||
|
"request": "^2.81.0",
|
||||||
"scmp": "git+https://github.com/freewil/scmp.git#1.x",
|
"scmp": "git+https://github.com/freewil/scmp.git#1.x",
|
||||||
"serve-index": "^1.7.0",
|
"serve-index": "^1.7.0",
|
||||||
"serve-static": "^1.10.0",
|
"serve-static": "^1.10.0",
|
||||||
"server-destroy": "^1.0.1",
|
"server-destroy": "^1.0.1",
|
||||||
|
"sni": "^1.0.0",
|
||||||
"socket-pair": "^1.0.0",
|
"socket-pair": "^1.0.0",
|
||||||
"stream-pair": "^1.0.3",
|
"stream-pair": "^1.0.3",
|
||||||
"stunnel": "git+https://git.daplie.com/Daplie/node-tunnel-client.git#v1"
|
"stunnel": "git+https://git.daplie.com/Daplie/node-tunnel-client.git#v1"
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
'use strict';
|
|
||||||
|
|
||||||
var https = require('httpolyglot');
|
|
||||||
var httpsOptions = require('localhost.daplie.me-certificates').merge({});
|
|
||||||
var httpsPort = 8443;
|
|
||||||
var redirectApp = require('redirect-https')({
|
|
||||||
port: httpsPort
|
|
||||||
});
|
|
||||||
|
|
||||||
var server = https.createServer(httpsOptions);
|
|
||||||
|
|
||||||
server.on('request', function (req, res) {
|
|
||||||
if (!req.socket.encrypted) {
|
|
||||||
redirectApp(req, res);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
res.end("Hello, Encrypted World!");
|
|
||||||
});
|
|
||||||
|
|
||||||
server.listen(httpsPort, function () {
|
|
||||||
console.log('https://' + 'localhost.daplie.me' + (443 === httpsPort ? ':' : ':' + httpsPort));
|
|
||||||
});
|
|
Loading…
Reference in New Issue