update version

This commit is contained in:
VincentChanX
2017-04-06 14:56:42 +08:00
parent f6e8fc4ed1
commit 5dabe063ec
4 changed files with 45 additions and 35 deletions

View File

@@ -2,7 +2,7 @@ const TCPRelay = require('./tcprelay').TCPRelay;
const local = require('commander'); const local = require('commander');
local local
.version('0.1.1') .version('0.1.2')
.option('-m --method [method]', 'encryption method, default: aes-256-cfb') .option('-m --method [method]', 'encryption method, default: aes-256-cfb')
.option('-k --password [password]', 'password') .option('-k --password [password]', 'password')
.option('-s --server-address [address]', 'server address') .option('-s --server-address [address]', 'server address')

View File

@@ -1,6 +1,6 @@
{ {
"name": "shadowsocks-over-websocket", "name": "shadowsocks-over-websocket",
"version": "0.1.1", "version": "0.1.2",
"description": "A fast tunnel proxy that helps you bypass firewalls", "description": "A fast tunnel proxy that helps you bypass firewalls",
"main": "tcprelay.js", "main": "tcprelay.js",
"scripts": { "scripts": {

View File

@@ -2,7 +2,7 @@ const TCPRelay = require('./tcprelay').TCPRelay;
const server = require('commander'); const server = require('commander');
server server
.version('0.1.1') .version('0.1.2')
.option('-m --method [method]', 'encryption method, default: aes-256-cfb') .option('-m --method [method]', 'encryption method, default: aes-256-cfb')
.option('-k --password [password]', 'password') .option('-k --password [password]', 'password')
.option('-s --server-address [address]', 'server address') .option('-s --server-address [address]', 'server address')

View File

@@ -107,47 +107,57 @@ TCPRelay.prototype.getServerName = function() {
TCPRelay.prototype.bootstrap = function() { TCPRelay.prototype.bootstrap = function() {
this.init(); return this.init();
}; };
TCPRelay.prototype.stop = function() { TCPRelay.prototype.stop = function() {
if (this.server) { return new Promise(function(resolve, reject) {
this.server.close(); if (this.server) {
} this.server.close(function() {
resolve();
});
} else {
resolve();
}
});
}; };
TCPRelay.prototype.init = function() { TCPRelay.prototype.init = function() {
var self = this; return new Promise(function(resolve, reject) {
var config = self.config; var self = this;
var port = self.isLocal ? config.localPort : config.serverPort; var config = self.config;
var address = self.isLocal ? config.localAddress : config.serverAddress; var port = self.isLocal ? config.localPort : config.serverPort;
var server; var address = self.isLocal ? config.localAddress : config.serverAddress;
var server;
if (self.isLocal) { if (self.isLocal) {
server = self.server = net.createServer({ server = self.server = net.createServer({
allowHalfOpen: true, allowHalfOpen: true,
});
server.maxConnections = MAX_CONNECTIONS;
server.on('connection', function(connection) {
return self.handleConnectionByLocal(connection);
});
server.listen(port, address);
} else {
server = self.server = new WebSocket.Server({
host: address,
port: port,
perMessageDeflate: false,
backlog: MAX_CONNECTIONS
});
server.on('connection', function(connection) {
return self.handleConnectionByServer(connection);
});
}
server.on('error', function(error) {
self.logger.error('an error of', self.getServerName(), 'occured', error);
reject(error);
}); });
server.maxConnections = MAX_CONNECTIONS; server.on('listening', function() {
server.on('connection', function(connection) { self.logger.info(self.getServerName(), 'is listening on', address + ':' + port);
return self.handleConnectionByLocal(connection); resolve();
}); });
server.listen(port, address);
} else {
server = self.server = new WebSocket.Server({
host: address,
port: port,
perMessageDeflate: false,
backlog: MAX_CONNECTIONS
});
server.on('connection', function(connection) {
return self.handleConnectionByServer(connection);
});
}
server.on('error', function(error) {
self.logger.error('an error of', self.getServerName(), 'occured', error);
});
server.on('listening', function() {
self.logger.info(self.getServerName(), 'is listening on', address + ':' + port);
}); });
}; };