�
Ϫ�fz
� � � d Z ddlmZ ddlmZmZmZ ddlmZm Z g d�Z
edg d�� Zg dfded ed
ee e
e
ef de
de
f
d
�Z ddede
de
de
def
d�Zdede
fd�Zy)z/
sendmsg(2) and recvmsg(2) support for Python.
� )�
namedtuple)�
CMSG_SPACE�
SCM_RIGHTS�socket)�List�Tuple)�sendmsg�recvmsg�getSocketFamilyr �ReceivedMessage��data� ancillary�flagsr r r r �returnc �* � | j |g||� S )a
Send a message on a socket.
@param socket: The socket to send the message on.
@param data: Bytes to write to the socket.
@param ancillary: Extra data to send over the socket outside of the normal
datagram or stream mechanism. By default no ancillary data is sent.
@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.
@return: The return value of the underlying syscall, if it succeeds.
)r )r r r r s �8/usr/lib/python3/dist-packages/twisted/python/sendmsg.pyr r s � �$ �>�>�4�&�)�U�3�3� �maxSize�cmsgSizec �d � | j |t |� |� dd \ }}}t |||�� S )a
Receive a message on a socket.
@param socket: The socket to receive the message on.
@param maxSize: The maximum number of bytes to receive from the socket using
the datagram or stream mechanism. The default maximum is 8192.
@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.
@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.
@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 s r r
r
) s: � �0 $�^�^�G�Z��5I�5�Q�RS�TU�V��D�)�U��� ��G�Gr c � � | j S )ze
Return the family of the given socket.
@param socket: The socket to get the family of.
)�family)r s r r r F s � � �=�=�r N)i i r )�__doc__�collectionsr r r r �Socket�typingr r �__all__r �bytes�intr r
r � r r �<module>r# s� ��
�
#� ;� ;� �
A�� �.�0N�O�� /1�� 4��4�
�4� �E�#�s�E�/�*�+�4� � 4�
�4�, MN�H��H� �H�36�H�FI�H��H�:�F� �s� r |