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