https://github.com/statsd/statsd
Revision dd99864886415d2191daf2f2e50e0d6a5c124e34 authored by Elliot Blackburn on 11 July 2019, 12:14:57 UTC, committed by Elliot Blackburn on 11 July 2019, 12:14:57 UTC
1 parent a2b9265
Raw File
Tip revision: dd99864886415d2191daf2f2e50e0d6a5c124e34 authored by Elliot Blackburn on 11 July 2019, 12:14:57 UTC
update package.json version 0.8.4
Tip revision: dd99864
tcp.js
const net  = require('net');
const fs = require('fs');

function rinfo(tcpstream, data) {
    this.address = tcpstream.remoteAddress;
    this.port = tcpstream.remotePort;
    this.family = tcpstream.address() ? tcpstream.address().family : 'IPv4';
    this.size = data.length;
}

exports.start = function(config, callback) {
    const server = net.createServer(function(stream) {
      stream.setEncoding('ascii');

      let buffer = '';
      stream.on('data', function(data) {
          buffer += data;
          const offset = buffer.lastIndexOf("\n");
          if (offset > -1) {
             const packet = buffer.slice(0, offset + 1);
             buffer = buffer.slice(offset + 1);
             callback(packet, new rinfo(stream, packet));
          }
      });
  });

  server.on('listening', function() {
    config.socket && config.socket_mod && fs.chmod(config.socket, config.socket_mod);
  });

  process.on('exit', function() {
      config.socket && fs.unlinkSync(config.socket);
  });

  server.listen(config.socket || config.port || 8125, config.address || undefined);
  this.server = server;
  return true;
};
back to top