New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

node-tcp-proxy

Package Overview
Dependencies
Maintainers
1
Versions
28
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

node-tcp-proxy - npm Package Compare versions

Comparing version 0.0.7 to 0.0.8

2

package.json

@@ -5,3 +5,3 @@ {

"license": "MIT",
"version": "0.0.7",
"version": "0.0.8",
"main": "index.js",

@@ -8,0 +8,0 @@ "repository": {

@@ -1,2 +0,2 @@

# node-tcp-proxy [![Codacy Badge](https://api.codacy.com/project/badge/Grade/3e3d035c4b78445bbec6fb348cf027e1)](https://www.codacy.com/app/tewarid/node-tcp-proxy?utm_source=github.com&utm_medium=referral&utm_content=tewarid/node-tcp-proxy&utm_campaign=Badge_Grade)
# node-tcp-proxy [![Codacy Badge](https://api.codacy.com/project/badge/Grade/3e3d035c4b78445bbec6fb348cf027e1)](https://www.codacy.com/app/tewarid/node-tcp-proxy?utm_source=github.com&utm_medium=referral&utm_content=tewarid/node-tcp-proxy&utm_campaign=Badge_Grade) [![Maintainability](https://api.codeclimate.com/v1/badges/119038e281e93a7d5d05/maintainability)](https://codeclimate.com/github/tewarid/node-tcp-proxy/maintainability)

@@ -3,0 +3,0 @@ A simple TCP proxy that may be used to access a service on another network. An extensible replacement for socat when used thus

#!/usr/bin/env node
var proxy = require("./tcp-proxy.js");

@@ -16,11 +15,12 @@ var argv = require("optimist")

var newProxy = proxy.createProxy(argv.proxyPort, argv.serviceHost,
argv.servicePort, options);
const proxy = require("./tcp-proxy.js")
.createProxy(argv.proxyPort, argv.serviceHost,
argv.servicePort, options);
process.on("uncaughtException", function(err) {
console.info(err);
});
process.on("SIGINT", function() {
newProxy.end();
proxy.end();
});

@@ -12,3 +12,9 @@ var net = require("net");

this.servicePort = servicePort;
this.options = options;
if (options === undefined) {
this.options = {
quiet: false
};
} else {
this.options = options;
}
this.proxySockets = {};

@@ -20,47 +26,17 @@

TcpProxy.prototype.createProxy = function() {
this.log("proxy listening at port " + this.proxyPort);
const proxy = this;
proxy.server = net.createServer(function(proxySocket) {
var key = uniqueKey(proxySocket);
proxy.log("client connected from " + key);
proxy.proxySockets[key] = proxySocket;
var connected = false;
var buffers = [];
var serviceSocket = new net.Socket();
serviceSocket.connect(proxy.servicePort,
proxy.serviceHost, function() {
connected = true;
if (buffers.length > 0) {
for (var i = 0; i < buffers.length; i++) {
serviceSocket.write(buffers[i]);
}
}
});
serviceSocket.on("data", function(data) {
proxySocket.write(data);
});
serviceSocket.on("close", function(hadError) {
proxy.log("service socket closed");
proxy.log(" ending proxy socket");
proxySocket.destroy();
});
serviceSocket.on("error", function(e) {
proxy.log("service socket error");
proxy.log(e);
proxy.log(" ending proxy socket");
proxySocket.destroy();
});
proxySocket.on("error", function(e) {
proxy.log("proxy socket error");
proxy.log(e);
});
var context = {
buffers: [],
connected: false,
proxySocket: proxySocket
};
proxy.createServiceSocket(context);
proxySocket.on("data", function(data) {
if (connected) {
serviceSocket.write(data);
if (context.connected) {
context.serviceSocket.write(data);
} else {
buffers[buffers.length] = data;
context.buffers[context.buffers.length] = data;
}

@@ -70,14 +46,33 @@ });

delete proxy.proxySockets[uniqueKey(proxySocket)];
serviceSocket.destroy();
context.serviceSocket.destroy();
});
});
if (proxy.options) {
proxy.server.listen(proxy.proxyPort, proxy.options.hostname);
} else {
proxy.server.listen(proxy.proxyPort);
}
proxy.server.listen(proxy.proxyPort, proxy.options.hostname);
};
TcpProxy.prototype.createServiceSocket = function(context) {
const proxy = this;
context.serviceSocket = new net.Socket();
context.serviceSocket.connect(proxy.servicePort, proxy.serviceHost,
function() {
context.connected = true;
if (context.buffers.length > 0) {
for (var i = 0; i < context.buffers.length; i++) {
context.serviceSocket.write(context.buffers[i]);
}
}
});
context.serviceSocket.on("data", function(data) {
context.proxySocket.write(data);
});
context.serviceSocket.on("close", function(hadError) {
context.proxySocket.destroy();
});
context.serviceSocket.on("error", function(e) {
context.proxySocket.destroy();
});
return context;
}
TcpProxy.prototype.end = function() {
this.log("terminating proxy");
this.server.close();

@@ -91,3 +86,3 @@ for (var key in this.proxySockets) {

TcpProxy.prototype.log = function(msg) {
if (!this.options || !this.options.quiet) {
if (!this.options.quiet) {
console.log(msg);

@@ -94,0 +89,0 @@ }

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc