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
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)
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)