def do_collect(self, stream, request): ''' Invoked on GET /speedtest/collect ''' stream.response_rewriter = self._rewrite_response request.uri = '/collect/speedtest' xmlreq = marshal.unmarshal_object(request.body.read(), 'application/xml', SpeedtestCollect) message = { 'uuid': xmlreq.client, 'timestamp': int(float(xmlreq.timestamp)), # old clients bug 'internal_address': xmlreq.internalAddress, 'real_address': xmlreq.realAddress, 'remote_address': xmlreq.remoteAddress, 'connect_time': xmlreq.connectTime, 'latency': xmlreq.latency, 'download_speed': xmlreq.downloadSpeed, 'upload_speed': xmlreq.uploadSpeed, 'privacy_informed': xmlreq.privacy_informed, 'privacy_can_collect': xmlreq.privacy_can_collect, 'privacy_can_share': xmlreq.privacy_can_share, 'platform': xmlreq.platform, 'neubot_version': xmlreq.neubot_version, } # XXX Here we don't rewrite content-length which becomes bogus request['content-type'] = 'application/json' request.body = StringIO.StringIO(json.dumps(message)) NEGOTIATE_SERVER.process_request(stream, request)
def do_negotiate(self, stream, request): ''' Invoked on GET /speedtest/negotiate ''' stream.response_rewriter = self._rewrite_response # # Use POST because the semantic is that the body has no # meaning, when the request method is GET. # request.method = 'POST' request.uri = '/negotiate/speedtest' request.body = StringIO.StringIO('{}') NEGOTIATE_SERVER.process_request(stream, request)
def do_negotiate(self, stream, request): ''' Invoked on GET /speedtest/negotiate ''' stream.response_rewriter = self._rewrite_response request.uri = '/negotiate/speedtest' request.body = StringIO.StringIO('{}') NEGOTIATE_SERVER.process_request(stream, request)