File: //lib/python3/dist-packages/twisted/internet/__pycache__/unix.cpython-310.pyc
o
�b�W � @ s
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( zddlm)Z* W n e+y dZ)Y nw e*Z)e,ed
�s�e+d��dd� Z-G dd� d�Z.G dd� d�Z/e)r�e.Z.ne/Z.eej0�G dd� de.ej1��Z1dd� Z2G dd� d�Z3G dd� de3ej4�Z4eej0�G dd� de.ej5��Z6G dd � d ej7�Z8eej9�G d!d"� d"e3ej4��Z:eej;geej<��R � G d#d$� d$e:��Z=dS )%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 C s t �d| �}tjtj|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�packed� r'