Current Path: > > opt > alt > python27 > lib > > python2.7 > site-packages > > raven > contrib > django
Operation : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 Software : Apache Server IP : 162.0.232.56 | Your IP: 216.73.216.111 Domains : 1034 Domain(s) Permission : [ 0755 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
celery | Directory | - | - | |
management | Directory | - | - | |
middleware | Directory | - | - | |
raven_compat | Directory | - | - | |
templatetags | Directory | - | - | |
__init__.py | File | 315 bytes | October 29 2017 17:41:19. | |
__init__.pyc | File | 555 bytes | October 18 2019 13:53:42. | |
apps.py | File | 308 bytes | October 29 2017 17:41:19. | |
apps.pyc | File | 874 bytes | October 18 2019 13:53:42. | |
client.py | File | 10377 bytes | October 29 2017 17:41:19. | |
client.pyc | File | 10829 bytes | October 18 2019 13:53:42. | |
handlers.py | File | 1038 bytes | October 29 2017 17:41:19. | |
handlers.pyc | File | 1721 bytes | October 18 2019 13:53:42. | |
logging.py | File | 466 bytes | October 29 2017 17:41:19. | |
logging.pyc | File | 720 bytes | October 18 2019 13:53:42. | |
models.py | File | 9413 bytes | October 29 2017 17:41:19. | |
models.pyc | File | 17261 bytes | October 18 2019 13:53:42. | |
resolver.py | File | 2908 bytes | October 29 2017 17:41:19. | |
resolver.pyc | File | 3510 bytes | October 18 2019 13:53:42. | |
serializers.py | File | 2167 bytes | October 29 2017 17:41:19. | |
serializers.pyc | File | 3237 bytes | October 18 2019 13:53:42. | |
urls.py | File | 594 bytes | October 29 2017 17:41:19. | |
urls.pyc | File | 835 bytes | October 18 2019 13:53:42. | |
utils.py | File | 3176 bytes | October 29 2017 17:41:19. | |
utils.pyc | File | 3130 bytes | October 18 2019 13:53:42. | |
views.py | File | 2988 bytes | October 29 2017 17:41:19. | |
views.pyc | File | 3613 bytes | October 18 2019 13:53:42. |
""" raven.contrib.django.utils ~~~~~~~~~~~~~~~~~~~~~~~~~~ :copyright: (c) 2010-2012 by the Sentry Team, see AUTHORS for more details. :license: BSD, see LICENSE for more details. """ from __future__ import absolute_import import os from django.conf import settings def linebreak_iter(template_source): yield 0 p = template_source.find('\n') while p >= 0: yield p + 1 p = template_source.find('\n', p + 1) yield len(template_source) + 1 def get_data_from_template(source, debug=None): def _remove_numbers(items): rv = [] for item in items: # Some debug info from django has tuples in the form (lineno, # code) instead of just the code there. if isinstance(item, (list, tuple)) and len(item) == 2: item = item[1] rv.append(item) return rv if debug is not None: lineno = debug['line'] filename = debug['name'] source_lines = [] source_lines += [''] * (debug['source_lines'][0][0]) for num, line in debug['source_lines']: source_lines.append(line) source_lines += [''] * 4 elif source: origin, (start, end) = source filename = culprit = getattr(origin, 'loadname', None) template_source = origin.reload() lineno = None upto = 0 source_lines = [] for num, next in enumerate(linebreak_iter(template_source)): if start >= upto and end <= next: lineno = num source_lines.append(template_source[upto:next]) upto = next if not source_lines or lineno is None: return {} else: raise TypeError('Source or debug needed') if filename is None: filename = '<unknown filename>' culprit = '<unknown filename>' else: culprit = filename.split('/templates/')[-1] pre_context = _remove_numbers(source_lines[max(lineno - 3, 0):lineno]) post_context = _remove_numbers(source_lines[(lineno + 1):(lineno + 4)]) context_line = _remove_numbers([source_lines[lineno]])[0] return { 'template': { 'filename': os.path.basename(filename), 'abs_path': filename, 'pre_context': pre_context, 'context_line': context_line, 'lineno': lineno, 'post_context': post_context, }, 'culprit': culprit, } def get_host(request): """ A reimplementation of Django's get_host, without the SuspiciousOperation check. """ # We try three options, in order of decreasing preference. if settings.USE_X_FORWARDED_HOST and ( 'HTTP_X_FORWARDED_HOST' in request.META): host = request.META['HTTP_X_FORWARDED_HOST'] elif 'HTTP_HOST' in request.META: host = request.META['HTTP_HOST'] else: # Reconstruct the host using the algorithm from PEP 333. host = request.META['SERVER_NAME'] server_port = str(request.META['SERVER_PORT']) if server_port != (request.is_secure() and '443' or '80'): host = '%s:%s' % (host, server_port) return host
SILENT KILLER Tool