| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- // Generated by IcedCoffeeScript 1.7.1-c
- (function() {
- var SocksHttpAgent, SocksHttpsAgent, agent, enabled, env, hidden_address, leaky, log, proxy, strict;
- SocksHttpAgent = require('socks5-http-client/lib/Agent');
- SocksHttpsAgent = require('socks5-https-client/lib/Agent');
- env = require('./env').env;
- log = require('./log');
- hidden_address = function(null_ok) {
- return env().get_tor_hidden_address(null_ok);
- };
- proxy = function(null_ok) {
- return env().get_tor_proxy(null_ok);
- };
- enabled = function() {
- return (env().get_tor() != null) || (proxy(true) != null) || (hidden_address(true) != null) || strict() || leaky();
- };
- leaky = function() {
- return env().get_tor_leaky();
- };
- strict = function() {
- return env().get_tor_strict() && !leaky();
- };
- agent = function(opts) {
- var chk, klass, px, tls, uri;
- if (enabled()) {
- px = proxy(false);
- uri = opts.uri || opts.url;
- chk = function(s) {
- return s.indexOf('https') === 0;
- };
- tls = typeof uri === 'string' && chk(uri) ? true : typeof uri === 'object' && chk(uri.protocol) ? true : false;
- log.debug("| Setting tor proxy to " + (JSON.stringify(px)) + "; tls=" + tls);
- klass = tls ? SocksHttpsAgent : SocksHttpAgent;
- return opts.agent = new klass({
- socksPort: px.port,
- socksHost: px.hostname
- });
- }
- };
- module.exports = {
- hidden_address: hidden_address,
- proxy: proxy,
- enabled: enabled,
- agent: agent,
- strict: strict,
- leaky: leaky
- };
- }).call(this);
|