mirror of
				https://github.com/sqlmapproject/sqlmap.git
				synced 2025-11-04 09:57:38 +03:00 
			
		
		
		
	Updating bottlepy to the latest revision
This commit is contained in:
		
							parent
							
								
									01310a47fd
								
							
						
					
					
						commit
						15d9c8f9ed
					
				| 
						 | 
					@ -20,7 +20,7 @@ from thirdparty import six
 | 
				
			||||||
from thirdparty.six import unichr as _unichr
 | 
					from thirdparty.six import unichr as _unichr
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# sqlmap version (<major>.<minor>.<month>.<monthly commit>)
 | 
					# sqlmap version (<major>.<minor>.<month>.<monthly commit>)
 | 
				
			||||||
VERSION = "1.7.2.10"
 | 
					VERSION = "1.7.2.11"
 | 
				
			||||||
TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable"
 | 
					TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable"
 | 
				
			||||||
TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34}
 | 
					TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34}
 | 
				
			||||||
VERSION_STRING = "sqlmap/%s#%s" % ('.'.join(VERSION.split('.')[:-1]) if VERSION.count('.') > 2 and VERSION.split('.')[-1] == '0' else VERSION, TYPE)
 | 
					VERSION_STRING = "sqlmap/%s#%s" % ('.'.join(VERSION.split('.')[:-1]) if VERSION.count('.') > 2 and VERSION.split('.')[-1] == '0' else VERSION, TYPE)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										80
									
								
								thirdparty/bottle/bottle.py
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										80
									
								
								thirdparty/bottle/bottle.py
									
									
									
									
										vendored
									
									
								
							| 
						 | 
					@ -69,12 +69,12 @@ if __name__ == '__main__':
 | 
				
			||||||
# Imports and Python 2/3 unification ##########################################
 | 
					# Imports and Python 2/3 unification ##########################################
 | 
				
			||||||
###############################################################################
 | 
					###############################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import base64, calendar, cgi, email.utils, functools, hmac, imp, itertools,\
 | 
					import base64, calendar, cgi, email.utils, functools, hmac, itertools,\
 | 
				
			||||||
       mimetypes, os, re, tempfile, threading, time, warnings, weakref, hashlib
 | 
					       mimetypes, os, re, tempfile, threading, time, warnings, weakref, hashlib
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from types import FunctionType
 | 
					from types import FunctionType
 | 
				
			||||||
from datetime import date as datedate, datetime, timedelta
 | 
					from datetime import date as datedate, datetime, timedelta
 | 
				
			||||||
from tempfile import TemporaryFile
 | 
					from tempfile import NamedTemporaryFile
 | 
				
			||||||
from traceback import format_exc, print_exc
 | 
					from traceback import format_exc, print_exc
 | 
				
			||||||
from unicodedata import normalize
 | 
					from unicodedata import normalize
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -83,34 +83,6 @@ try:
 | 
				
			||||||
except ImportError:
 | 
					except ImportError:
 | 
				
			||||||
    from json import dumps as json_dumps, loads as json_lds
 | 
					    from json import dumps as json_dumps, loads as json_lds
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# inspect.getargspec was removed in Python 3.6, use
 | 
					 | 
				
			||||||
# Signature-based version where we can (Python 3.3+)
 | 
					 | 
				
			||||||
try:
 | 
					 | 
				
			||||||
    from inspect import signature
 | 
					 | 
				
			||||||
    def getargspec(func):
 | 
					 | 
				
			||||||
        params = signature(func).parameters
 | 
					 | 
				
			||||||
        args, varargs, keywords, defaults = [], None, None, []
 | 
					 | 
				
			||||||
        for name, param in params.items():
 | 
					 | 
				
			||||||
            if param.kind == param.VAR_POSITIONAL:
 | 
					 | 
				
			||||||
                varargs = name
 | 
					 | 
				
			||||||
            elif param.kind == param.VAR_KEYWORD:
 | 
					 | 
				
			||||||
                keywords = name
 | 
					 | 
				
			||||||
            else:
 | 
					 | 
				
			||||||
                args.append(name)
 | 
					 | 
				
			||||||
                if param.default is not param.empty:
 | 
					 | 
				
			||||||
                    defaults.append(param.default)
 | 
					 | 
				
			||||||
        return (args, varargs, keywords, tuple(defaults) or None)
 | 
					 | 
				
			||||||
