Ejemplo n.º 1
0
 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')
Ejemplo n.º 2
0
 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')
Ejemplo n.º 8
0
    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)
Ejemplo n.º 9
0
 def testMissingHeaders(self):
     country = request_country({})
     self.assertIsNone(country)
Ejemplo n.º 10
0
 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')
Ejemplo n.º 11
0
 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')
Ejemplo n.º 12
0
 def testRemoteAddr(self):
     country = request_country({'REMOTE_ADDR': self.lp})
     self.assertEqual(country.name, u'United Kingdom')
Ejemplo n.º 13
0
    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)
Ejemplo n.º 14
0
 def testMissingHeaders(self):
     country = request_country({})
     self.failUnless(country is None)