diff --git a/index.js b/index.js index 574a58a..7845fe6 100644 --- a/index.js +++ b/index.js @@ -8,18 +8,34 @@ var multileveldown = require('multileveldown') var DB_CLOSED = process.env.DB_CLOSED === 'true' var DB = process.env.DB || path.join(__dirname, 'db') - +var EXTENDED_LOGS = ['arborist', 'blackbird', 'strategis'].some(p => (process.env.HOSTNAME || '').includes(p)) var db = DB_CLOSED ? {} : level(DB) var server = net.createServer(function (sock) { + var dataBuffer = [] + var mldbServer = multileveldown.server(db) + + sock.on('data', function (data) { + dataBuffer.push({ data: data.toString(), ts: new Date().toISOString() }) + if (dataBuffer.length > 200) dataBuffer.shift() + }) + + mldbServer.on('error', function (err) { + if(EXTENDED_LOGS) console.log({ dataBuffer, mldbError: err }) + sock.destroy() + if (err) return console.error(err) + process.exit(1) + }) + sock.on('error', function (err) { + if(EXTENDED_LOGS) console.log({ dataBuffer, socketError: err }) sock.destroy() if (err) return console.error(err) process.exit(1) }) if (!DB_CLOSED) { - sock.pipe(multileveldown.server(db)).pipe(sock) + sock.pipe(mldbServer).pipe(sock) } })