Fix: More asynchronous operations to fix stack overflow.
This commit is contained in:
parent
a3b5580d40
commit
23cd31e064
2 changed files with 90 additions and 70 deletions
|
@ -24,7 +24,7 @@
|
|||
},
|
||||
|
||||
"dependencies": {
|
||||
"async": "1.5.2",
|
||||
"async": "2.0.0-rc.6",
|
||||
"body-parser": "1.15.1",
|
||||
"command-line-args": "3.0.0",
|
||||
"command-line-usage": "3.0.1",
|
||||
|
|
|
@ -44,11 +44,25 @@ angular.module('ffffng')
|
|||
return glob.sync(config.server.peersPath + '/' + pattern.toLowerCase());
|
||||
}
|
||||
|
||||
function findFilesInPeersPath() {
|
||||
var files = glob.sync(config.server.peersPath + '/*');
|
||||
function findFilesInPeersPath(callback) {
|
||||
glob(config.server.peersPath + '/*', function (err, files) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
return _.filter(files, function (file) {
|
||||
return file[0] !== '.' && fs.lstatSync(file).isFile();
|
||||
async.filter(files, function (file, fileCallback) {
|
||||
if (file[0] === '.') {
|
||||
return fileCallback(null, false);
|
||||
}
|
||||
|
||||
fs.lstat(file, function (err, stats) {
|
||||
if (err) {
|
||||
return fileCallback(err);
|
||||
}
|
||||
|
||||
fileCallback(null, stats.isFile());
|
||||
});
|
||||
}, callback);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -199,7 +213,12 @@ angular.module('ffffng')
|
|||
}
|
||||
|
||||
function parseNodeFile(file, callback) {
|
||||
var lines = fs.readFileSync(file).toString();
|
||||
fs.readFile(file, function (err, contents) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
var lines = contents.toString();
|
||||
|
||||
var node = {};
|
||||
var nodeSecrets = {};
|
||||
|
@ -240,6 +259,7 @@ angular.module('ffffng')
|
|||
});
|
||||
|
||||
callback(null, node, nodeSecrets);
|
||||
});
|
||||
}
|
||||
|
||||
function findNodeDataByFilePattern(filter, callback) {
|
||||
|
@ -414,7 +434,10 @@ angular.module('ffffng')
|
|||
},
|
||||
|
||||
fixNodeFilenames: function (callback) {
|
||||
var files = findFilesInPeersPath();
|
||||
findFilesInPeersPath(function (err, files) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
async.mapLimit(
|
||||
files,
|
||||
|
@ -427,26 +450,23 @@ angular.module('ffffng')
|
|||
|
||||
var expectedFilename = toNodeFilename(node.token, node, nodeSecrets);
|
||||
if (file !== expectedFilename) {
|
||||
try {
|
||||
fs.renameSync(file, expectedFilename);
|
||||
} catch (e) {
|
||||
return fs.rename(file, expectedFilename, function (err) {
|
||||
if (err) {
|
||||
return fileCallback(new Error(
|
||||
'Cannot rename file ' + file + ' to ' + expectedFilename + ' => ' + e
|
||||
'Cannot rename file ' + file + ' to ' + expectedFilename + ' => ' + err
|
||||
));
|
||||
}
|
||||
|
||||
fileCallback(null);
|
||||
});
|
||||
}
|
||||
|
||||
fileCallback(null);
|
||||
});
|
||||
},
|
||||
function (err) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
|
||||
return callback(null);
|
||||
}
|
||||
callback
|
||||
);
|
||||
});
|
||||
}
|
||||
};
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue