def render(self): request = self.request if not self.context.full_functionality: request.response.setStatus(404) return u'' ip_address = ipaddress_from_request(request) country = request_country(request) mirrors = getUtility(IDistributionMirrorSet).getBestMirrorsForCountry( country, MirrorContent.ARCHIVE) body = "\n".join(mirror.base_url for mirror in mirrors) request.response.setHeader('content-type', 'text/plain;charset=utf-8') if country is None: country_name = 'Unknown' else: country_name = country.name request.response.setHeader('X-Generated-For-Country', country_name) request.response.setHeader('X-Generated-For-IP', ip_address) # XXX: Guilherme Salgado 2008-01-09 bug=173729: These are here only # for debugging. request.response.setHeader( 'X-REQUEST-HTTP_X_FORWARDED_FOR', request.get('HTTP_X_FORWARDED_FOR')) request.response.setHeader( 'X-REQUEST-REMOTE_ADDR', request.get('REMOTE_ADDR')) return body.encode('utf-8')
def render(self): request = self.request if not self.context.full_functionality: request.response.setStatus(404) return u"" ip_address = ipaddress_from_request(request) country = request_country(request) mirrors = getUtility(IDistributionMirrorSet).getBestMirrorsForCountry(country, MirrorContent.ARCHIVE) body = "\n".join(mirror.base_url for mirror in mirrors) request.response.setHeader("content-type", "text/plain;charset=utf-8") if country is None: country_name = "Unknown" else: country_name = country.name request.response.setHeader("X-Generated-For-Country", country_name) request.response.setHeader("X-Generated-For-IP", ip_address) # XXX: Guilherme Salgado 2008-01-09 bug=173729: These are here only # for debugging. request.response.setHeader("X-REQUEST-HTTP_X_FORWARDED_FOR", request.get("HTTP_X_FORWARDED_FOR")) request.response.setHeader("X-REQUEST-REMOTE_ADDR", request.get("REMOTE_ADDR")) return body.encode("utf-8")
def testIgnoreLocalhost(self): country = request_country({'HTTP_X_FORWARDED_FOR': '127.0.0.1'}) self.failUnless(country is None) country = request_country({'REMOTE_ADDR': '127.0.0.1'}) self.failUnless(country is None)
def testMissingHeaders(self): country = request_country({}) self.failUnless(country is None)
def testNestedProxies(self): country = request_country({ 'HTTP_X_FORWARDED_FOR': 'localhost, 127.0.0.1, %s, 1,1,1,1' % self.lp, }) self.failUnlessEqual(country.name, u'United Kingdom')
def testXForwardedFor(self): country = request_country({ 'HTTP_X_FORWARDED_FOR': self.lp, 'REMOTE_ADDR': '1.2.3.4', }) self.failUnlessEqual(country.name, u'United Kingdom')
def testRemoteAddr(self): country = request_country({'REMOTE_ADDR': self.lp}) self.failUnlessEqual(country.name, u'United Kingdom')
def testIgnoreLocalhost(self): country = request_country({'HTTP_X_FORWARDED_FOR': '127.0.0.1'}) self.assertIsNone(country) country = request_country({'REMOTE_ADDR': '127.0.0.1'}) self.assertIsNone(country)
def testMissingHeaders(self): country = request_country({}) self.assertIsNone(country)
def testNestedProxies(self): country = request_country({ 'HTTP_X_FORWARDED_FOR': 'localhost, 127.0.0.1, %s, 1,1,1,1' % self.lp, }) self.assertEqual(country.name, u'United Kingdom')
def testXForwardedFor(self): country = request_country({ 'HTTP_X_FORWARDED_FOR': self.lp, 'REMOTE_ADDR': '1.2.3.4', }) self.assertEqual(country.name, u'United Kingdom')
def testRemoteAddr(self): country = request_country({'REMOTE_ADDR': self.lp}) self.assertEqual(country.name, u'United Kingdom')