netkitty
Version:
Network tools kit
26 lines (25 loc) • 1.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const BindingCapture_1 = require("../lib/BindingCapture");
const PipeClient_1 = require("../../pipe/PipeClient");
const PcapWriter_1 = require("../../pcap/PcapWriter");
const captureTemporaryFilename = process.env.captureTemporaryFilename;
const pcapWrite = new PcapWriter_1.PcapWriter({
filename: captureTemporaryFilename
});
const bindingCapture = new BindingCapture_1.BindingCapture({
iface: process.env.captureDevice,
filter: process.env.captureFilter ? process.env.captureFilter : ''
});
const pipeClient = new PipeClient_1.PipeClient({
id: process.env.captureWorkerId,
socketPath: process.env.socketPath,
actions: {
count: async () => pcapWrite.wroteCount,
start: async () => bindingCapture.start(),
stop: async () => bindingCapture.stop(),
setFilter: async (filter) => bindingCapture.setFilter(filter)
}
}).once('exit', () => pcapWrite.close().finally(() => process.exit(0)));
pcapWrite.on('packet', (wrotePacketInfo) => pipeClient.notify('packet', wrotePacketInfo));
bindingCapture.on('data', (data, sec, usec) => pcapWrite.write(data, sec, usec));