3 Õì2aã ã @ sÜ d dl Z e jdkredƒ‚d dlZd dlZd dlZd dlZd dlZd dlZd dl Z d dl Z dddddgZd Zej Z ejZejƒ Zeedƒr’ejZnejejd fd d„Zdded œdd„ZG dd„ dƒZG dd„ dejƒZdS )é NÚwin32z win32 onlyÚ socketpairÚpipeÚPopenÚPIPEÚ PipeHandlei c C s | t jkrd}n| t jkr d}ntdƒ‚|t jkr:tdƒ‚|dkrJtdƒ‚t j | ||ƒ}z¦|j|dfƒ |jdƒ |jƒ d d… \}}t j | ||ƒ}yP|jd ƒ y|j ||fƒ W n t tfk rÊ Y nX |jd ƒ |jƒ \}} W n |j ƒ ‚ Y nX W d |j ƒ X ||fS )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)ÚsocketÚAF_INETZAF_INET6Ú ValueErrorÚSOCK_STREAMZbindZlistenZgetsocknameZsetblockingZconnectÚBlockingIOErrorÚInterruptedErrorZacceptÚclose) ZfamilyÚtypeÚprotoÚhostZlsockZaddrZportZcsockZssockÚ_© r ú2/opt/alt/python36/lib64/python3.6/windows_utils.pyr % s8 FT)ÚduplexÚ overlappedÚbufsizec C s" t jdtjƒ ttƒf d�}| r>tj}tjtj B }|| }}ntj }tj }d| }}|tjO }|d rp|tjO }|d r€tj}nd}d } } yZtj ||tjd||tjtjƒ} tj||dtjtj|tjƒ} tj| dd�}|jdƒ | | fS | d k �rtj| ƒ | d k �rtj| ƒ ‚ Y nX d S )Nz\\.\pipe\python-pipe-%d-%d-)Úprefixr r T)r )ÚtempfileZmktempÚosÚgetpidÚnextÚ _mmap_counterÚ_winapiZPIPE_ACCESS_DUPLEXZGENERIC_READZ GENERIC_WRITEZPIPE_ACCESS_INBOUNDZFILE_FLAG_FIRST_PIPE_INSTANCEZFILE_FLAG_OVERLAPPEDZCreateNamedPipeZ PIPE_WAITZNMPWAIT_WAIT_FOREVERZNULLZ CreateFileZ OPEN_EXISTINGZConnectNamedPipeZGetOverlappedResultÚCloseHandle)r r r ZaddressZopenmodeÚaccessZobsizeZibsizeZflags_and_attribsZh1Zh2Zovr r r r S s@ c @ sX e Zd Zdd„ Zdd„ Zedd„ ƒZdd„ Zej d œd d„Z dd „ Zdd„ Zdd„ Z dS )r c C s || _ d S )N)Ú_handle)ÚselfÚhandler r r Ú__init__ˆ s zPipeHandle.__init__c C s* | j d k rd| j }nd}d| jj|f S )Nz handle=%rÚclosedz<%s %s>)r# Ú __class__Ú__name__)r$ r% r r r Ú__repr__‹ s zPipeHandle.__repr__c C s | j S )N)r# )r$ r r r r% ’ s zPipeHandle.handlec C s | j d krtdƒ‚| j S )NzI/O operatioon on closed pipe)r# r )r$ r r r Úfileno– s zPipeHandle.fileno)r! c C s | j d k r|| j ƒ d | _ d S )N)r# )r$ r! r r r r › s zPipeHandle.closec C s* | j d k r&tjd| t| d� | jƒ d S )Nzunclosed %r)Úsource)r# ÚwarningsÚwarnÚResourceWarningr )r$ r r r Ú__del__ s zPipeHandle.__del__c C s | S )Nr )r$ r r r Ú __enter__¦ s zPipeHandle.__enter__c C s | j ƒ d S )N)r )r$ ÚtÚvÚtbr r r Ú__exit__© s zPipeHandle.__exit__N)r) Ú __module__Ú__qualname__r&