changed sync reading of certs to async

This commit is contained in:
coderaiser 2013-03-18 05:50:26 -04:00
parent c4f5b863aa
commit 5826d165f0
5 changed files with 120 additions and 53 deletions

View file

@ -41,6 +41,8 @@ writed root directory.
* Changed the way file table building. From now templating used.
* Changed sync reading of certs to async.
2012.03.01, Version 0.1.9

View file

@ -28,7 +28,7 @@
/* reinit main dir os if we on
* Win32 should be backslashes */
DIR = main.DIR;
readConfig(init);
@ -181,14 +181,27 @@
route : route
};
if(Config.ssl)
lParams.ssl = {
ca : fs.readFileSync(DIR + 'ssl/sub.class1.server.ca.pem'),
key : fs.readFileSync(DIR + 'ssl/ssl.key'),
cert : fs.readFileSync(DIR + 'ssl/ssl.crt')
};
server.start(lParams);
if(Config.ssl){
var CA = DIR + 'ssl/sub.class1.server.ca.pem',
KEY = DIR + 'ssl/ssl.key',
CERT = DIR + 'ssl/ssl.crt';
readFiles([ CA, KEY, CERT ], function(pErrors, pFiles){
if(pErrors)
Util.log(pErrors);
else{
lParams.ssl = {
ca : pFiles[CA],
key : pFiles[KEY],
cert : pFiles[CERT]
};
server.start(lParams);
}
});
}
else
server.start(lParams);
}
else
Util.log('read error: config.json');
@ -308,6 +321,46 @@
}
}
function readFiles(pFiles, pCallBack){
var lDone = [],
lFiles,
lErrors,
lReadedFiles = {},
lDoneFunc = function (pParams){
var lRet = Util.checkObj(pParams, ['error', 'data', 'params']);
if(lRet){
lDone.pop();
var p = pParams,
lName = p.params;
if(p.error){
if(!lErrors) lErrors = {};
lErrors[lName] = p.error;
}
else
lReadedFiles[lName] = p.data;
if( !lDone.length )
Util.exec(pCallBack, lErrors, lReadedFiles);
}
};
if( Util.isArray(pFiles) )
lFiles = pFiles;
else
lFiles = [pFiles];
for(var i = 0, n = lFiles.length; i < n; i++){
var lName = lFiles.pop();
lDone.push(lName);
fs.readFile(lName, Util.call( lDoneFunc, lName ));
}
}
/* function sets stdout to file log.txt */
function writeLogsToFile(){

View file

@ -536,12 +536,12 @@ var CloudCommander, Util,
*/
DOM.anyLoadInParallel = function(pParams_a, pFunc){
var lRet = this,
done = [],
lDone = [],
doneFunc = function (pCallBack){
lDoneFunc = function (pCallBack){
Util.exec(pCallBack);
if( !done.pop() )
if( !lDone.pop() )
Util.exec(pFunc);
};
@ -553,13 +553,13 @@ var CloudCommander, Util,
var lParam = pParams_a.pop();
if(lParam){
done.push(i);
lDone.push(i);
if(Util.isString(lParam) )
lParam = { src : lParam };
var lFunc = lParam.func;
lParam.func = Util.retExec(doneFunc, lFunc);
lParam.func = Util.retExec(lDoneFunc, lFunc);
DOM.anyload(lParam);
}

View file

@ -372,45 +372,57 @@ var CloudFunc, exports, Util;
}
for(var i = 1, n = files.length; i < n; i++){
var lFile = files[i];
var lFile = files[i],
lOwner = !lFile.uid ? 'root' : lFile.uid,
lMode = CloudFunc.getSymbolicPermissions(lFile.mode),
lType, lSize;
if(lFile.size === 'dir'){
lType = 'directory',
lSize = '&lt;dir&gt;';
}else{
lType = 'text-file';
lSize = CloudFunc.getShortSize( lFile.size );
}
lFileTable += '<li draggable class>';
lFileTable += '<span draggable class="mini-icon ';
/* если папка - выводим другую иконку */
lFileTable += (lFile.size==='dir'?
'directory':'text-file') +
'">';
lFileTable += '</span>';
lFileTable += '<span draggable class=name>' +
'<a href="' + FS + lPath + files[i].name +
'"' +
/* открываем файлы */
/*в новой вкладке */
(lFile.size === 'dir' ?
'' : ' target="_blank"') +
' title="' + lFile.name +'"' +
' draggable=true>' + lFile.name +
"</a>" +
'</span>';
/* если папка - не выводим размер */
lFileTable += '<span draggable class=size>' +
(lFile.size === 'dir' ?
'&lt;dir&gt;'
/* если это файл - получаем
* короткий размер
*/
: CloudFunc.getShortSize(
lFile.size));
lFileTable += '</span>' +
'<span draggable class=owner>' +
(!lFile.uid ? 'root' : lFile.uid) +
'</span>' +
'<span draggable class=mode>' +
CloudFunc.getSymbolicPermissions(lFile.mode)+
if(pTemplate)
lFileTable += Util.render(pTemplate,{
type : lType,
link : FS + lPath + lFile.name,
name : lFile.name,
size : '&lt;dir&gt;',
owner : lOwner,
mode : lMode
});
else
{
lFileTable += '<li draggable class>';
lFileTable += '<span draggable class="mini-icon ';
/* если папка - выводим другую иконку */
lFileTable += lType + '">' +
'</span>' +
'<span draggable class=name>' +
'<a href="' + FS + lPath + lFile.name +
'"' +
/* открываем файлы */
/*в новой вкладке */
(lFile.size === 'dir' ?
'' : ' target="_blank"') +
' title="' + lFile.name +'"' +
' draggable=true>' + lFile.name +
"</a>" +
'</span>';
lFileTable += '</li>';
/* если папка - не выводим размер */
lFileTable += '<span draggable class=size>' + lSize +
'</span>' +
'<span draggable class=owner>' + lOwner +
'</span>' +
'<span draggable class=mode>' + lMode +
'</span>';
lFileTable += '</li>';
}
}
return lFileTable;

View file

@ -31,13 +31,13 @@ Util = exports || {};
* @param pParams
*/
Util.call = function(pFunc, pParams){
var lFunc = function(pError, pData){
function lFunc(pError, pData){
Util.exec(pFunc, {
error : pError,
data : pData,
params : pParams
});
};
}
return lFunc;
};