import config import traceback import urllib2 import fqsocks.httpd FQROUTER_VERSION = 'UNKNOWN' LOGGER = logging.getLogger('fqrouter.%s' % __name__) LOG_DIR = '/data/data/fq.router2/log' MANAGER_LOG_FILE = os.path.join(LOG_DIR, 'manager.log') FQDNS_LOG_FILE = os.path.join(LOG_DIR, 'fqdns.log') nat_map = {} # sport => (dst, dport), src always be 10.25.1.1 default_dns_server = config.get_default_dns_server() DNS_HANDLER = fqdns.DnsHandler( enable_china_domain=True, enable_hosted_domain=True, original_upstream=('udp', default_dns_server, 53) if default_dns_server else None) def handle_ping(environ, start_response): try: LOGGER.info('VPN PONG/%s' % FQROUTER_VERSION) except: traceback.print_exc() os._exit(1) start_response(httplib.OK, [('Content-Type', 'text/plain')]) yield 'VPN PONG/%s' % FQROUTER_VERSION fqsocks.httpd.HANDLERS[('GET', 'ping')] = handle_ping
import gevent.socket import dpkt import comp_proxy import traceback import urllib2 from utils import httpd FQROUTER_VERSION = 'UNKNOWN' LOGGER = logging.getLogger('fqrouter.%s' % __name__) LOG_DIR = '/data/data/fq.router2/log' MANAGER_LOG_FILE = os.path.join(LOG_DIR, 'manager.log') FQDNS_LOG_FILE = os.path.join(LOG_DIR, 'fqdns.log') nat_map = {} # sport => (dst, dport), src always be 10.25.1.1 DNS_HANDLER = fqdns.DnsHandler(enable_china_domain=True, enable_hosted_domain=True) def handle_free_internet_connect(environ, start_response): start_response(httplib.OK, [('Content-Type', 'text/plain')]) fqsocks.fqsocks.refresh_proxies() return [] def handle_free_internet_disconnect(environ, start_response): start_response(httplib.OK, [('Content-Type', 'text/plain')]) return [] def redirect_tun_traffic(tun_fd): while True:
from .proxies.goagent import GoAgentProxy import httpd import networking from .gateways import proxy_client from .gateways import tcp_gateway from .gateways import http_gateway from .pages import lan_device from .pages import upstream from . import config_file __import__('fqsocks.pages') LOGGER = logging.getLogger(__name__) dns_pollution_ignored = False networking.DNS_HANDLER = fqdns.DnsHandler() reset_force_us_ip_greenlet = None @httpd.http_handler('GET', 'dns-polluted-at') def get_dns_polluted_at(environ, start_response): global dns_pollution_ignored start_response(httplib.OK, [('Content-Type', 'text/plain')]) if not dns_pollution_ignored and proxy_client.dns_polluted_at > 0: dns_pollution_ignored = True yield str(proxy_client.dns_polluted_at) else: yield '0' @httpd.http_handler('POST', 'force-us-ip') def handle_force_us_ip(environ, start_response):
import comp_dns import traceback import urllib2 import argparse from utils import httpd FQROUTER_VERSION = 'UNKNOWN' LOGGER = logging.getLogger('fqrouter.%s' % __name__) LOG_DIR = '/data/data/fq.router2/log' MANAGER_LOG_FILE = os.path.join(LOG_DIR, 'manager.log') FQDNS_LOG_FILE = os.path.join(LOG_DIR, 'fqdns.log') nat_map = {} # sport => (dst, dport), src always be 10.25.1.1 default_dns_server = comp_dns.get_default_dns_server() DNS_HANDLER = fqdns.DnsHandler(enable_china_domain=True, enable_hosted_domain=True, original_upstream=default_dns_server.split(':') if default_dns_server else '') is_free_internet_connected = True def handle_free_internet_connect(environ, start_response): global is_free_internet_connected is_free_internet_connected = True args = comp_proxy.configure([]) argument_parser = argparse.ArgumentParser() argument_parser.add_argument('--proxy', action='append', default=[]) args, _ = argument_parser.parse_known_args(args) for props in args.proxy: props = props.split(',') prop_dict = dict(p.split('=') for p in props[1:]) fqsocks.fqsocks.add_proxies(props[0], prop_dict)