Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -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]
}

Expand Down
57 changes: 40 additions & 17 deletions test/index.js
Original file line number Diff line number Diff line change
@@ -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' )
})
})
})
15 changes: 7 additions & 8 deletions test/tcp.js
Original file line number Diff line number Diff line change
@@ -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", () => {
Expand All @@ -16,25 +15,25 @@ 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
, port: null
, 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()
})
Expand Down