MAJOR: Updates for Authenticated Web UI and CLI #30
| @ -401,6 +401,7 @@ function parseConfig(err, text) { | |||||||
|     //console.log("no questioning:");
 |     //console.log("no questioning:");
 | ||||||
|     parseCli(state); |     parseCli(state); | ||||||
|   } |   } | ||||||
|  | 
 | ||||||
|   function parseCli(/*state*/) { |   function parseCli(/*state*/) { | ||||||
|     var special = [ |     var special = [ | ||||||
|       'false', 'none', 'off', 'disable' |       'false', 'none', 'off', 'disable' | ||||||
| @ -472,7 +473,7 @@ function parseConfig(err, text) { | |||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   state._clientConfig = camelCopy(state._clientConfig || {}) || {}; |   state._clientConfig = camelCopy(state._clientConfig || {}) || {}; | ||||||
|   RC = require('../lib/remote-control-client.js').create(state); |   RC = require('../lib/rc/index.js').create(state); | ||||||
| 
 | 
 | ||||||
|   if (!Object.keys(state._clientConfig).length) { |   if (!Object.keys(state._clientConfig).length) { | ||||||
|     console.info('(' + state._ipc.comment + ": " + state._ipc.path + ')'); |     console.info('(' + state._ipc.comment + ": " + state._ipc.path + ')'); | ||||||
|  | |||||||
| @ -24,7 +24,7 @@ var camelCopy = recase.camelCopy.bind(recase); | |||||||
| var snakeCopy = recase.snakeCopy.bind(recase); | var snakeCopy = recase.snakeCopy.bind(recase); | ||||||
| var TPLS = TOML.parse(fs.readFileSync(path.join(__dirname, "../lib/en-us.toml"), 'utf8')); | var TPLS = TOML.parse(fs.readFileSync(path.join(__dirname, "../lib/en-us.toml"), 'utf8')); | ||||||
| 
 | 
 | ||||||
| var TelebitRemote = require('../').TelebitRemote; | var TelebitRemote = require('../lib/daemon/index.js').TelebitRemote; | ||||||
| 
 | 
 | ||||||
| var state = { homedir: os.homedir(), servernames: {}, ports: {}, keepAlive: { state: false } }; | var state = { homedir: os.homedir(), servernames: {}, ports: {}, keepAlive: { state: false } }; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -28,6 +28,7 @@ function TelebitRemote(state) { | |||||||
|   EventEmitter.call(this); |   EventEmitter.call(this); | ||||||
|   var me = this; |   var me = this; | ||||||
|   var priv = {}; |   var priv = {}; | ||||||
|  |   var path = require('path'); | ||||||
| 
 | 
 | ||||||
|   //var defaultHttpTimeout = (2 * 60);
 |   //var defaultHttpTimeout = (2 * 60);
 | ||||||
|   //var activityTimeout = state.activityTimeout || (defaultHttpTimeout - 5) * 1000;
 |   //var activityTimeout = state.activityTimeout || (defaultHttpTimeout - 5) * 1000;
 | ||||||
| @ -39,8 +40,9 @@ function TelebitRemote(state) { | |||||||
|   priv.tokens = []; |   priv.tokens = []; | ||||||
|   var auth; |   var auth; | ||||||
|   if(!state.sortingHat) { |   if(!state.sortingHat) { | ||||||
|     state.sortingHat = "./sorting-hat.js"; |     state.sortingHat = path.join(__dirname, '../sorting-hat.js'); | ||||||
|   } |   } | ||||||
|  |   state._connectionHandler = require(state.sortingHat); | ||||||
|   if (state.token) { |   if (state.token) { | ||||||
|     if ('undefined' === state.token) { |     if ('undefined' === state.token) { | ||||||
|       throw new Error("passed string 'undefined' as token"); |       throw new Error("passed string 'undefined' as token"); | ||||||
| @ -349,7 +351,7 @@ function TelebitRemote(state) { | |||||||
| 
 | 
 | ||||||
|       // TODO use readable streams instead
 |       // TODO use readable streams instead
 | ||||||
|       wstunneler._socket.pause(); |       wstunneler._socket.pause(); | ||||||
|       require(state.sortingHat).assign(state, tun, function (err, conn) { |       state._connectionHandler.assign(state, tun, function (err, conn) { | ||||||
|         if (err) { |         if (err) { | ||||||
|           err.message = err.message.replace(/:tun_id/, tun._id); |           err.message = err.message.replace(/:tun_id/, tun._id); | ||||||
|           packerHandlers._onConnectError(cid, tun, err); |           packerHandlers._onConnectError(cid, tun, err); | ||||||
| @ -472,12 +474,12 @@ function TelebitRemote(state) { | |||||||
|     priv.timeoutId = null; |     priv.timeoutId = null; | ||||||
|     var machine = Packer.create(packerHandlers); |     var machine = Packer.create(packerHandlers); | ||||||
| 
 | 
 | ||||||
|     console.info("[telebit:lib/remote.js] [connect] '" + (state.wss || state.relay) + "'"); |     console.info("[telebit:lib/daemon.js] [connect] '" + (state.wss || state.relay) + "'"); | ||||||
|     var tunnelUrl = (state.wss || state.relay).replace(/\/$/, '') + '/'; // + auth;
 |     var tunnelUrl = (state.wss || state.relay).replace(/\/$/, '') + '/'; // + auth;
 | ||||||
|     wstunneler = new WebSocket(tunnelUrl, { rejectUnauthorized: !state.insecure }); |     wstunneler = new WebSocket(tunnelUrl, { rejectUnauthorized: !state.insecure }); | ||||||
|     // XXXXXX
 |     // XXXXXX
 | ||||||
|     wstunneler.on('open', function () { |     wstunneler.on('open', function () { | ||||||
|       console.info("[telebit:lib/remote.js] [open] connected to '" + (state.wss || state.relay) + "'"); |       console.info("[telebit:lib/daemon.js] [open] connected to '" + (state.wss || state.relay) + "'"); | ||||||
|       me.emit('connect'); |       me.emit('connect'); | ||||||
|       priv.refreshTimeout(); |       priv.refreshTimeout(); | ||||||
|       priv.timeoutId = setTimeout(priv.checkTimeout, activityTimeout); |       priv.timeoutId = setTimeout(priv.checkTimeout, activityTimeout); | ||||||
| @ -4,7 +4,7 @@ var os = require('os'); | |||||||
| var path = require('path'); | var path = require('path'); | ||||||
| var http = require('http'); | var http = require('http'); | ||||||
| 
 | 
 | ||||||
| var common = require('./cli-common.js'); | var common = require('../cli-common.js'); | ||||||
| 
 | 
 | ||||||
| function packConfig(config) { | function packConfig(config) { | ||||||
|   return Object.keys(config).map(function (key) { |   return Object.keys(config).map(function (key) { | ||||||
| @ -1,8 +1,8 @@ | |||||||
| { | { | ||||||
|   "name": "telebit", |   "name": "telebit", | ||||||
|   "version": "0.20.4", |   "version": "0.20.5-wip", | ||||||
|   "description": "Break out of localhost. Connect to any device from anywhere over any tcp port or securely in a browser. A secure tunnel. A poor man's reverse VPN.", |   "description": "Break out of localhost. Connect to any device from anywhere over any tcp port or securely in a browser. A secure tunnel. A poor man's reverse VPN.", | ||||||
|   "main": "lib/remote.js", |   "main": "lib/daemon/index.js", | ||||||
|   "files": [ |   "files": [ | ||||||
|     "bin", |     "bin", | ||||||
|     "lib", |     "lib", | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user