$27 GRAYBYTE WORDPRESS FILE MANAGER $25

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 104.21.15.130 | ADMIN IP 216.73.216.174
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/opt/hc_python/lib/python3.12/site-packages/sentry_sdk/

HOME
Current File : /opt/hc_python/lib/python3.12/site-packages/sentry_sdk//_werkzeug.py
"""
Copyright (c) 2007 by the Pallets team.

Some rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

* Redistributions of source code must retain the above copyright notice,
  this list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright
  notice, this list of conditions and the following disclaimer in the
  documentation and/or other materials provided with the distribution.

* Neither the name of the copyright holder nor the names of its
  contributors may be used to endorse or promote products derived from
  this software without specific prior written permission.

THIS SOFTWARE AND DOCUMENTATION IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE AND DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
"""

from typing import TYPE_CHECKING

if TYPE_CHECKING:
    from typing import Dict
    from typing import Iterator
    from typing import Tuple


#
# `get_headers` comes from `werkzeug.datastructures.EnvironHeaders`
# https://github.com/pallets/werkzeug/blob/0.14.1/werkzeug/datastructures.py#L1361
#
# We need this function because Django does not give us a "pure" http header
# dict. So we might as well use it for all WSGI integrations.
#
def _get_headers(environ):
    # type: (Dict[str, str]) -> Iterator[Tuple[str, str]]
    """
    Returns only proper HTTP headers.
    """
    for key, value in environ.items():
        key = str(key)
        if key.startswith("HTTP_") and key not in (
            "HTTP_CONTENT_TYPE",
            "HTTP_CONTENT_LENGTH",
        ):
            yield key[5:].replace("_", "-").title(), value
        elif key in ("CONTENT_TYPE", "CONTENT_LENGTH"):
            yield key.replace("_", "-").title(), value


#
# `get_host` comes from `werkzeug.wsgi.get_host`
# https://github.com/pallets/werkzeug/blob/1.0.1/src/werkzeug/wsgi.py#L145
#
def get_host(environ, use_x_forwarded_for=False):
    # type: (Dict[str, str], bool) -> str
    """
    Return the host for the given WSGI environment.
    """
    if use_x_forwarded_for and "HTTP_X_FORWARDED_HOST" in environ:
        rv = environ["HTTP_X_FORWARDED_HOST"]
        if environ["wsgi.url_scheme"] == "http" and rv.endswith(":80"):
            rv = rv[:-3]
        elif environ["wsgi.url_scheme"] == "https" and rv.endswith(":443"):
            rv = rv[:-4]
    elif environ.get("HTTP_HOST"):
        rv = environ["HTTP_HOST"]
        if environ["wsgi.url_scheme"] == "http" and rv.endswith(":80"):
            rv = rv[:-3]
        elif environ["wsgi.url_scheme"] == "https" and rv.endswith(":443"):
            rv = rv[:-4]
    elif environ.get("SERVER_NAME"):
        rv = environ["SERVER_NAME"]
        if (environ["wsgi.url_scheme"], environ["SERVER_PORT"]) not in (
            ("https", "443"),
            ("http", "80"),
        ):
            rv += ":" + environ["SERVER_PORT"]
    else:
        # In spite of the WSGI spec, SERVER_NAME might not be present.
        rv = "unknown"

    return rv


Current_dir [ NOT WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
3 Dec 2025 9.30 AM
root / root
0755
__pycache__
--
3 Dec 2025 9.30 AM
root / root
0755
ai
--
3 Dec 2025 9.30 AM
root / root
0755
crons
--
3 Dec 2025 9.30 AM
root / root
0755
integrations
--
3 Dec 2025 9.30 AM
root / root
0755
profiler
--
3 Dec 2025 9.30 AM
root / root
0755
__init__.py
1.377 KB
3 Dec 2025 9.30 AM
root / root
0644
_compat.py
3.043 KB
3 Dec 2025 9.30 AM
root / root
0644
_init_implementation.py
2.499 KB
3 Dec 2025 9.30 AM
root / root
0644
_log_batcher.py
5.371 KB
3 Dec 2025 9.30 AM
root / root
0644
_lru_cache.py
1.2 KB
3 Dec 2025 9.30 AM
root / root
0644
_metrics_batcher.py
4.924 KB
3 Dec 2025 9.30 AM
root / root
0644
_queue.py
10.986 KB
3 Dec 2025 9.30 AM
root / root
0644
_types.py
10.178 KB
3 Dec 2025 9.30 AM
root / root
0644
_werkzeug.py
3.646 KB
3 Dec 2025 9.30 AM
root / root
0644
api.py
14.924 KB
3 Dec 2025 9.30 AM
root / root
0644
attachments.py
3.036 KB
3 Dec 2025 9.30 AM
root / root
0644
client.py
41.112 KB
3 Dec 2025 9.30 AM
root / root
0644
consts.py
52.474 KB
3 Dec 2025 9.30 AM
root / root
0644
debug.py
0.995 KB
3 Dec 2025 9.30 AM
root / root
0644
envelope.py
10.228 KB
3 Dec 2025 9.30 AM
root / root
0644
feature_flags.py
2.18 KB
3 Dec 2025 9.30 AM
root / root
0644
hub.py
25.145 KB
3 Dec 2025 9.30 AM
root / root
0644
logger.py
2.731 KB
3 Dec 2025 9.30 AM
root / root
0644
metrics.py
1.996 KB
3 Dec 2025 9.30 AM
root / root
0644
monitor.py
3.554 KB
3 Dec 2025 9.30 AM
root / root
0644
py.typed
0 KB
3 Dec 2025 9.30 AM
root / root
0644
scope.py
63.887 KB
3 Dec 2025 9.30 AM
root / root
0644
scrubber.py
5.922 KB
3 Dec 2025 9.30 AM
root / root
0644
serializer.py
13.217 KB
3 Dec 2025 9.30 AM
root / root
0644
session.py
5.458 KB
3 Dec 2025 9.30 AM
root / root
0644
sessions.py
8.957 KB
3 Dec 2025 9.30 AM
root / root
0644
spotlight.py
8.475 KB
3 Dec 2025 9.30 AM
root / root
0644
tracing.py
50.534 KB
3 Dec 2025 9.30 AM
root / root
0644
tracing_utils.py
39.59 KB
3 Dec 2025 9.30 AM
root / root
0644
transport.py
31.131 KB
3 Dec 2025 9.30 AM
root / root
0644
types.py
1.239 KB
3 Dec 2025 9.30 AM
root / root
0644
utils.py
62.402 KB
3 Dec 2025 9.30 AM
root / root
0644
worker.py
4.359 KB
3 Dec 2025 9.30 AM
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025 CONTACT ME
Static GIF