except ImportError:
 | 
					 | 
				
			||||||
    try:
 | 
					 | 
				
			||||||
        from inspect import getfullargspec
 | 
					 | 
				
			||||||
        def getargspec(func):
 | 
					 | 
				
			||||||
            spec = getfullargspec(func)
 | 
					 | 
				
			||||||
            kwargs = makelist(spec[0]) + makelist(spec.kwonlyargs)
 | 
					 | 
				
			||||||
            return kwargs, spec[1], spec[2], spec[3]
 | 
					 | 
				
			||||||
    except ImportError:
 | 
					 | 
				
			||||||
        from inspect import getargspec
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
py = sys.version_info
 | 
					py = sys.version_info
 | 
				
			||||||
py3k = py.major > 2
 | 
					py3k = py.major > 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -123,9 +95,17 @@ if py3k:
 | 
				
			||||||
    urlunquote = functools.partial(urlunquote, encoding='latin1')
 | 
					    urlunquote = functools.partial(urlunquote, encoding='latin1')
 | 
				
			||||||
    from http.cookies import SimpleCookie, Morsel, CookieError
 | 
					    from http.cookies import SimpleCookie, Morsel, CookieError
 | 
				
			||||||
    from collections.abc import MutableMapping as DictMixin
 | 
					    from collections.abc import MutableMapping as DictMixin
 | 
				
			||||||
 | 
					    from types import ModuleType as new_module
 | 
				
			||||||
    import pickle
 | 
					    import pickle
 | 
				
			||||||
    from io import BytesIO
 | 
					    from io import BytesIO
 | 
				
			||||||
    import configparser
 | 
					    import configparser
 | 
				
			||||||
 | 
					    # getfullargspec was deprecated in 3.5 and un-deprecated in 3.6
 | 
				
			||||||
 | 
					    # getargspec was deprecated in 3.0 and removed in 3.11
 | 
				
			||||||
 | 
					    from inspect import getfullargspec
 | 
				
			||||||
 | 
					    def getargspec(func):
 | 
				
			||||||
 | 
					        spec = getfullargspec(func)
 | 
				
			||||||
 | 
					        kwargs = makelist(spec[0]) + makelist(spec.kwonlyargs)
 | 
				
			||||||
 | 
					        return kwargs, spec[1], spec[2], spec[3]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    basestring = str
 | 
					    basestring = str
 | 
				
			||||||
    unicode = str
 | 
					    unicode = str
 | 
				
			||||||
| 
						 | 
					@ -143,9 +123,12 @@ else:  # 2.x
 | 
				
			||||||
    from Cookie import SimpleCookie, Morsel, CookieError
 | 
					    from Cookie import SimpleCookie, Morsel, CookieError
 | 
				
			||||||
    from itertools import imap
 | 
					    from itertools import imap
 | 
				
			||||||
    import cPickle as pickle
 | 
					    import cPickle as pickle
 | 
				
			||||||
 | 
					    from imp import new_module
 | 
				
			||||||
    from StringIO import StringIO as BytesIO
 | 
					    from StringIO import StringIO as BytesIO
 | 
				
			||||||
    import ConfigParser as configparser
 | 
					    import ConfigParser as configparser
 | 
				
			||||||
    from collections import MutableMapping as DictMixin
 | 
					    from collections import MutableMapping as DictMixin
 | 
				
			||||||
 | 
					    from inspect import getargspec
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    unicode = unicode
 | 
					    unicode = unicode
 | 
				
			||||||
    json_loads = json_lds
 | 
					    json_loads = json_lds
 | 
				
			||||||
    exec(compile('def _raise(*a): raise a[0], a[1], a[2]', '<py3fix>', 'exec'))
 | 
					    exec(compile('def _raise(*a): raise a[0], a[1], a[2]', '<py3fix>', 'exec'))
 | 
				
			||||||
