$77 GRAYBYTE WORDPRESS FILE MANAGER $89

SERVER : in-mum-web1330.main-hosting.eu #1 SMP Mon Feb 10 22:45:17 UTC 2025
SERVER IP : 91.108.106.79 | ADMIN IP 216.73.216.215
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/opt/alt/python37/lib64/python3.7/site-packages/aiohttp/

HOME
Current File : /opt/alt/python37/lib64/python3.7/site-packages/aiohttp//_websocket.pyx
from cpython cimport PyBytes_AsString


#from cpython cimport PyByteArray_AsString # cython still not exports that
cdef extern from "Python.h":
    char* PyByteArray_AsString(bytearray ba) except NULL

from libc.stdint cimport uint32_t, uint64_t, uintmax_t


def _websocket_mask_cython(object mask, object data):
    """Note, this function mutates its `data` argument
    """
    cdef:
        Py_ssize_t data_len, i
        # bit operations on signed integers are implementation-specific
        unsigned char * in_buf
        const unsigned char * mask_buf
        uint32_t uint32_msk
        uint64_t uint64_msk

    assert len(mask) == 4

    if not isinstance(mask, bytes):
        mask = bytes(mask)

    if isinstance(data, bytearray):
        data = <bytearray>data
    else:
        data = bytearray(data)

    data_len = len(data)
    in_buf = <unsigned char*>PyByteArray_AsString(data)
    mask_buf = <const unsigned char*>PyBytes_AsString(mask)
    uint32_msk = (<uint32_t*>mask_buf)[0]

    # TODO: align in_data ptr to achieve even faster speeds
    # does it need in python ?! malloc() always aligns to sizeof(long) bytes

    if sizeof(size_t) >= 8:
        uint64_msk = uint32_msk
        uint64_msk = (uint64_msk << 32) | uint32_msk

        while data_len >= 8:
            (<uint64_t*>in_buf)[0] ^= uint64_msk
            in_buf += 8
            data_len -= 8


    while data_len >= 4:
        (<uint32_t*>in_buf)[0] ^= uint32_msk
        in_buf += 4
        data_len -= 4

    for i in range(0, data_len):
        in_buf[i] ^= mask_buf[i]

