spawnSteam.on('close', function (code) { if(code == 0){ logUtil.printLog(color.green("rootCA generated")); logUtil.printLog(color.green(color.bold("please trust the rootCA.crt in " + certDir))); logUtil.printLog(color.green(color.bold("or you may get it via anyproxy webinterface"))); }else{ logUtil.printLog(color.red("fail to generate root CA"),logUtil.T_ERR); } //process.exit(0); });
function printData(record){ console.log(""); if(record.success){ console.log(color.green( color.bold("success - " + record.desc) )); console.log("statusCode - %j",record.statusCode); console.log("content-type - %j", record.resHeader['content-type']); console.log("length - %j byte",record.length); console.log("duration - %j ms",(record.end - record.start)); }else{ console.log(color.red( color.bold("failed - " + record.desc) )); console.log(record.error); } console.log(""); }
function printResult(results){ //print all results data var successCount = 0, totalCount = results.length; results.map(function(record, index){ record.success && ++successCount; }); for(var index in results){ printData(results[index]); } console.log(color.bold("======summary========")); console.log(color.bold("success : %d / %d"),successCount, totalCount); console.log(color.bold("=====================")); }
exec(cmd,{ cwd : certDir },function(err,stdout,stderr){ if(err){ callback && callback(new Error("error when generating certificate"),null); }else{ var tipText = "certificate created for __HOST".replace(/__HOST/,hostname); logUtil.printLog(color.yellow(color.bold("[internal https]")) + color.yellow(tipText)) ; callback(null); } });
],function(err,result){ if(!err){ var tipText = "proxy server for __NAME established".replace("__NAME",serverName); logUtil.printLog(color.yellow(color.bold("[internal https]")) + color.yellow(tipText)); SNICallback(null,ctx); }else{ logUtil.printLog("err occurred when prepare certs for SNI - " + err, logUtil.T_ERR); logUtil.printLog("you may upgrade your Node.js to the lastest version", logUtil.T_ERR); } });
setInterval(function(){ var timeNow = new Date().getTime(); for(var serverName in self.serverList){ var item = self.serverList[serverName]; if( (timeNow - item.lastestUse) > DEFAULT_RELEASE_TIME){ item.server.close(); delete self.serverList[serverName]; console.log(color.yellow(color.bold("[internal https]")) + color.yellow("https server released : " + serverName)); } } },DEFAULT_RELEASE_TIME);
certMgr.getCertificate(hostname,function(err,keyContent,crtContent){ var server = createHttpsServer(port,keyContent,crtContent,userRequesthandler); self.serverList[hostname] = { port : port, server : server, lastestUse : new Date().getTime() }; var tipText = "https server @port __portNum for __HOST established".replace(/__portNum/,port).replace(/__HOST/,hostname); console.log(color.yellow(color.bold("[internal https]")) + color.yellow(tipText)); callback && callback(null,port); });
//final callback function(err,result){ if(!err){ var tipText = (proxyType == T_TYPE_HTTP ? "Http" : "Https") + " proxy started at " + color.bold(ip.address() + ":" + proxyPort); console.log(color.green(tipText)); }else{ var tipText = "err when start proxy server :("; console.log(color.red(tipText)); console.log(err); } }