] @ sD d d l Z e j d k r' e d d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l Z d d l
Z
d d d d d g Z d Z e j
Z
e j Z e j Z e e d r e j Z n e j e j d d
d Z d d d
d d e d d Z Gd d d Z Gd d d e j Z d S) Nwin32z
win32 only
socketpairpipePopenPIPE
PipeHandlei c
C sk | t j k r d } n$ | t j k r0 d } n t d | t j k rW t d | d k ro t d t j | | | } z | j | d f | j d | j d d \ } } t j | | | } yb | j d y | j | | f Wn t
t f k
rYn X| j d
| j \ } } Wn | j
Yn XWd | j
X| | f S)Nz 127.0.0.1z::1z?Only AF_INET and AF_INET6 socket address families are supportedz)Only SOCK_STREAM socket type is supportedr zOnly protocol zero is supported FT)socketAF_INETAF_INET6
ValueErrorSOCK_STREAMbindlistengetsocknamesetblockingconnectBlockingIOErrorInterruptedErroracceptclose)
familytypeprotohostZlsockaddrportZcsockZssock_ r 2/opt/alt/python35/lib64/python3.5/windows_utils.pyr % s8
duplexF
overlappedTbufsizec C s t j d d t j t t f } | rW t j } t j t j B} | | } } n t j
} t j } d | } } | t j O} | d r | t j O} | d r t j } n d } d } }
y t j
| | t j d | | t j t j } t j | | d t j t j | t j }
t j | d d } | j d | |
f SWn= | d k rft j | |
d k rt j |
Yn Xd S)Nprefixz\\.\pipe\python-pipe-%d-%d-r r r" T)tempfilemktemposgetpidnext
_mmap_counter_winapiZPIPE_ACCESS_DUPLEXZGENERIC_READZ
GENERIC_WRITEZPIPE_ACCESS_INBOUNDZFILE_FLAG_FIRST_PIPE_INSTANCEZFILE_FLAG_OVERLAPPEDZCreateNamedPipeZ PIPE_WAITZNMPWAIT_WAIT_FOREVERZNULLZ
CreateFileZ
OPEN_EXISTINGZConnectNamedPipeZGetOverlappedResultCloseHandle)r! r" r# addressZopenmodeaccessZobsizeZibsizeZflags_and_attribsZh1Zh2Zovr r r r S s@
c @ s e Z d Z d d Z d d Z e d d Z d d Z d e j d
d Z
d d
Z d d Z d d Z
d S)r c C s
| | _ d S)N)_handle)selfhandler r r __init__ s zPipeHandle.__init__c C s9 | j d k r d | j } n d } d | j j | f S)Nz handle=%rclosedz<%s %s>)r/ __class____name__)r0 r1 r r r __repr__ s zPipeHandle.__repr__c C s | j S)N)r/ )r0 r r r r1 s zPipeHandle.handlec C s" | j d k r t d | j S)NzI/O operatioon on closed pipe)r/ r
)r0 r r r fileno s zPipeHandle.filenor, c C s) | j d k r% | | j d | _ d S)N)r/ )r0 r, r r r r s
zPipeHandle.closec C s1 | j d k r- t j d | t | j d S)Nzunclosed %r)r/ warningswarnResourceWarningr )r0 r r r __del__ s zPipeHandle.__del__c C s | S)Nr )r0 r r r __enter__ s zPipeHandle.__enter__c C s | j d S)N)r )r0 tvtbr r r __exit__ s zPipeHandle.__exit__N)r5
__module____qualname__r2 r6 propertyr1 r7 r+ r, r r; r<