diff --git a/index.js b/index.js index 9ff1179..edcae82 100644 --- a/index.js +++ b/index.js @@ -61,8 +61,8 @@ function parsePRI(raw) { // PRI means Priority, includes Facility and Severity // e.g. 10110111 = 10110: facility 111: severity var binary = (~~raw).toString(2) - var facility = parseInt(binary.substr(binary.length - 3), 2) - var severity = parseInt(binary.substring(0, binary.length - 3), 2) + var severity = parseInt(binary.substr(binary.length - 3), 2) + var facility = parseInt(binary.substring(0, binary.length - 3), 2) || 0 return [facility, severity] } diff --git a/test/index.js b/test/index.js index 637eaf7..df99ec7 100644 --- a/test/index.js +++ b/test/index.js @@ -1,39 +1,62 @@ var dgram = require('dgram') var assert = require('assert') -let mocha = require( 'mocha' ) var Syslogd = require('../') describe( "given a syslogd service", () => { - it( "recieves and processes messages", (done) => { + it( "receives and processes messages", (done) => { var time = 'Dec 15 10:58:44' var testMsg = '<183>' + time + ' hostname tag: info' const port = 10514 Syslogd(function(info) { - //console.log(info) info.port = null // port is random - var shouldRet = { - facility: 7 - , severity: 22 + var shouldReturn = { + facility: 22 + , severity: 7 , tag: 'tag' - , time: new Date(time + ' ' + new Date().getFullYear()) + , time: new Date( time + ' ' + new Date().getFullYear() ) , hostname: 'hostname' , address: '127.0.0.1' , family: 'IPv4' , port: null - , size: 39 + , size: testMsg.length , msg: 'info' } - assert.deepEqual(shouldRet, info) + assert.deepStrictEqual( info, shouldReturn ) done() - }).listen( port, function(err) { // sudo - //console.log('listen', err) - assert(!err) - var client = dgram.createSocket('udp4') - var buffer = new Buffer(testMsg) - client.send(buffer, 0, buffer.length, port, 'localhost', function(err, bytes) { - //console.log('send', err, bytes) - }) + }).listen( port, function(err) { + assert.ifError( err ) + var client = dgram.createSocket( 'udp4' ) + var buffer = Buffer.from( testMsg ) + client.send( buffer, 0, buffer.length, port, 'localhost' ) + }) + }) + it( "decodes correctly with short PRI", (done) => { + var time = 'May 29 14:52:40' + var testMsg = '<4>' + time + ' hostname tag: info' + const port = 10515 + + Syslogd(function(info) { + info.port = null // port is random + var shouldReturn = { + facility: 0 + , severity: 4 + , tag: 'tag' + , time: new Date( time + ' ' + new Date().getFullYear() ) + , hostname: 'hostname' + , address: '127.0.0.1' + , family: 'IPv4' + , port: null + , size: testMsg.length + , msg: 'info' + } + assert.deepStrictEqual( info, shouldReturn ) + done() + }).listen( port, function(err) { + assert.ifError( err ) + var client = dgram.createSocket( 'udp4' ) + var buffer = Buffer.from( testMsg ) + client.send( buffer, 0, buffer.length, port, 'localhost' ) }) }) }) diff --git a/test/tcp.js b/test/tcp.js index 15e16d5..6f93339 100644 --- a/test/tcp.js +++ b/test/tcp.js @@ -1,6 +1,5 @@ // vim: set ft=javascript tabstop=4 softtabstop=4 shiftwidth=4 autoindent: var assert = require('assert') -let mocha = require( 'mocha' ) var net = require('net') describe( "given a TCP Syslog Server", () => { @@ -16,11 +15,11 @@ describe( "given a TCP Syslog Server", () => { info.port = null // port is random info.address = null info.family = null - var shouldRet = { - facility: 7 - , severity: 22 + var shouldReturn = { + facility: 22 + , severity: 7 , tag: 'tag' - , time: new Date(time + ' ' + new Date().getFullYear()) + , time: new Date( time + ' ' + new Date().getFullYear() ) , hostname: 'hostname' , address: null , family: null @@ -28,13 +27,13 @@ describe( "given a TCP Syslog Server", () => { , size: testMsg.length , msg: 'info' } - assert.deepEqual(shouldRet, info) + assert.deepStrictEqual( info, shouldReturn ) done() }).listen( port, function(err, service ) { // sudo assert.ifError( err ) - var buffer = new Buffer(testMsg) + var buffer = Buffer.from( testMsg ) var client = net.connect( service.port, 'localhost', function() { - client.write(buffer, function(err, bytes) { + client.write( buffer, function(err) { assert.ifError( err ) client.end() })