File: //proc/self/root/usr/lib/python3/dist-packages/twisted/python/__pycache__/sendmsg.cpython-38.pyc
U
W[\
� @ s� d Z ddlmZmZ ddlmZ ddlmZ ddddgZesldd l m
Z
mZ dd
l mZm
Z
eddd
g7 Znddlm
Z
mZ eddddg�Zg dfdd�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
r r )r �
CMSG_SPACE�RecievedMessage�data� ancillary�flagsc C s* t r| �|g||�S t| �� |||�S dS )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)r r r
�fileno)�socketr r r � r �8/usr/lib/python3/dist-packages/twisted/python/sendmsg.pyr s � � c C sL t r&| �|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 � )r r r )r r r
r r r )r ZmaxSizeZcmsgSizer r r r r r r 6 s � � �
c C s t r
| jS t| �� �S dS )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)r Zfamilyr r )r r r r r ^ s N)r r r )�__doc__Z
__future__r r �collectionsr Ztwisted.python.compatr �__all__Ztwisted.python._sendmsgr
r r r r r
r r r r r r r r �<module> s
(