Author: mtredinnick Date: 2009-03-08 05:01:22 -0500 (Sun, 08 Mar 2009) New Revision: 9999
Modified: django/branches/releases/1.0.X/django/core/handlers/wsgi.py Log: [1.0.X] Fixed #9469 -- Apply the fix from r9189 to the WSGI handler as well. This is a defensive encoding fix. No functionality change for correct URLs. Patch from magneto. Backport of r9996 from trunk. Modified: django/branches/releases/1.0.X/django/core/handlers/wsgi.py =================================================================== --- django/branches/releases/1.0.X/django/core/handlers/wsgi.py 2009-03-08 09:59:43 UTC (rev 9998) +++ django/branches/releases/1.0.X/django/core/handlers/wsgi.py 2009-03-08 10:01:22 UTC (rev 9999) @@ -10,7 +10,7 @@ from django.core.handlers import base from django.core.urlresolvers import set_script_prefix from django.utils import datastructures -from django.utils.encoding import force_unicode +from django.utils.encoding import force_unicode, iri_to_uri # See http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html STATUS_CODE_TEXT = { @@ -120,7 +120,9 @@ (get, post, cookies, meta) def get_full_path(self): - return '%s%s' % (self.path, self.environ.get('QUERY_STRING', '') and ('?' + self.environ.get('QUERY_STRING', '')) or '') + # RFC 3986 requires query string arguments to be in the ASCII range. + # Rather than crash if this doesn't happen, we encode defensively. + return '%s%s' % (self.path, self.environ.get('QUERY_STRING', '') and ('?' + iri_to_uri(self.environ.get('QUERY_STRING', ''))) or '') def is_secure(self): return 'wsgi.url_scheme' in self.environ \ --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django updates" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/django-updates?hl=en -~----------~----~----~----~------~----~------~--~---
