����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
# This file is part of Cockpit.
#
# Copyright (C) 2023 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
import contextlib
import socket
def install():
"""Add shims for older Python versions"""
# introduced in 3.9
if not hasattr(socket, 'recv_fds'):
import _socket
import array
def recv_fds(sock, bufsize, maxfds, flags=0):
fds = array.array("i")
msg, ancdata, flags, addr = sock.recvmsg(bufsize, _socket.CMSG_LEN(maxfds * fds.itemsize))
for cmsg_level, cmsg_type, cmsg_data in ancdata:
if (cmsg_level == _socket.SOL_SOCKET and cmsg_type == _socket.SCM_RIGHTS):
fds.frombytes(cmsg_data[:len(cmsg_data) - (len(cmsg_data) % fds.itemsize)])
return msg, list(fds), flags, addr
socket.recv_fds = recv_fds
# introduced in 3.7
if not hasattr(contextlib, 'AsyncExitStack'):
class AsyncExitStack:
async def __aenter__(self):
self.cms = []
self.async_cms = []
return self
async def enter_async_context(self, cm):
result = await cm.__aenter__()
self.async_cms.append(cm)
return result
def enter_context(self, cm):
result = cm.__enter__()
self.cms.append(cm)
return result
async def __aexit__(self, exc_type, exc_value, traceback):
for cm in self.async_cms:
cm.__aexit__(exc_type, exc_value, traceback)
for cm in self.cms:
cm.__exit__(exc_type, exc_value, traceback)
contextlib.AsyncExitStack = AsyncExitStack
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| __pycache__ | Folder | 0755 |
|
|
| _vendor | Folder | 0755 |
|
|
| channels | Folder | 0755 |
|
|
| data | Folder | 0755 |
|
|
| __init__.py | File | 68 B | 0644 |
|
| _version.py | File | 20 B | 0644 |
|
| beiboot.py | File | 22.16 KB | 0644 |
|
| beipack.py | File | 2.99 KB | 0644 |
|
| bridge.py | File | 12 KB | 0644 |
|
| channel.py | File | 22.32 KB | 0644 |
|
| config.py | File | 3.37 KB | 0644 |
|
| internal_endpoints.py | File | 5.95 KB | 0644 |
|
| jsonutil.py | File | 7.42 KB | 0644 |
|
| osinfo.py | File | 929 B | 0644 |
|
| packages.py | File | 21.25 KB | 0644 |
|
| peer.py | File | 12.45 KB | 0644 |
|
| polkit.py | File | 7.4 KB | 0644 |
|
| polyfills.py | File | 2.27 KB | 0644 |
|
| protocol.py | File | 9.52 KB | 0644 |
|
| remote.py | File | 8.93 KB | 0644 |
|
| router.py | File | 10.08 KB | 0644 |
|
| samples.py | File | 17.02 KB | 0644 |
|
| superuser.py | File | 9.74 KB | 0644 |
|
| transports.py | File | 17.92 KB | 0644 |
|