-
Notifications
You must be signed in to change notification settings - Fork 2
/
passthrough.js
42 lines (36 loc) · 1.13 KB
/
passthrough.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//login.swgemu.com
var dgram = require('dgram');
var server = dgram.createSocket('udp4');
var swgEmuAddress = '192.168.0.105';
var swgEmuPort = 44453;
var clientAddress = '';
var clientPort = 0;
var SorC = 'C';
server.on('message', function(buffer, requestInfo) {
if(!clientAddress) {
clientAddress = requestInfo.address;
clientPort = requestInfo.port;
console.log('clientAddress:', clientAddress + ':' + requestInfo.port);
} else if (clientAddress && clientAddress != requestInfo.address && swgEmuAddress == 'login.swgemu.com') {
swgEmuAddress = requestInfo.address;
swgEmuPort = requestInfo.port;
console.log('swgEmuAddress:', swgEmuAddress + ':' + requestInfo.port);
}
var address = clientAddress;
var port = clientPort;
SorC = 'S->C';
if(requestInfo.address == clientAddress) {
address = swgEmuAddress;
port = swgEmuPort;
SorC = 'C->S';
}
console.log(SorC, buffer.toString('hex'));
server.send(buffer, 0, buffer.length, port, address);
});
var listen = function(port, callback) {
server.on('listening', callback);
server.bind(port);
};
listen(44453, function() {
console.log('started passthrough server on 44453');
});