Django

Code

Ticket #4986: get_host.patch

File get_host.patch, 0.8 kB (added by SmileyChris, 1 year ago)
  • django/http/__init__.py

    old new  
    356356 
    357357def get_host(request): 
    358358    "Gets the HTTP host from the environment or request headers." 
    359     host = request.META.get('HTTP_X_FORWARDED_HOST', '') 
     359    host = (request.META.get('HTTP_X_FORWARDED_HOST') 
     360            or request.META.get('HTTP_HOST')) 
    360361    if not host: 
    361         host = request.META.get('HTTP_HOST', '') 
     362        # Reconstruct host based on PEP333 
     363        host = request.META['SERVER_NAME'] 
     364        server_port = request.META['SERVER_PORT'] 
     365        if server_port != (request.is_secure() and 443 or 80): 
     366            host = '%s:%s' % (host, server_port) 
    362367    return host 
    363368 
    364369# It's neither necessary nor appropriate to use