Current_dir [ NOT WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
28 Feb 2025 12.45 AM
root / 996
0755
.hash
--
25 Jan 2024 4.26 PM
root / 996
0755
__pycache__
--
25 Jan 2024 4.26 PM
root / 996
0755
__init__.py
6.709 KB
14 Nov 2021 8.05 PM
root / 996
0644
_cparser.pxd
4.881 KB
14 Nov 2021 8.05 PM
root / 996
0644
_find_header.c
183.174 KB
14 Nov 2021 8.05 PM
root / 996
0644
_find_header.h
0.166 KB
14 Nov 2021 8.05 PM
root / 996
0644
_find_header.pxd
0.066 KB
14 Nov 2021 8.05 PM
root / 996
0644
_headers.pxi
1.96 KB
14 Nov 2021 8.05 PM
root / 996
0644
_helpers.c
207.99 KB
14 Nov 2021 8.05 PM
root / 996
0644
_helpers.cpython-37m-x86_64-linux-gnu.so
66.117 KB
14 Nov 2023 11.36 AM
root / 996
0755
_helpers.pyi
0.197 KB
14 Nov 2021 8.05 PM
root / 996
0644
_helpers.pyx
1.024 KB
14 Nov 2021 8.05 PM
root / 996
0644
_http_parser.c
955.261 KB
14 Nov 2021 8.05 PM
root / 996
0644
_http_parser.cpython-37m-x86_64-linux-gnu.so
523.539 KB
14 Nov 2023 11.36 AM
root / 996
0755
_http_parser.pyx
25.948 KB
14 Nov 2021 8.05 PM
root / 996
0644
_http_writer.c
216.084 KB
14 Nov 2021 8.05 PM
root / 996
0644
_http_writer.cpython-37m-x86_64-linux-gnu.so
61.203 KB
14 Nov 2023 11.36 AM
root / 996
0755
_http_writer.pyx
4.468 KB
14 Nov 2021 8.05 PM
root / 996
0644
_websocket.c
135.176 KB
14 Nov 2021 8.05 PM
root / 996
0644
_websocket.cpython-37m-x86_64-linux-gnu.so
37.367 KB
14 Nov 2023 11.36 AM
root / 996
0755
_websocket.pyx
1.524 KB
14 Nov 2021 8.05 PM
root / 996
0644
abc.py
5.384 KB
14 Nov 2021 8.05 PM
root / 996
0644
base_protocol.py
2.637 KB
14 Nov 2021 8.05 PM
root / 996
0644
client.py
43.873 KB
14 Nov 2021 8.05 PM
root / 996
0644
client_exceptions.py
9.06 KB
14 Nov 2021 8.05 PM
root / 996
0644
client_proto.py
8.004 KB
14 Nov 2021 8.05 PM
root / 996
0644
client_reqrep.py
36.021 KB
14 Nov 2021 8.05 PM
root / 996
0644
client_ws.py
10.293 KB
14 Nov 2021 8.05 PM
root / 996
0644
connector.py
49.662 KB
14 Nov 2021 8.05 PM
root / 996
0644
cookiejar.py
13.252 KB
14 Nov 2021 8.05 PM
root / 996
0644
formdata.py
5.979 KB
14 Nov 2021 8.05 PM
root / 996
0644
hdrs.py
4.613 KB
14 Nov 2021 8.05 PM
root / 996
0644
helpers.py
25.628 KB
14 Nov 2021 8.05 PM
root / 996
0644
http.py
1.781 KB
14 Nov 2021 8.05 PM
root / 996
0644
http_exceptions.py
2.525 KB
14 Nov 2021 8.05 PM
root / 996
0644
http_parser.py
31.826 KB
14 Nov 2021 8.05 PM
root / 996
0644
http_websocket.py
24.765 KB
14 Nov 2021 8.05 PM
root / 996
0644
http_writer.py
5.836 KB
14 Nov 2021 8.05 PM
root / 996
0644
locks.py
1.125 KB
14 Nov 2021 8.05 PM
root / 996
0644
log.py
0.317 KB
14 Nov 2021 8.05 PM
root / 996
0644
multipart.py
31.677 KB
14 Nov 2021 8.05 PM
root / 996
0644
payload.py
13.379 KB
14 Nov 2021 8.05 PM
root / 996
0644
payload_streamer.py
2.063 KB
14 Nov 2021 8.05 PM
root / 996
0644
py.typed
0.007 KB
14 Nov 2021 8.05 PM
root / 996
0644
pytest_plugin.py
11.496 KB
14 Nov 2021 8.05 PM
root / 996
0644
resolver.py
4.973 KB
14 Nov 2021 8.05 PM
root / 996
0644
streams.py
20.352 KB
14 Nov 2021 8.05 PM
root / 996
0644
tcp_helpers.py
0.939 KB
14 Nov 2021 8.05 PM
root / 996
0644
test_utils.py
20.722 KB
14 Nov 2021 8.05 PM
root / 996
0644
tracing.py
14.946 KB
14 Nov 2021 8.05 PM
root / 996
0644
typedefs.py
1.725 KB
14 Nov 2021 8.05 PM
root / 996
0644
web.py
17.509 KB
14 Nov 2021 8.05 PM
root / 996
0644
web_app.py
16.863 KB
14 Nov 2021 8.05 PM
root / 996
0644
web_exceptions.py
9.869 KB
14 Nov 2021 8.05 PM
root / 996
0644
web_fileresponse.py
10.531 KB
14 Nov 2021 8.05 PM
root / 996
0644
web_log.py
7.388 KB
14 Nov 2021 8.05 PM
root / 996
0644
web_middlewares.py
4.04 KB
14 Nov 2021 8.05 PM
root / 996
0644
web_protocol.py
22.02 KB
14 Nov 2021 8.05 PM
root / 996
0644
web_request.py
27.234 KB
14 Nov 2021 8.05 PM
root / 996
0644
web_response.py
26.921 KB
14 Nov 2021 8.05 PM
root / 996
0644
web_routedef.py
5.898 KB
14 Nov 2021 8.05 PM
root / 996
0644
web_runner.py
10.927 KB
14 Nov 2021 8.05 PM
root / 996
0644
web_server.py
2.01 KB
14 Nov 2021 8.05 PM
root / 996
0644
web_urldispatcher.py
38.62 KB
14 Nov 2021 8.05 PM
root / 996
0644
web_ws.py
16.854 KB
14 Nov 2021 8.05 PM
root / 996
0644
worker.py
8.573 KB
14 Nov 2021 8.05 PM
root / 996
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME
Static GIF