| 
						 | 
					@ -256,6 +239,7 @@ class lazy_attribute(object):
 | 
				
			||||||
        setattr(cls, self.__name__, value)
 | 
					        setattr(cls, self.__name__, value)
 | 
				
			||||||
        return value
 | 
					        return value
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
###############################################################################
 | 
					###############################################################################
 | 
				
			||||||
# Exceptions and Events #######################################################
 | 
					# Exceptions and Events #######################################################
 | 
				
			||||||
###############################################################################
 | 
					###############################################################################
 | 
				
			||||||
| 
						 | 
					@ -1353,7 +1337,7 @@ class BaseRequest(object):
 | 
				
			||||||
            body.write(part)
 | 
					            body.write(part)
 | 
				
			||||||
            body_size += len(part)
 | 
					            body_size += len(part)
 | 
				
			||||||
            if not is_temp_file and body_size > self.MEMFILE_MAX:
 | 
					            if not is_temp_file and body_size > self.MEMFILE_MAX:
 | 
				
			||||||
                body, tmp = TemporaryFile(mode='w+b'), body
 | 
					                body, tmp = NamedTemporaryFile(mode='w+b'), body
 | 
				
			||||||
                body.write(tmp.getvalue())
 | 
					                body.write(tmp.getvalue())
 | 
				
			||||||
                del tmp
 | 
					                del tmp
 | 
				
			||||||
                is_temp_file = True
 | 
					                is_temp_file = True
 | 
				
			||||||
| 
						 | 
					@ -2010,6 +1994,7 @@ class JSONPlugin(object):
 | 
				
			||||||
        dumps = self.json_dumps
 | 
					        dumps = self.json_dumps
 | 
				
			||||||
        if not self.json_dumps: return callback
 | 
					        if not self.json_dumps: return callback
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        @functools.wraps(callback)
 | 
				
			||||||
        def wrapper(*a, **ka):
 | 
					        def wrapper(*a, **ka):
 | 
				
			||||||
            try:
 | 
					            try:
 | 
				
			||||||
                rv = callback(*a, **ka)
 | 
					                rv = callback(*a, **ka)
 | 
				
			||||||
| 
						 | 
					@ -2057,7 +2042,7 @@ class _ImportRedirect(object):
 | 
				
			||||||
        """ Create a virtual package that redirects imports (see PEP 302). """
 | 
					        """ Create a virtual package that redirects imports (see PEP 302). """
 | 
				
			||||||
        self.name = name
 | 
					        self.name = name
 | 
				
			||||||
        self.impmask = impmask
 | 
					        self.impmask = impmask
 | 
				
			||||||
        self.module = sys.modules.setdefault(name, imp.new_module(name))
 | 
					        self.module = sys.modules.setdefault(name, new_module(name))
 | 
				
			||||||
        self.module.__dict__.update({
 | 
					        self.module.__dict__.update({
 | 
				
			||||||
            '__file__': __file__,
 | 
					            '__file__': __file__,
 | 
				
			||||||
            '__path__': [],
 | 
					            '__path__': [],
 | 
				
			||||||
| 
						 | 
					@ -2066,10 +2051,15 @@ class _ImportRedirect(object):
 | 
				
			||||||
        })
 | 
					        })
 | 
				
			||||||
        sys.meta_path.append(self)
 | 
					        sys.meta_path.append(self)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def find_spec(self, fullname, path, target=None):
 | 
				
			||||||
 | 
					        if '.' not in fullname: return
 | 
				
			||||||
 | 
					        if fullname.rsplit('.', 1)[0] != self.name: return
 | 
				
			||||||
 | 
					        from importlib.util import spec_from_loader
 | 
				
			||||||
 | 
					        return spec_from_loader(fullname, self)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def find_module(self, fullname, path=None):
 | 
					    def find_module(self, fullname, path=None):
 | 
				
			||||||
        if '.' not in fullname: return
 | 
					        if '.' not in fullname: return
 | 
				
			||||||
        packname = fullname.rsplit('.', 1)[0]
 | 
					        if fullname.rsplit('.', 1)[0] != self.name: return
 | 
				
			||||||
        if packname != self.name: return
 | 
					 | 
				
			||||||
        return self
 | 
					        return self
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def load_module(self, fullname):
 | 
					    def load_module(self, fullname):
 | 
				
			||||||
