HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //proc/self/root/usr/lib/python3/dist-packages/twisted/python/__pycache__/sendmsg.cpython-38.pyc
U


W[\
�@s�dZddlmZmZddlmZddlmZddddgZesldd	l	m
Z
mZdd
l	mZm
Z
eddd
g7Znddlm
Z
mZeddddg�Zgdfdd�Zddd�Zdd�ZdS)z/
sendmsg(2) and recvmsg(2) support for Python.
�)�absolute_import�division)�
namedtuple)�_PY3�sendmsg�recvmsg�getSocketFamily�
SCM_RIGHTS)�send1msg�recv1msg)�
getsockfamr	r
rr)r	�
CMSG_SPACE�RecievedMessage�data�	ancillary�flagscCs*tr|�|g||�St|��|||�SdS)a�
    Send a message on a socket.

    @param socket: The socket to send the message on.
    @type socket: L{socket.socket}

    @param data: Bytes to write to the socket.
    @type data: bytes

    @param ancillary: Extra data to send over the socket outside of the normal
        datagram or stream mechanism.  By default no ancillary data is sent.
    @type ancillary: C{list} of C{tuple} of C{int}, C{int}, and C{bytes}.

    @param flags: Flags to affect how the message is sent.  See the C{MSG_}
        constants in the sendmsg(2) manual page.  By default no flags are set.
    @type flags: C{int}

    @return: The return value of the underlying syscall, if it succeeds.
    N)rrr
�fileno)�socketrrr�r�8/usr/lib/python3/dist-packages/twisted/python/sendmsg.pyrs� �cCsLtr&|�|t|�|�dd�\}}}nt|��|||�\}}}t|||d�S)a�
    Receive a message on a socket.

    @param socket: The socket to receive the message on.
    @type socket: L{socket.socket}

    @param maxSize: The maximum number of bytes to receive from the socket using
        the datagram or stream mechanism. The default maximum is 8192.
    @type maxSize: L{int}

    @param cmsgSize: The maximum number of bytes to receive from the socket
        outside of the normal datagram or stream mechanism. The default maximum
        is 4096.
    @type cmsgSize: L{int}

    @param flags: Flags to affect how the message is sent.  See the C{MSG_}
        constants in the sendmsg(2) manual page. By default no flags are set.
    @type flags: L{int}

    @return: A named 3-tuple of the bytes received using the datagram/stream
        mechanism, a L{list} of L{tuple}s giving ancillary received data, and
        flags as an L{int} describing the data received.
    r�)rrr)rrr
rrr)rZmaxSizeZcmsgSizerrrrrrr6s ���
cCstr
|jSt|���SdS)z�
    Return the family of the given socket.

    @param socket: The socket to get the family of.
    @type socket: L{socket.socket}

    @rtype: L{int}
    N)rZfamilyrr)rrrrr^s	N)rrr)�__doc__Z
__future__rr�collectionsrZtwisted.python.compatr�__all__Ztwisted.python._sendmsgr
rrr	rr
rrrrrrrr�<module>s
(