pino-socket
Advanced tools
Comparing version 7.2.0 to 7.3.0
@@ -25,1 +25,2 @@ | ||
| --recovery-queue-max-size maximum size of items added to the recovery queue; default: 1024 | ||
| --max-udp-packet-size maximum size of udp packet; default: unlimited |
@@ -20,3 +20,4 @@ 'use strict' | ||
recoveryQueueMaxSize: 1024, | ||
onBeforeDataWrite: null | ||
onBeforeDataWrite: null, | ||
maxUdpPacketSize: null | ||
} | ||
@@ -23,0 +24,0 @@ |
@@ -26,3 +26,7 @@ 'use strict' | ||
write (data, encoding, callback) { | ||
socket.send(data, callback) | ||
if (userOptions.maxUdpPacketSize !== null && data.length > userOptions.maxUdpPacketSize) { | ||
callback(null) | ||
} else { | ||
socket.send(data, callback) | ||
} | ||
} | ||
@@ -29,0 +33,0 @@ }) |
{ | ||
"name": "pino-socket", | ||
"version": "7.2.0", | ||
"version": "7.3.0", | ||
"description": "A pino 'transport' for writing to a tcp, udp, or unix socket", | ||
@@ -5,0 +5,0 @@ "homepage": "https://github.com/pinojs/pino-socket", |
@@ -36,3 +36,4 @@ #!/usr/bin/env node | ||
recovery: Boolean, | ||
'recovery-queue-max-size': Number | ||
'recovery-queue-max-size': Number, | ||
'max-udp-packet-size': Number | ||
} | ||
@@ -39,0 +40,0 @@ const shortOpts = { |
@@ -121,2 +121,3 @@ # pino-socket | ||
+ `--recovery-queue-max-size <n>`: maximum size of items (`<n>`) added to the recovery queue. Default: 1024. | ||
+ `--max-udp-packet-size`: maximum size of udp packet; Default: unlimited. | ||
@@ -123,0 +124,0 @@ [rsyscee]: http://www.rsyslog.com/doc/mmjsonparse.html |
@@ -144,1 +144,81 @@ 'use strict' | ||
}) | ||
test('udp packet overflow - throw exception on no max packet size option)', function udp (done) { | ||
let server | ||
let transport | ||
process.removeAllListeners('uncaughtException') | ||
process.once('uncaughtException', (err) => { | ||
expect(err.message).equal('send EMSGSIZE') | ||
done() | ||
}) | ||
createUdpListener((msg) => { | ||
done() | ||
server.close() | ||
server.unref() | ||
}) | ||
.then((serverSocket) => { | ||
server = serverSocket | ||
const { address, port } = server.address() | ||
transport = pino.transport({ | ||
target: '../psock.js', | ||
level: 'info', | ||
options: { | ||
mode: 'udp', | ||
address, | ||
port | ||
} | ||
}) | ||
const log = pino(transport) | ||
const overflowBuffer = Buffer.alloc(66666, 'a') | ||
log.info(overflowBuffer.toString()) | ||
}) | ||
.catch(done) | ||
}) | ||
test('udp packet overflow - skip packet when using max packet size option', function udp (done) { | ||
let server | ||
let transport | ||
createUdpListener((msg) => { | ||
expect(msg).to.contain('"msg":"hello UDP world"') | ||
done() | ||
server.close() | ||
server.unref() | ||
}) | ||
.then((serverSocket) => { | ||
server = serverSocket | ||
const { address, port } = server.address() | ||
transport = pino.transport({ | ||
target: '../psock.js', | ||
level: 'info', | ||
options: { | ||
mode: 'udp', | ||
address, | ||
port, | ||
maxUdpPacketSize: 65507 | ||
} | ||
}) | ||
const log = pino(transport) | ||
// will be skipped | ||
const overflowBuffer = Buffer.alloc(66667, 'a') | ||
log.info(overflowBuffer.toString()) | ||
// we can use timeout here, but it's not reliable | ||
// in a test environment | ||
transport.flushSync() | ||
// will be sent | ||
const trueMessage = 'hello UDP world' | ||
log.info(trueMessage) | ||
}) | ||
.catch(done) | ||
}) |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
72941
1700
164