Beispiel #1
0
    def req_ipv6_tunnel_handler(self):
        req = urlparse.urlparse(self.path).query
        reqs = urlparse.parse_qs(req, keep_blank_values=True)
        data = ''

        log_path = os.path.join(data_path, "ipv6_tunnel.log")
        time_now = datetime.datetime.today().strftime('%H:%M:%S-%a/%d/%b/%Y')

        client_ip = self.client_address[0]
        is_local = client_ip.endswith("127.0.0.1") or client_ip == "::1"

        if reqs['cmd'] in [['enable'],
                           ['disable'],
                           ['test_teredo'],
                           ['test_teredo_usability'],
                           ['test_teredo_server'],
                           ['set_best_server']]:
            cmd = reqs['cmd'][0]
            xlog.info("ipv6_tunnel switch %s", cmd)

            # Don't remove log file at here.

            if cmd == "enable":
                result = ipv6_tunnel.enable(is_local)
            elif cmd == "disable":
                result = ipv6_tunnel.disable(is_local)
            elif cmd == "test_teredo":
                result = ipv6_tunnel.test_teredo()
            elif cmd == "test_teredo_usability":
                result = ipv6_tunnel.test_teredo(probe_server=False)
            elif cmd == "test_teredo_server":
                result = ipv6_tunnel.test_teredo(probe_nat=False)
            elif cmd == "set_best_server":
                result = ipv6_tunnel.set_best_server(is_local)
            else:
                xlog.warn("unknown cmd:%s", cmd)

            xlog.info("ipv6_tunnel switch %s, result: %s", cmd, result)

            data = json.dumps({'res': result, 'time': time_now})

        elif reqs['cmd'] == ['get_log']:
            if os.path.isfile(log_path):
                with open(log_path, "r") as f:
                    content = f.read()
            else:
                content = ""

            status = ipv6_tunnel.state()

            data = json.dumps({'status': status, 'log': content.decode("GBK"), 'time': time_now})

        elif reqs['cmd'] == ['get_priority']:
            data = json.dumps({'res': ipv6_tunnel.state_pp(), 'time': time_now})

        elif reqs['cmd'] == ['switch_pp']:
            data = json.dumps({'res': ipv6_tunnel.switch_pp(), 'time': time_now})

        self.send_response_nc('text/html', data)
Beispiel #2
0
    def req_ipv6_tunnel_handler(self):
        req = urlparse.urlparse(self.path).query
        reqs = urlparse.parse_qs(req, keep_blank_values=True)
        data = ''

        log_path = os.path.join(data_path, "ipv6_tunnel.log")
        time_now = datetime.datetime.today().strftime('%H:%M:%S-%a/%d/%b/%Y')

        client_ip = self.client_address[0]
        is_local = client_ip.endswith("127.0.0.1") or client_ip == "::1"

        if reqs['cmd'] in [['enable'],
                           ['disable'],
                           ['test_teredo'],
                           ['test_teredo_usability'],
                           ['test_teredo_server'],
                           ['set_best_server']]:
            cmd = reqs['cmd'][0]
            xlog.info("ipv6_tunnel switch %s", cmd)

            # Don't remove log file at here.

            if cmd == "enable":
                result = ipv6_tunnel.enable(is_local)
            elif cmd == "disable":
                result = ipv6_tunnel.disable(is_local)
            elif cmd == "test_teredo":
                result = ipv6_tunnel.test_teredo()
            elif cmd == "test_teredo_usability":
                result = ipv6_tunnel.test_teredo(probe_server=False)
            elif cmd == "test_teredo_server":
                result = ipv6_tunnel.test_teredo(probe_nat=False)
            elif cmd == "set_best_server":
                result = ipv6_tunnel.set_best_server(is_local)
            else:
                xlog.warn("unknown cmd:%s", cmd)

            xlog.info("ipv6_tunnel switch %s, result: %s", cmd, result)

            data = json.dumps({'res': result, 'time': time_now})

        elif reqs['cmd'] == ['get_log']:
            if os.path.isfile(log_path):
                with open(log_path, "r") as f:
                    content = f.read()
            else:
                content = ""

            status = ipv6_tunnel.state()

            data = json.dumps({'status': status, 'log': content.decode("GBK"), 'time': time_now})

        elif reqs['cmd'] == ['get_priority']:
            data = json.dumps({'res': ipv6_tunnel.state_pp(), 'time': time_now})

        elif reqs['cmd'] == ['switch_pp']:
            data = json.dumps({'res': ipv6_tunnel.switch_pp(), 'time': time_now})

        self.send_response_nc('text/html', data)
