mirror of
				https://github.com/sqlmapproject/sqlmap.git
				synced 2025-11-04 18:07:46 +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
 | 
			
		||||
 | 
			
		||||
# 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_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)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										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 ##########################################
 | 
			
		||||
###############################################################################
 | 
			
		||||
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
from types import FunctionType
 | 
			
		||||
from datetime import date as datedate, datetime, timedelta
 | 
			
		||||
from tempfile import TemporaryFile
 | 
			
		||||
from tempfile import NamedTemporaryFile
 | 
			
		||||
from traceback import format_exc, print_exc
 | 
			
		||||
from unicodedata import normalize
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -83,34 +83,6 @@ try:
 | 
			
		|||
except ImportError:
 | 
			
		||||
    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
 | 
			
		||||
py3k = py.major > 2
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -123,9 +95,17 @@ if py3k:
 | 
			
		|||
    urlunquote = functools.partial(urlunquote, encoding='latin1')
 | 
			
		||||
    from http.cookies import SimpleCookie, Morsel, CookieError
 | 
			
		||||
    from collections.abc import MutableMapping as DictMixin
 | 
			
		||||
    from types import ModuleType as new_module
 | 
			
		||||
    import pickle
 | 
			
		||||
    from io import BytesIO
 | 
			
		||||
    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
 | 
			
		||||
    unicode = str
 | 
			
		||||
| 
						 | 
				
			
			@ -143,9 +123,12 @@ else:  # 2.x
 | 
			
		|||
    from Cookie import SimpleCookie, Morsel, CookieError
 | 
			
		||||
    from itertools import imap
 | 
			
		||||
    import cPickle as pickle
 | 
			
		||||
    from imp import new_module
 | 
			
		||||
    from StringIO import StringIO as BytesIO
 | 
			
		||||
    import ConfigParser as configparser
 | 
			
		||||
    from collections import MutableMapping as DictMixin
 | 
			
		||||
    from inspect import getargspec
 | 
			
		||||
 | 
			
		||||
    unicode = unicode
 | 
			
		||||
    json_loads = json_lds
 | 
			
		||||
    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)
 | 
			
		||||
        return value
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
###############################################################################
 | 
			
		||||
# Exceptions and Events #######################################################
 | 
			
		||||
###############################################################################
 | 
			
		||||
| 
						 | 
				
			
			@ -1353,7 +1337,7 @@ class BaseRequest(object):
 | 
			
		|||
            body.write(part)
 | 
			
		||||
            body_size += len(part)
 | 
			
		||||
            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())
 | 
			
		||||
                del tmp
 | 
			
		||||
                is_temp_file = True
 | 
			
		||||
| 
						 | 
				
			
			@ -2010,6 +1994,7 @@ class JSONPlugin(object):
 | 
			
		|||
        dumps = self.json_dumps
 | 
			
		||||
        if not self.json_dumps: return callback
 | 
			
		||||
 | 
			
		||||
        @functools.wraps(callback)
 | 
			
		||||
        def wrapper(*a, **ka):
 | 
			
		||||
            try:
 | 
			
		||||
                rv = callback(*a, **ka)
 | 
			
		||||
| 
						 | 
				
			
			@ -2057,7 +2042,7 @@ class _ImportRedirect(object):
 | 
			
		|||
        """ Create a virtual package that redirects imports (see PEP 302). """
 | 
			
		||||
        self.name = name
 | 
			
		||||
        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({
 | 
			
		||||
            '__file__': __file__,
 | 
			
		||||
            '__path__': [],
 | 
			
		||||
| 
						 | 
				
			
			@ -2066,10 +2051,15 @@ class _ImportRedirect(object):
 | 
			
		|||
        })
 | 
			
		||||
        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):
 | 
			
		||||
        if '.' not in fullname: return
 | 
			
		||||
        packname = fullname.rsplit('.', 1)[0]
 | 
			
		||||
        if packname != self.name: return
 | 
			
		||||
        if fullname.rsplit('.', 1)[0] != self.name: return
 | 
			
		||||
        return self
 | 
			
		||||
 | 
			
		||||
    def load_module(self, fullname):
 | 
			
		||||
| 
						 | 
				
			
			@ -2825,18 +2815,15 @@ def redirect(url, code=None):
 | 
			
		|||
    raise res
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def _file_iter_range(fp, offset, bytes, maxread=1024 * 1024, close=False):
 | 
			
		||||
    """ Yield chunks from a range in a file, optionally closing it at the end.
 | 
			
		||||
        No chunk is bigger than maxread. """
 | 
			
		||||
def _rangeiter(fp, offset, limit, bufsize=1024 * 1024):
 | 
			
		||||
    """ Yield chunks from a range in a file. """
 | 
			
		||||
    fp.seek(offset)
 | 
			
		||||
    while bytes > 0:
 | 
			
		||||
        part = fp.read(min(bytes, maxread))
 | 
			
		||||
    while limit > 0:
 | 
			
		||||
        part = fp.read(min(limit, bufsize))
 | 
			
		||||
        if not part:
 | 
			
		||||
            break
 | 
			
		||||
        bytes -= len(part)
 | 
			
		||||
        limit -= len(part)
 | 
			
		||||
        yield part
 | 
			
		||||
    if close:
 | 
			
		||||
        fp.close()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def static_file(filename, root,
 | 
			
		||||
| 
						 | 
				
			
			@ -2940,9 +2927,10 @@ def static_file(filename, root,
 | 
			
		|||
        if not ranges:
 | 
			
		||||
            return HTTPError(416, "Requested Range Not Satisfiable")
 | 
			
		||||
        offset, end = ranges[0]
 | 
			
		||||
        rlen = end - offset
 | 
			
		||||
        headers["Content-Range"] = "bytes %d-%d/%d" % (offset, end - 1, clen)
 | 
			
		||||
        headers["Content-Length"] = str(end - offset)
 | 
			
		||||
        if body: body = _file_iter_range(body, offset, end - offset, close=True)
 | 
			
		||||
        headers["Content-Length"] = str(rlen)
 | 
			
		||||
        if body: body = _closeiter(_rangeiter(body, offset, rlen), body.close)
 | 
			
		||||
        return HTTPResponse(body, status=206, **headers)
 | 
			
		||||
    return HTTPResponse(body, **headers)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -3359,7 +3347,7 @@ class MeinheldServer(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
 | 
			
		||||
        depr(0, 13, "fapws3 is not maintained and support will be dropped.")
 | 
			
		||||
| 
						 | 
				
			
			@ -4276,7 +4264,7 @@ def view(tpl_name, **defaults):
 | 
			
		|||
                tplvars.update(result)
 | 
			
		||||
                return template(tpl_name, **tplvars)
 | 
			
		||||
            elif result is None:
 | 
			
		||||
                return template(tpl_name, defaults)
 | 
			
		||||
                return template(tpl_name, **defaults)
 | 
			
		||||
            return result
 | 
			
		||||
 | 
			
		||||
        return wrapper
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user