diff --git a/index.js b/index.js index 574a58a..8a667fe 100644 --- a/index.js +++ b/index.js @@ -11,15 +11,33 @@ var DB = process.env.DB || path.join(__dirname, 'db') var db = DB_CLOSED ? {} : level(DB) +var EXTENDED_LOGS = ['arborist', 'blackbird', 'strategis'].some(p => (process.env.HOSTNAME || '').includes(p) || (process.env.DB_NAME || '').includes(p)) + var server = net.createServer(function (sock) { + var dataBuffer = [] + var mldbServer = multileveldown.server(db) + + sock.on('data', function (data) { + if (EXTENDED_LOGS) 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) } })