mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-23 22:10:55 +01:00
ab4324148a
Summary: Currently, the Aphlict server will crash if invalid JSON data is `POST`ed to it. I have fixed this to, instead, return a 400. Also made some minor formatting changes. Ref T4324. Ref T5284. Also, modify the data structure that is passed around (i.e. `POST`ed to the Aphlict server and broadcast to the Aphlict clients) to include the subscribers. Initially, I figured that we shouldn't expose this information to the clients... however, it is necessary for T4324 that the `AphlictMaster` is able to route a notification to the appropriate clients. Test Plan: Making the following `curl` request: `curl --data "{" http://localhost:22281/`. **Before** ``` sudo ./bin/aphlict debug Starting Aphlict server in foreground... Launching server: $ 'nodejs' '/usr/src/phabricator/src/applications/aphlict/management/../../../../support/aphlict/server/aphlict_server.js' --port='22280' --admin='22281' --host='localhost' --user='aphlict' [Wed Jun 11 2014 17:07:51 GMT+0000 (UTC)] Started Server (PID 2033) [Wed Jun 11 2014 17:07:55 GMT+0000 (UTC)] <<< UNCAUGHT EXCEPTION! >>> SyntaxError: Unexpected end of input >>> Server exited! ``` **After** (No output... the bad JSON is caught and a 400 is returned) Reviewers: #blessed_reviewers, epriestley Reviewed By: #blessed_reviewers, epriestley Subscribers: epriestley, Korvin Maniphest Tasks: T4324, T5284 Differential Revision: https://secure.phabricator.com/D9480
52 lines
1 KiB
JavaScript
52 lines
1 KiB
JavaScript
var JX = require('javelin').JX;
|
|
|
|
var fs = require('fs');
|
|
var util = require('util');
|
|
|
|
JX.install('AphlictLog', {
|
|
construct: function() {
|
|
this._writeToLogs = [];
|
|
this._writeToConsoles = [];
|
|
},
|
|
|
|
members: {
|
|
_writeToConsoles: null,
|
|
_writeToLogs: null,
|
|
|
|
addLogfile: function(path) {
|
|
var options = {
|
|
flags: 'a',
|
|
encoding: 'utf8',
|
|
mode: 066
|
|
};
|
|
|
|
var logfile = fs.createWriteSteam(path, options);
|
|
|
|
this._writeToLogs.push(logfile);
|
|
|
|
return this;
|
|
},
|
|
|
|
addConsole: function(console) {
|
|
this._writeToConsoles.push(console);
|
|
return this;
|
|
},
|
|
|
|
log: function(pattern) {
|
|
var str = util.format.apply(null, arguments);
|
|
var date = new Date().toLocaleString();
|
|
str = '[' + date + '] ' + str;
|
|
|
|
var ii;
|
|
for (ii = 0; ii < this._writeToConsoles.length; ii++) {
|
|
this._writeToConsoles[ii].log(str);
|
|
}
|
|
|
|
for (ii = 0; ii < this._writeToLogs.length; ii++) {
|
|
this._writeToLogs[ii].write(str + "\n");
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
});
|