fix urllib quote_plus, close #1822
This commit is contained in:
+2
-2
@@ -26,7 +26,7 @@ if PY2:
|
|||||||
from email.MIMEText import MIMEText
|
from email.MIMEText import MIMEText
|
||||||
from email.Charset import add_charset, QP as charset_QP
|
from email.Charset import add_charset, QP as charset_QP
|
||||||
from urllib import FancyURLopener, urlencode, urlopen
|
from urllib import FancyURLopener, urlencode, urlopen
|
||||||
from urllib import quote as urllib_quote, unquote as urllib_unquote
|
from urllib import quote as urllib_quote, unquote as urllib_unquote, quote_plus as urllib_quote_plus
|
||||||
from string import maketrans
|
from string import maketrans
|
||||||
from types import ClassType
|
from types import ClassType
|
||||||
import cgi
|
import cgi
|
||||||
@@ -94,7 +94,7 @@ else:
|
|||||||
from email.header import Header
|
from email.header import Header
|
||||||
from email.charset import Charset, add_charset, QP as charset_QP
|
from email.charset import Charset, add_charset, QP as charset_QP
|
||||||
from urllib.request import FancyURLopener, urlopen
|
from urllib.request import FancyURLopener, urlopen
|
||||||
from urllib.parse import quote as urllib_quote, unquote as urllib_unquote, urlencode
|
from urllib.parse import quote as urllib_quote, unquote as urllib_unquote, urlencode, quote_plus as urllib_quote_plus
|
||||||
from http import cookiejar as cookielib
|
from http import cookiejar as cookielib
|
||||||
from xmlrpc.client import ProtocolError
|
from xmlrpc.client import ProtocolError
|
||||||
import html # warning, this is the python3 module and not the web2py html module
|
import html # warning, this is the python3 module and not the web2py html module
|
||||||
|
|||||||
+4
-5
@@ -22,12 +22,11 @@ import re
|
|||||||
import logging
|
import logging
|
||||||
import traceback
|
import traceback
|
||||||
import threading
|
import threading
|
||||||
import urllib
|
|
||||||
from gluon.storage import Storage, List
|
from gluon.storage import Storage, List
|
||||||
from gluon.http import HTTP
|
from gluon.http import HTTP
|
||||||
from gluon.fileutils import abspath, read_file
|
from gluon.fileutils import abspath, read_file
|
||||||
from gluon.settings import global_settings
|
from gluon.settings import global_settings
|
||||||
from gluon._compat import urllib_unquote, urllib_quote, iteritems, xrange
|
from gluon._compat import urllib_unquote, urllib_quote, iteritems, xrange, urllib_quote_plus
|
||||||
|
|
||||||
isdir = os.path.isdir
|
isdir = os.path.isdir
|
||||||
isfile = os.path.isfile
|
isfile = os.path.isfile
|
||||||
@@ -235,7 +234,7 @@ def try_rewrite_on_error(http_response, request, environ, ticket=None):
|
|||||||
path_info, query_string = uri, ''
|
path_info, query_string = uri, ''
|
||||||
query_string += \
|
query_string += \
|
||||||
'code=%s&ticket=%s&requested_uri=%s&request_url=%s' % \
|
'code=%s&ticket=%s&requested_uri=%s&request_url=%s' % \
|
||||||
(status, ticket, urllib.quote_plus(
|
(status, ticket, urllib_quote_plus(
|
||||||
request.env.request_uri), request.url)
|
request.env.request_uri), request.url)
|
||||||
if uri.startswith('http://') or uri.startswith('https://'):
|
if uri.startswith('http://') or uri.startswith('https://'):
|
||||||
# make up a response
|
# make up a response
|
||||||
@@ -270,12 +269,12 @@ def try_redirect_on_error(http_object, request, ticket=None):
|
|||||||
elif '?' in redir:
|
elif '?' in redir:
|
||||||
url = '%s&code=%s&ticket=%s&requested_uri=%s&request_url=%s' % \
|
url = '%s&code=%s&ticket=%s&requested_uri=%s&request_url=%s' % \
|
||||||
(redir, status, ticket,
|
(redir, status, ticket,
|
||||||
urllib.quote_plus(request.env.request_uri),
|
urllib_quote_plus(request.env.request_uri),
|
||||||
request.url)
|
request.url)
|
||||||
else:
|
else:
|
||||||
url = '%s?code=%s&ticket=%s&requested_uri=%s&request_url=%s' % \
|
url = '%s?code=%s&ticket=%s&requested_uri=%s&request_url=%s' % \
|
||||||
(redir, status, ticket,
|
(redir, status, ticket,
|
||||||
urllib.quote_plus(request.env.request_uri),
|
urllib_quote_plus(request.env.request_uri),
|
||||||
request.url)
|
request.url)
|
||||||
return HTTP(303, 'You are being redirected <a href="%s">here</a>' % url, Location=url)
|
return HTTP(303, 'You are being redirected <a href="%s">here</a>' % url, Location=url)
|
||||||
return http_object
|
return http_object
|
||||||
|
|||||||
Reference in New Issue
Block a user