Пример #1
0
    def serverconnect(self, server_conn):
        hostname = server_conn.address.host

        # TODO (NOT FOR ALL SITE, BUT NEEDED FOR YOUTUBE)
        server_conn.sni = ''

        server_conn.cachebrowsed = False
        server_conn.cdn = None
        server_conn.cb_status_message = ''

        try:
            host = self._get_or_bootstrap_host(hostname=hostname)
        except DoesNotExist:
            err = "Bootstrap information not available for".format(hostname)
            server_conn.cb_status_message = err
            self.log(err, 'debug')
            return server_conn

        cdn = host.cdn
        if not cdn.valid or not cdn.edge_server:
            err = "Host {} does not have a valid CDN".format(hostname)
            server_conn.cb_status_message = err
            return server_conn

        server_conn.address = Address(
            (cdn.edge_server, server_conn.address.port))

        server_conn.cachebrowsed = True
        server_conn.cdn = None if cdn is None else cdn.name or cdn.id
        server_conn.host = host

        return server_conn
Пример #2
0
def parse_server_spec(url):
    p = netlib.utils.parse_url(url)
    if not p or not p[1] or p[0] not in ("http", "https"):
        raise configargparse.ArgumentTypeError(
            "Invalid server specification: %s" % url)
    address = Address(p[1:3])
    scheme = p[0].lower()
    return config.ServerSpec(scheme, address)
Пример #3
0
    def handle_request(self, f):
        if f.request.path == "/p/201":

            # This part should have no impact, but it should also not cause any exceptions.
            addr = f.live.server_conn.address
            addr2 = Address(("127.0.0.1", self.redirect_port))
            f.live.set_server(addr2)
            f.live.set_server(addr)

            # This is the actual redirection.
            f.request.port = self.redirect_port
        super(MasterRedirectRequest, self).handle_request(f)