Skip to content

@KOBA789 /local.js
Created

Embed URL

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
baka-proxy
var net = require('net');
net.createServer(function (client) {
var remote = net.connect({
host: 'koba789.com',
port: 8281
});
remote.pipe(client);
var source = client,
dest = remote;
function ondata(chunk) {
if (dest.writable) {
for (var i = 0; i < chunk.length; ++ i) {
chunk[i] = ~chunk[i];
}
if (false === dest.write(chunk) && source.pause) {
source.pause();
}
}
}
source.on('data', ondata);
function ondrain() {
if (source.readable && source.resume) {
source.resume();
}
}
dest.on('drain', ondrain);
source.on('end', onend);
source.on('close', onclose);
var didOnEnd = false;
function onend() {
if (didOnEnd) return;
didOnEnd = true;
dest.end();
}
function onclose() {
if (didOnEnd) return;
didOnEnd = true;
dest.destroy();
}
function onerror(er) {
cleanup();
if (this.listeners('error').length === 0) {
throw er;
}
}
source.on('error', onerror);
dest.on('error', onerror);
function cleanup() {
source.removeListener('data', ondata);
dest.removeListener('drain', ondrain);
source.removeListener('end', onend);
source.removeListener('close', onclose);
source.removeListener('error', onerror);
dest.removeListener('error', onerror);
source.removeListener('end', cleanup);
source.removeListener('close', cleanup);
dest.removeListener('end', cleanup);
dest.removeListener('close', cleanup);
}
source.on('end', cleanup);
source.on('close', cleanup);
dest.on('end', cleanup);
dest.on('close', cleanup);
dest.emit('pipe', source);
}).listen(8281);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.