| 
						 | 
					@ -2825,18 +2815,15 @@ def redirect(url, code=None):
 | 
				
			||||||
    raise res
 | 
					    raise res
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def _file_iter_range(fp, offset, bytes, maxread=1024 * 1024, close=False):
 | 
					def _rangeiter(fp, offset, limit, bufsize=1024 * 1024):
 | 
				
			||||||
    """ Yield chunks from a range in a file, optionally closing it at the end.
 | 
					    """ Yield chunks from a range in a file. """
 | 
				
			||||||
        No chunk is bigger than maxread. """
 | 
					 | 
				
			||||||
    fp.seek(offset)
 | 
					    fp.seek(offset)
 | 
				
			||||||
    while bytes > 0:
 | 
					    while limit > 0:
 | 
				
			||||||
        part = fp.read(min(bytes, maxread))
 | 
					        part = fp.read(min(limit, bufsize))
 | 
				
			||||||
        if not part:
 | 
					        if not part:
 | 
				
			||||||
            break
 | 
					            break
 | 
				
			||||||
        bytes -= len(part)
 | 
					        limit -= len(part)
 | 
				
			||||||
        yield part
 | 
					        yield part
 | 
				
			||||||
    if close:
 | 
					 | 
				
			||||||
        fp.close()
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def static_file(filename, root,
 | 
					def static_file(filename, root,
 | 
				
			||||||
| 
						 | 
					@ -2940,9 +2927,10 @@ def static_file(filename, root,
 | 
				
			||||||
        if not ranges:
 | 
					        if not ranges:
 | 
				
			||||||
            return HTTPError(416, "Requested Range Not Satisfiable")
 | 
					            return HTTPError(416, "Requested Range Not Satisfiable")
 | 
				
			||||||
        offset, end = ranges[0]
 | 
					        offset, end = ranges[0]
 | 
				
			||||||
 | 
					        rlen = end - offset
 | 
				
			||||||
        headers["Content-Range"] = "bytes %d-%d/%d" % (offset, end - 1, clen)
 | 
					        headers["Content-Range"] = "bytes %d-%d/%d" % (offset, end - 1, clen)
 | 
				
			||||||
        headers["Content-Length"] = str(end - offset)
 | 
					        headers["Content-Length"] = str(rlen)
 | 
				
			||||||
        if body: body = _file_iter_range(body, offset, end - offset, close=True)
 | 
					        if body: body = _closeiter(_rangeiter(body, offset, rlen), body.close)
 | 
				
			||||||
        return HTTPResponse(body, status=206, **headers)
 | 
					        return HTTPResponse(body, status=206, **headers)
 | 
				
			||||||
    return HTTPResponse(body, **headers)
 | 
					    return HTTPResponse(body, **headers)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3359,7 +3347,7 @@ class MeinheldServer(ServerAdapter):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class FapwsServer(ServerAdapter):
 | 
					class FapwsServer(ServerAdapter):
 | 
				
			||||||
    """ Extremely fast webserver using libev. See http://www.fapws.org/ """
 | 
					    """ Extremely fast webserver using libev. See https://github.com/william-os4y/fapws3 """
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def run(self, handler):  # pragma: no cover
 | 
					    def run(self, handler):  # pragma: no cover
 | 
				
			||||||
        depr(0, 13, "fapws3 is not maintained and support will be dropped.")
 | 
					        depr(0, 13, "fapws3 is not maintained and support will be dropped.")
 | 
				
			||||||
| 
						 | 
					@ -4276,7 +4264,7 @@ def view(tpl_name, **defaults):
 | 
				
			||||||
                tplvars.update(result)
 | 
					                tplvars.update(result)
 | 
				
			||||||
                return template(tpl_name, **tplvars)
 | 
					                return template(tpl_name, **tplvars)
 | 
				
			||||||
            elif result is None:
 | 
					            elif result is None:
 | 
				
			||||||
                return template(tpl_name, defaults)
 | 
					                return template(tpl_name, **defaults)
 | 
				
			||||||
            return result
 | 
					            return result
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return wrapper
 | 
					        return wrapper
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user