Esempio n. 1
0
    def __init__(self, bind_ip='0.0.0.0', bind_port=666, is_ipv6=False, use_https=False,
                 certfile=os.path.join(paths.POCSUITE_TMP_PATH, 'cacert.pem'),
                 requestHandler=BaseRequestHandler):
        gen_cert(filepath=certfile)
        threading.Thread.__init__(self)
        self.bind_ip = bind_ip
        self.bind_port = int(bind_port)
        self.is_ipv6 = is_ipv6
        self.https = use_https
        if self.https:
            self.scheme = 'https'
        else:
            self.scheme = 'http'
        self.certfile = certfile
        self.server_locked = False  # Avoid call start method muti-times
        self.server_started = False  # Aviod start server mutl-times
        self.requestHandler = requestHandler
        if ':' in bind_ip:
            ipv6 = get_host_ipv6()
            if not ipv6:
                logger.error('Your machine may not support ipv6')
                raise PocsuiteSystemException
            self.host_ip = ipv6
            self.httpserver = HTTPServerV6
            self.is_ipv6 = True
        else:
            self.is_ipv6 = False
            self.host_ip = get_host_ip()
            self.httpserver = HTTPServerV4

        self.__flag = threading.Event()  # The identifier used to pause the thread
        self.__flag.set()  # set flag True
        self.__running = threading.Event()  # The identifier used to stop the thread
        self.__running.set()  # set running True
Esempio n. 2
0
 def test_ipv6_https(self):
     try:
         logger.info('Test https server in ipv6')
         PHTTPServer._instance = None
         httpd = PHTTPServer(bind_ip='::', bind_port=6666, use_https=True,
                             requestHandler=BaseRequestHandler)
         httpd.start()
         url = '{}://{}:{}/'.format('https', '[{}]'.format(get_host_ipv6()), 6666)
         requests.get(url)
     except requests.exceptions.SSLError:
         url = '{}://{}:{}/'.format('https', '[{}]'.format(get_host_ipv6()), 6666)
         resp = requests.get(url, verify=False)
         self.assertEqual(resp.status_code, 200)
     except Exception:
         pass
     finally:
         httpd.stop()
Esempio n. 3
0
 def test_ipv6(self):
     try:
         logger.info('Test http server in ipv6')
         PHTTPServer._instance = None
         httpd = PHTTPServer(bind_ip='::',
                             bind_port=666,
                             requestHandler=BaseRequestHandler)
         httpd.start()
         url = '{}://{}:{}/'.format('http', '[{}]'.format(get_host_ipv6()),
                                    666)
         resp = requests.get(url)
         self.assertEqual(resp.status_code, 200)
     except Exception:
         assert False
     finally:
         httpd.stop()