Beispiel #3
0
    def req_status_handler(self):
        if "user-agent" in self.headers.dict:
            user_agent = self.headers.dict["user-agent"]
        else:
            user_agent = ""

        res_arr = {
                   "sys_platform": "%s, %s" % (platform.machine(), platform.platform()),
                   "os_system": platform.system(),
                   "os_version": platform.version(),
                   "os_release": platform.release(),
                   "architecture": platform.architecture(),
                   "os_detail": env_info.os_detail(),
                   "language": self.get_os_language(),
                   "browser": user_agent,
                   "xxnet_version": self.xxnet_version(),
                   "python_version": platform.python_version(),
                   "openssl_version": get_openssl_version(),

                   "proxy_listen": config.LISTEN_IP + ":" + str(config.LISTEN_PORT),
                   "pac_url": config.pac_url,
                   "use_ipv6": config.USE_IPV6,

                   "gae_appid": "|".join(config.GAE_APPIDS),
                   "working_appid": "|".join(appid_manager.working_appid_list),
                   "out_of_quota_appids": "|".join(appid_manager.out_of_quota_appids),
                   "not_exist_appids": "|".join(appid_manager.not_exist_appids),

                   "ipv4_state": check_local_network.IPv4.get_stat(),
                   "ipv6_state": check_local_network.IPv6.get_stat(),
                   "ipv6_tunnel": ipv6_tunnel.state(),
                   "ip_num": len(google_ip.gws_ip_list),
                   "good_ipv4_num": google_ip.good_ipv4_num,
                   "good_ipv6_num": google_ip.good_ipv6_num,
                   "connected_link_new": len(https_manager.new_conn_pool.pool),
                   "connected_link_used": len(https_manager.gae_conn_pool.pool),
                   "worker_h1": http_dispatch.h1_num,
                   "worker_h2": http_dispatch.h2_num,
                   "is_idle": int(http_dispatch.is_idle()),
                   "scan_ip_thread_num": google_ip.scan_thread_count,
                   "ip_quality": google_ip.ip_quality(),
                   "block_stat": connect_control.block_stat(),

                   "high_prior_connecting_num": connect_control.high_prior_connecting_num,
                   "low_prior_connecting_num": connect_control.low_prior_connecting_num,
                   "high_prior_lock": len(connect_control.high_prior_lock),
                   "low_prior_lock": len(connect_control.low_prior_lock),
                   }
        data = json.dumps(res_arr, indent=0, sort_keys=True)
        self.send_response_nc('text/html', data)
