Hackfut Security File Manager
Current Path:
/opt/alt/python37/lib64/python3.7/site-packages/aiohttp
opt
/
alt
/
python37
/
lib64
/
python3.7
/
site-packages
/
aiohttp
/
📁
..
📁
.hash
📄
__init__.py
(6.71 KB)
📁
__pycache__
📄
_cparser.pxd
(4.88 KB)
📄
_find_header.c
(183.17 KB)
📄
_find_header.h
(170 B)
📄
_find_header.pxd
(68 B)
📄
_headers.pxi
(1.96 KB)
📄
_helpers.c
(207.99 KB)
📄
_helpers.cpython-37m-x86_64-linux-gnu.so
(190.32 KB)
📄
_helpers.pyi
(202 B)
📄
_helpers.pyx
(1.02 KB)
📄
_http_parser.c
(955.26 KB)
📄
_http_parser.cpython-37m-x86_64-linux-gnu.so
(1.38 MB)
📄
_http_parser.pyx
(25.95 KB)
📄
_http_writer.c
(216.08 KB)
📄
_http_writer.cpython-37m-x86_64-linux-gnu.so
(202.37 KB)
📄
_http_writer.pyx
(4.47 KB)
📄
_websocket.c
(135.18 KB)
📄
_websocket.cpython-37m-x86_64-linux-gnu.so
(91.18 KB)
📄
_websocket.pyx
(1.52 KB)
📄
abc.py
(5.38 KB)
📄
base_protocol.py
(2.64 KB)
📄
client.py
(43.87 KB)
📄
client_exceptions.py
(9.06 KB)
📄
client_proto.py
(8 KB)
📄
client_reqrep.py
(36.02 KB)
📄
client_ws.py
(10.29 KB)
📄
connector.py
(49.66 KB)
📄
cookiejar.py
(13.25 KB)
📄
formdata.py
(5.98 KB)
📄
hdrs.py
(4.61 KB)
📄
helpers.py
(25.63 KB)
📄
http.py
(1.78 KB)
📄
http_exceptions.py
(2.53 KB)
📄
http_parser.py
(31.83 KB)
📄
http_websocket.py
(24.76 KB)
📄
http_writer.py
(5.84 KB)
📄
locks.py
(1.13 KB)
📄
log.py
(325 B)
📄
multipart.py
(31.68 KB)
📄
payload.py
(13.38 KB)
📄
payload_streamer.py
(2.06 KB)
📄
py.typed
(7 B)
📄
pytest_plugin.py
(11.5 KB)
📄
resolver.py
(4.97 KB)
📄
streams.py
(20.35 KB)
📄
tcp_helpers.py
(962 B)
📄
test_utils.py
(20.72 KB)
📄
tracing.py
(14.95 KB)
📄
typedefs.py
(1.72 KB)
📄
web.py
(17.51 KB)
📄
web_app.py
(16.86 KB)
📄
web_exceptions.py
(9.87 KB)
📄
web_fileresponse.py
(10.53 KB)
📄
web_log.py
(7.39 KB)
📄
web_middlewares.py
(4.04 KB)
📄
web_protocol.py
(22.02 KB)
📄
web_request.py
(27.23 KB)
📄
web_response.py
(26.92 KB)
📄
web_routedef.py
(5.9 KB)
📄
web_runner.py
(10.93 KB)
📄
web_server.py
(2.01 KB)
📄
web_urldispatcher.py
(38.62 KB)
📄
web_ws.py
(16.85 KB)
📄
worker.py
(8.57 KB)
Editing: client_proto.py
import asyncio from contextlib import suppress from typing import Any, Optional, Tuple from .base_protocol import BaseProtocol from .client_exceptions import ( ClientOSError, ClientPayloadError, ServerDisconnectedError, ServerTimeoutError, ) from .helpers import BaseTimerContext from .http import HttpResponseParser, RawResponseMessage from .streams import EMPTY_PAYLOAD, DataQueue, StreamReader class ResponseHandler(BaseProtocol, DataQueue[Tuple[RawResponseMessage, StreamReader]]): """Helper class to adapt between Protocol and StreamReader.""" def __init__(self, loop: asyncio.AbstractEventLoop) -> None: BaseProtocol.__init__(self, loop=loop) DataQueue.__init__(self, loop) self._should_close = False self._payload: Optional[StreamReader] = None self._skip_payload = False self._payload_parser = None self._timer = None self._tail = b"" self._upgraded = False self._parser = None # type: Optional[HttpResponseParser] self._read_timeout = None # type: Optional[float] self._read_timeout_handle = None # type: Optional[asyncio.TimerHandle] @property def upgraded(self) -> bool: return self._upgraded @property def should_close(self) -> bool: if self._payload is not None and not self._payload.is_eof() or self._upgraded: return True return ( self._should_close or self._upgraded or self.exception() is not None or self._payload_parser is not None or len(self) > 0 or bool(self._tail) ) def force_close(self) -> None: self._should_close = True def close(self) -> None: transport = self.transport if transport is not None: transport.close() self.transport = None self._payload = None self._drop_timeout() def is_connected(self) -> bool: return self.transport is not None and not self.transport.is_closing() def connection_lost(self, exc: Optional[BaseException]) -> None: self._drop_timeout() if self._payload_parser is not None: with suppress(Exception): self._payload_parser.feed_eof() uncompleted = None if self._parser is not None: try: uncompleted = self._parser.feed_eof() except Exception: if self._payload is not None: self._payload.set_exception( ClientPayloadError("Response payload is not completed") ) if not self.is_eof(): if isinstance(exc, OSError): exc = ClientOSError(*exc.args) if exc is None: exc = ServerDisconnectedError(uncompleted) # assigns self._should_close to True as side effect, # we do it anyway below self.set_exception(exc) self._should_close = True self._parser = None self._payload = None self._payload_parser = None self._reading_paused = False super().connection_lost(exc) def eof_received(self) -> None: # should call parser.feed_eof() most likely self._drop_timeout() def pause_reading(self) -> None: super().pause_reading() self._drop_timeout() def resume_reading(self) -> None: super().resume_reading() self._reschedule_timeout() def set_exception(self, exc: BaseException) -> None: self._should_close = True self._drop_timeout() super().set_exception(exc) def set_parser(self, parser: Any, payload: Any) -> None: # TODO: actual types are: # parser: WebSocketReader # payload: FlowControlDataQueue # but they are not generi enough # Need an ABC for both types self._payload = payload self._payload_parser = parser self._drop_timeout() if self._tail: data, self._tail = self._tail, b"" self.data_received(data) def set_response_params( self, *, timer: Optional[BaseTimerContext] = None, skip_payload: bool = False, read_until_eof: bool = False, auto_decompress: bool = True, read_timeout: Optional[float] = None, read_bufsize: int = 2 ** 16, ) -> None: self._skip_payload = skip_payload self._read_timeout = read_timeout self._reschedule_timeout() self._parser = HttpResponseParser( self, self._loop, read_bufsize, timer=timer, payload_exception=ClientPayloadError, response_with_body=not skip_payload, read_until_eof=read_until_eof, auto_decompress=auto_decompress, ) if self._tail: data, self._tail = self._tail, b"" self.data_received(data) def _drop_timeout(self) -> None: if self._read_timeout_handle is not None: self._read_timeout_handle.cancel() self._read_timeout_handle = None def _reschedule_timeout(self) -> None: timeout = self._read_timeout if self._read_timeout_handle is not None: self._read_timeout_handle.cancel() if timeout: self._read_timeout_handle = self._loop.call_later( timeout, self._on_read_timeout ) else: self._read_timeout_handle = None def _on_read_timeout(self) -> None: exc = ServerTimeoutError("Timeout on reading data from socket") self.set_exception(exc) if self._payload is not None: self._payload.set_exception(exc) def data_received(self, data: bytes) -> None: self._reschedule_timeout() if not data: return # custom payload parser if self._payload_parser is not None: eof, tail = self._payload_parser.feed_data(data) if eof: self._payload = None self._payload_parser = None if tail: self.data_received(tail) return else: if self._upgraded or self._parser is None: # i.e. websocket connection, websocket parser is not set yet self._tail += data else: # parse http messages try: messages, upgraded, tail = self._parser.feed_data(data) except BaseException as exc: if self.transport is not None: # connection.release() could be called BEFORE # data_received(), the transport is already # closed in this case self.transport.close() # should_close is True after the call self.set_exception(exc) return self._upgraded = upgraded payload: Optional[StreamReader] = None for message, payload in messages: if message.should_close: self._should_close = True self._payload = payload if self._skip_payload or message.code in (204, 304): self.feed_data((message, EMPTY_PAYLOAD), 0) else: self.feed_data((message, payload), 0) if payload is not None: # new message(s) was processed # register timeout handler unsubscribing # either on end-of-stream or immediately for # EMPTY_PAYLOAD if payload is not EMPTY_PAYLOAD: payload.on_eof(self._drop_timeout) else: self._drop_timeout() if tail: if upgraded: self.data_received(tail) else: self._tail = tail
Upload File
Create Folder