�
Ϫ�f�W � �< � d Z ddlZddlZddlZddlZddlmZmZmZm Z m
Z
mZ ddlm
Z
mZ ddlmZmZmZ ddlmZmZmZmZmZmZmZmZ ddlmZ ddlmZm Z m!Z!m"Z" dd l#m$Z$ dd
l%m&Z& ddl'm(Z( ddlm)Z* e*Z) e,ed
� s e+d� �d� Z- G d� d� Z. G d� d� Z/e)re.Z.ne/Z. eej` � G d� de.ejb � � Z1d� Z2 G d� d� Z3 G d� de3ejh � Z4 eej` � G d� de.ejj � � Z6 G d� dejn � Z8 eejr � G d� d e3ejh � � Z: eejv g eejx � ��� G d!� d"e:� � Z=y# e+$ r dZ)Y ��$w xY w)#z�
UNIX socket support for Twisted.
End users shouldn't use this module directly - use the reactor APIs instead.
Maintainer: Itamar Shtull-Trauring
� N)�EAGAIN�ECONNREFUSED�EINTR�EMSGSIZE�ENOBUFS�EWOULDBLOCK)�Optional�Type)�
implementedBy�implementer�implementer_only)�address�base�error�
interfaces�main�protocol�tcp�udp)�FileDescriptor)�failure�lockfile�log�reflect)�
lazyByteSlice)�_coerceToFilesystemEncoding)�untilConcludes)�sendmsg�AF_UNIXz+UNIX sockets not supported on this platformc �r � t j d| � }t j t j
|fgS )zh
Pack an integer into an ancillary data structure suitable for use with
L{sendmsg.sendmsg}.
�i)�struct�pack�socket�
SOL_SOCKETr �
SCM_RIGHTS)�fd�packeds �7/usr/lib/python3/dist-packages/twisted/internet/unix.py�_ancillaryDescriptorr* ) s0 � �
�[�[��b�
!�F�
�
�
�� 2� 2�F�;�<�<� c �T � e Zd ZU dZdZeee ed< |