Thu, 15 Jan 2015 15:55:04 +0100
Back out 97036ab72558 which inappropriately compared turds to third parties.
1 const CC = Components.Constructor;
2 const Cc = Components.classes;
3 const Ci = Components.interfaces;
5 const BinaryInputStream = CC("@mozilla.org/binaryinputstream;1",
6 "nsIBinaryInputStream",
7 "setInputStream");
8 const ProtocolProxyService = CC("@mozilla.org/network/protocol-proxy-service;1",
9 "nsIProtocolProxyService");
10 var sts = Cc["@mozilla.org/network/socket-transport-service;1"]
11 .getService(Ci.nsISocketTransportService);
13 function launchConnection(socks_vers, socks_port, dest_host, dest_port, dns)
14 {
15 var pi_flags = 0;
16 if (dns == 'remote')
17 pi_flags = Ci.nsIProxyInfo.TRANSPARENT_PROXY_RESOLVES_HOST;
19 var pps = new ProtocolProxyService();
20 var pi = pps.newProxyInfo(socks_vers, 'localhost', socks_port,
21 pi_flags, -1, null);
22 var trans = sts.createTransport(null, 0, dest_host, dest_port, pi);
23 var input = trans.openInputStream(Ci.nsITransport.OPEN_BLOCKING,0,0);
24 var output = trans.openOutputStream(Ci.nsITransport.OPEN_BLOCKING,0,0);
25 var bin = new BinaryInputStream(input);
26 var data = bin.readBytes(5);
27 if (data == 'PING!') {
28 print('client: got ping, sending pong.');
29 output.write('PONG!', 5);
30 } else {
31 print('client: wrong data from server:', data);
32 output.write('Error: wrong data received.', 27);
33 }
34 output.close();
35 }
37 for each (var arg in arguments) {
38 print('client: running test', arg);
39 test = arg.split('|');
40 launchConnection(test[0], parseInt(test[1]), test[2],
41 parseInt(test[3]), test[4]);
42 }