Merge pull request #10 from alexyan/master

updates
This commit is contained in:
想当当 2014-09-06 10:49:16 +08:00
commit 8f53faea9f
5 changed files with 37 additions and 20 deletions

2
bin.js
View File

@ -32,7 +32,7 @@ if(program.clear){
try{ //for abs path try{ //for abs path
ruleModule = require(program.rule); ruleModule = require(program.rule);
}catch(e){ //for relative path }catch(e){ //for relative path
ruleModule = require("./" + program.rule); ruleModule = require(process.cwd() + '/' + program.rule.replace(/^\.\//,''));
} }
console.log(color.green("rule file loaded")); console.log(color.green("rule file loaded"));
}else{ }else{

View File

@ -5,9 +5,10 @@ var exec = require('child_process').exec,
os = require("os"), os = require("os"),
color = require('colorful'), color = require('colorful'),
readline = require('readline'), readline = require('readline'),
util = require('./util'),
asyncTask = require("async-task-mgr"); asyncTask = require("async-task-mgr");
var certDir = path.join(getUserHome(),"/.anyproxy_certs/"), var certDir = path.join(util.getUserHome(),"/.anyproxy_certs/"),
cmdDir = path.join(__dirname,"..","./cert/"), cmdDir = path.join(__dirname,"..","./cert/"),
asyncTaskMgr = new asyncTask(); asyncTaskMgr = new asyncTask();
@ -37,10 +38,6 @@ function getCertificate(hostname,cb){
} }
} }
function getUserHome() {
return process.env.HOME || process.env.HOMEPATH || process.env.USERPROFILE;
}
function createCert(hostname,callback){ function createCert(hostname,callback){
console.log(hostname); console.log(hostname);
checkRootCA(); checkRootCA();

View File

@ -18,3 +18,8 @@ module.exports.merge = function(baseObj, extendObj){
return baseObj; return baseObj;
} }
module.exports.getUserHome = function(){
return process.env.HOME || process.env.HOMEPATH || process.env.USERPROFILE;
}

View File

@ -3,6 +3,7 @@ try{
GLOBAL.util = require('./lib/util'); GLOBAL.util = require('./lib/util');
GLOBAL.util['iconv-lite'] = require("iconv-lite"); GLOBAL.util['iconv-lite'] = require("iconv-lite");
GLOBAL.util['colorful'] = require("colorful"); GLOBAL.util['colorful'] = require("colorful");
GLOBAL.util['path'] = require("path");
}catch(e){} }catch(e){}
var http = require('http'), var http = require('http'),
@ -19,6 +20,7 @@ var http = require('http'),
util = require("./lib/util"), util = require("./lib/util"),
entities = require("entities"), entities = require("entities"),
express = require("express"), express = require("express"),
path = require("path"),
WebSocketServer= require('ws').Server; WebSocketServer= require('ws').Server;
GLOBAL.recorder = new Recorder(); GLOBAL.recorder = new Recorder();
@ -31,6 +33,18 @@ var T_TYPE_HTTP = 0,
DEFAULT_HOST = "localhost", DEFAULT_HOST = "localhost",
DEFAULT_TYPE = T_TYPE_HTTP; DEFAULT_TYPE = T_TYPE_HTTP;
var default_rule = require('./lib/rule_default');
var anyproxyHome = path.join(util.getUserHome(),"/.anyproxy/");
if(!fs.existsSync(anyproxyHome)){
fs.mkdirSync(anyproxyHome);
}
if(fs.existsSync(path.join(anyproxyHome,"rule_default.js"))){
default_rule = require(path.join(anyproxyHome,"rule_default"));
}
if(fs.existsSync(process.cwd() + '/rule.js')){
default_rule = require(process.cwd() + '/rule');
}
//option //option
//option.type : 'http'(default) or 'https' //option.type : 'http'(default) or 'https'
//option.port : 8001(default) //option.port : 8001(default)
@ -43,7 +57,7 @@ function proxyServer(option){
proxyType = /https/i.test(option.type || DEFAULT_TYPE) ? T_TYPE_HTTPS : T_TYPE_HTTP , proxyType = /https/i.test(option.type || DEFAULT_TYPE) ? T_TYPE_HTTPS : T_TYPE_HTTP ,
proxyPort = option.port || DEFAULT_PORT, proxyPort = option.port || DEFAULT_PORT,
proxyHost = option.hostname || DEFAULT_HOST, proxyHost = option.hostname || DEFAULT_HOST,
proxyRules = option.rule || require('./lib/rule_default'); proxyRules = option.rule || default_rule;
requestHandler.setRules(proxyRules); //TODO : optimize calling for set rule requestHandler.setRules(proxyRules); //TODO : optimize calling for set rule
self.httpProxyServer = null; self.httpProxyServer = null;

File diff suppressed because one or more lines are too long