Beispiel #4
0
    def req_status_handler(self):
        if "user-agent" in self.headers.dict:
            user_agent = self.headers.dict["user-agent"]
        else:
            user_agent = ""

        res_arr = {
            "sys_platform":
            "%s, %s" % (platform.machine(), platform.platform()),
            "os_system": platform.system(),
            "os_version": platform.version(),
            "os_release": platform.release(),
            "architecture": platform.architecture(),
            "os_detail": env_info.os_detail(),
            "language": self.get_os_language(),
            "browser": user_agent,
            "xxnet_version": self.xxnet_version(),
            "python_version": platform.python_version(),
            "openssl_version": get_openssl_version(),
            "proxy_listen": config.LISTEN_IP + ":" + str(config.LISTEN_PORT),
            "pac_url": config.pac_url,
            "use_ipv6": config.USE_IPV6,
            "gae_appid": "|".join(config.GAE_APPIDS),
            "working_appid": "|".join(appid_manager.working_appid_list),
            "out_of_quota_appids": "|".join(appid_manager.out_of_quota_appids),
            "not_exist_appids": "|".join(appid_manager.not_exist_appids),
            "ipv4_state": check_local_network.IPv4.get_stat(),
            "ipv6_state": check_local_network.IPv6.get_stat(),
            "ipv6_tunnel": ipv6_tunnel.state(),
            "ip_num": len(google_ip.gws_ip_list),
            "good_ipv4_num": google_ip.good_ipv4_num,
            "good_ipv6_num": google_ip.good_ipv6_num,
            "connected_link_new": len(https_manager.new_conn_pool.pool),
            "connected_link_used": len(https_manager.gae_conn_pool.pool),
            "worker_h1": http_dispatch.h1_num,
            "worker_h2": http_dispatch.h2_num,
            "is_idle": int(http_dispatch.is_idle()),
            "scan_ip_thread_num": google_ip.scan_thread_count,
            "ip_quality": google_ip.ip_quality(),
            "block_stat": connect_control.block_stat(),
            "high_prior_connecting_num":
            connect_control.high_prior_connecting_num,
            "low_prior_connecting_num":
            connect_control.low_prior_connecting_num,
            "high_prior_lock": len(connect_control.high_prior_lock),
            "low_prior_lock": len(connect_control.low_prior_lock),
        }
        data = json.dumps(res_arr, indent=0, sort_keys=True)
        self.send_response_nc('text/html', data)
Beispiel #5
0
    def req_ipv6_tunnel_handler(self):
        req = urlparse.urlparse(self.path).query
        reqs = urlparse.parse_qs(req, keep_blank_values=True)
        data = ''

        log_path = os.path.join(data_path, "ipv6_tunnel.log")
        time_now = datetime.datetime.today().strftime('%H:%M:%S-%a/%d/%b/%Y')

        if reqs['cmd'] in [['enable'], ['disable']]:
            cmd = reqs['cmd'][0]
            xlog.info("ipv6_tunnel switch %s", cmd)

            if os.path.isfile(log_path):
                try:
                    os.remove(log_path)
                except Exception as e:
                    xlog.warn("remove %s fail:%r", log_path, e)

            if cmd == "enable":
                ipv6_tunnel.enable()
            elif cmd == "disable":
                ipv6_tunnel.disable()
            else:
                xlog.warn("unknown cmd:%s", cmd)

            data = '{"res":"success", "time":"%s"}' % time_now

        elif reqs['cmd'] == ['get_log']:
            if os.path.isfile(log_path):
                with open(log_path, "r") as f:
                    content = f.read()
            else:
                content = ""

            status = ipv6_tunnel.state()

            data = json.dumps({
                'status': status,
                'log': content.decode("GBK"),
                'time': time_now
            })

        self.send_response_nc('text/html', data)
Beispiel #6
0
    def req_ipv6_tunnel_handler(self):
        req = urlparse.urlparse(self.path).query
        reqs = urlparse.parse_qs(req, keep_blank_values=True)
        data = ''

        log_path = os.path.join(data_path, "ipv6_tunnel.log")
        time_now = datetime.datetime.today().strftime('%H:%M:%S-%a/%d/%b/%Y')

        if reqs['cmd'] in [['enable'], ['disable']]:
            cmd = reqs['cmd'][0]
            xlog.info("ipv6_tunnel switch %s", cmd)

            if os.path.isfile(log_path):
                try:
                    os.remove(log_path)
                except Exception as e:
                    xlog.warn("remove %s fail:%r", log_path, e)

            if cmd == "enable":
                ipv6_tunnel.enable()
            elif cmd == "disable":
                ipv6_tunnel.disable()
            else:
                xlog.warn("unknown cmd:%s", cmd)

            data = '{"res":"success", "time":"%s"}' % time_now

        elif reqs['cmd'] == ['get_log']:
            if os.path.isfile(log_path):
                with open(log_path, "r") as f:
                    content = f.read()
            else:
                content = ""

            status = ipv6_tunnel.state()

            data = json.dumps({'status': status, 'log': content.decode("GBK"), 'time': time_now})

        self.send_response_nc('text/html', data)