Better logging

This commit is contained in:
Bryan Ashby 2018-12-15 02:40:36 -07:00
parent faf076f3e3
commit cf6e3d3ba8

View File

@ -276,7 +276,7 @@ class NNTPServer extends NNTPServerBase {
_getArticle(session, messageId) { _getArticle(session, messageId) {
return new Promise( resolve => { return new Promise( resolve => {
this.log.trace( { messageId }, 'Get article request'); this.log.trace( { messageId }, 'Get article');
const messageUuid = this.getMessageUUIDFromMessageID(session, messageId); const messageUuid = this.getMessageUUIDFromMessageID(session, messageId);
if(!messageUuid) { if(!messageUuid) {
@ -291,14 +291,18 @@ class NNTPServer extends NNTPServerBase {
return message.load( { uuid : messageUuid }, callback); return message.load( { uuid : messageUuid }, callback);
}, },
(callback) => { (callback) => {
// :TODO: Must validate access! See Gopher, etc. !!!!! if(!_.has(session, 'groupInfo.areaTag')) {
// :TODO: we can only do this if a <message-id> style was sent in, not a direct ID ?????? // :TODO: if this is needed, how to validate properly?
this.log.warn( { messageUuid, messageId }, 'Get article request without group selection');
return resolve(null);
}
if(session.groupInfo.areaTag !== message.areaTag) { if(session.groupInfo.areaTag !== message.areaTag) {
return resolve(null); return resolve(null);
} }
if(!this.hasConfAndAreaReadAccess(session, session.groupInfo.confTag, session.groupInfo.areaTag)) { if(!this.hasConfAndAreaReadAccess(session, session.groupInfo.confTag, session.groupInfo.areaTag)) {
this.log.info(`Access denied to message ${messageUuid}`); this.log.info( { messageUuid, messageId}, 'Access denied for message');
return resolve(null); return resolve(null);
} }
@ -519,6 +523,7 @@ class NNTPServer extends NNTPServerBase {
friendlyDesc : area.desc, friendlyDesc : area.desc,
nntp : { nntp : {
name : groupName, name : groupName,
description : area.desc,
min_index : 0, min_index : 0,
max_index : 0, max_index : 0,
total : 0, total : 0,
@ -566,14 +571,15 @@ class NNTPServer extends NNTPServerBase {
_buildHeaderField(session, message, field) { _buildHeaderField(session, message, field) {
const body = message.preparedBody || message.message; const body = message.preparedBody || message.message;
const value = { const value = {
':bytes' : Buffer.byteLength(body).toString(), ':bytes' : Buffer.byteLength(body).toString(),
':lines' : splitTextAtTerms(body).length.toString(), ':lines' : splitTextAtTerms(body).length.toString(),
}[field] || _.find(message.nntpHeaders, (v, k) => { }[field]
return k.toLowerCase() === field; || _.find(message.nntpHeaders, (v, k) => {
}); return k.toLowerCase() === field;
});
if(!value) { if(!value) {
this.log.debug(`No value for requested header field "${field}"`); this.log.trace(`No value for requested header field "${field}"`);
} }
return value; return value;