a dV@sPddlZddlTddlZddlZddlZddlZddlmZmZz ddlZWne ybdZYn0e eddZ e eddZ e eddZ gd Zeeeed ed d ed edd ededd ededd dZdZddZejdriZded<ded<ded<ded<d ed!<d"ed#<d$ed%<d&ed'<d(ed)<d*ed+<d,ed-<d.ed/<d0ed1<d2ed3<d4ed5<d6ed7<d8ed9<d:ed;<ded?<d@edA<dBedC<dDedE<dFedG<dHedI<dJedK<dLedM<dNedO<dPedQ<dRedS<dTedU<dVedW<dXedY<dZed[<d\ed]<d^ed_<d`eda<dbedc<ddede<dfedg<dhedi<djedk<dledm<dnedo<dpedq<dreds<dtedu<dvedw<dxedy<dzed{<d|ed}<d~ed<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded<ded<edԡGddքdeZGdd؄dejZdddڄZeejdۃrfddl Z ddd݄Z!edݡeejdރrddl Z dddZ"edeejdrddZ#edeedrde$dfddZ%ne&e$dfddZ%edde%_'e e hZ(Gdddej)Z*dddZ+e,Z-e-dfddZ.ddZ/e&ddddddZ0dddZ1dS)N)*)IntEnumIntFlagEBADF EAGAIN EWOULDBLOCK)fromfdgetfqdncreate_connection create_serverhas_dualstack_ipv6 AddressFamily SocketKindrcCs|o|dS)NZAF_isupper startswithCr+/opt/alt/python39/lib64/python3.9/socket.pyNrrcCs|o|dS)NZSOCK_rrrrrrSrZMsgFlagcCs|o|dS)NZMSG_rrrrrrXrZ AddressInfocCs|o|dS)NZAI_rrrrrr]rz 127.0.0.1z::1cCs&z ||WSty |YS0dSN) ValueError)valueZ enum_klassrrr_intenum_convertercs  rwinz)Specified event object handle is invalid.zInsufficient memory available.z#One or more parameters are invalid.WzOverlapped operation aborted.iz2Overlapped I/O event object not in signaled state.iz)Overlapped operation will complete later.izThe operation was interrupted.i'zA bad file handle was passed.i'zPermission denied.i'z!A fault occurred on the network??i'z#An invalid operation was attempted.i&'zToo many open files.i('z The socket operation would blocki3'z,A blocking operation is already in progress.i4'zOperation already in progress.i5'zSocket operation on nonsocket.i6'zDestination address required.i7'zMessage too long.i8'zProtocol wrong type for socket.i9'zBad protocol option.i:'zProtocol not supported.i;'zSocket type not supported.i<'zOperation not supported.i='zProtocol family not supported.i>'z0Address family not supported by protocol family.i?'zThe network address is in use.i@'z Cannot assign requested address.iA'zNetwork is down.iB'zNetwork is unreachable.iC'z$Network dropped connection on reset.iD'z!Software caused connection abort.iE'zThe connection has been reset.iF'zNo buffer space available.iG'zSocket is already connected.iH'zSocket is not connected.iI'zThe network has been shut down.iJ'zToo many references.iK'zThe operation timed out.iL'zConnection refused.iM'zCannot translate name.iN'zThe name is too long.iO'zThe host is down.iP'zThe host is unreachable.iQ'zDirectory not empty.iR'zToo many processes.iS'zUser quota exceeded.iT'zDisk quota exceeded.iU'zStale file handle reference.iV'zItem is remote.iW'z!Network subsystem is unavailable.ik'z!Winsock.dll version out of range.il'z(Successful WSAStartup not yet performed.im'zGraceful shutdown in progress.iu'z*No more results from WSALookupServiceNext.iv'zCall has been canceled.iw'z Procedure call table is invalid.ix'zService provider is invalid.iy'z&Service provider failed to initialize.iz'zSystem call failure.i{'zService not found.i|'zClass type not found.i}'i~'zCall was canceled.i'zDatabase query was refused.i'zHost not found.i*z Nonauthoritative host not found.i*zThis is a nonrecoverable error.i*z*Valid name, no data record requested type.i*zQoS receivers.i*z QoS senders.i*zNo QoS senders.i*zQoS no receivers.i+zQoS request confirmed.i+zQoS admission error.i+zQoS policy failure.i+zQoS bad style.i+zQoS bad object.i+zQoS traffic control error.i+zQoS generic error.i+zQoS service type error.i+zQoS flowspec error.i +zInvalid QoS provider buffer.i +zInvalid QoS filter style.i +i +zIncorrect QoS filter count.i +zInvalid QoS object length.i+zIncorrect QoS flow count.i+zUnrecognized QoS object.i+zInvalid QoS policy object.i+zInvalid QoS flow descriptor.i+z'Invalid QoS provider-specific flowspec.i+z)Invalid QoS provider-specific filterspec.i+z&Invalid QoS shape discard mode object.i+z Invalid QoS shaping rate object.i+z!Reserved policy QoS element type.i+errorTabc@s eZdZdS)_GiveupOnSendfileN)__name__ __module__ __qualname__rrrrr#rr#cs&eZdZgdZd6ddZddZdd Zd d Zd d ZddZ ddZ d7ddddddZ e e drtd8ddZn d9ddZd:ddZddZd;dd Zd!d"Zejfd#d$Zd%d&Zfd'd(Zefd)d*Zefd+d,Ze jd-krd.d/Zd0d1Znd2d/Zd3d1Zd4e_d5e_ZS)<socket) __weakref___io_refs_closedNcCsP|dur,|dkrt}|dkr t}|dkr,d}tj|||||d|_d|_dS)Nr+rF)AF_INET SOCK_STREAM_socketr'__init__r)r*)selffamilytypeprotofilenorrrr/szsocket.__init__cCs|Srrr0rrr __enter__szsocket.__enter__cGs|js|dSr)r*close)r0argsrrr__exit__szsocket.__exit__cCst|dd}d|jj|jj|r"dnd||j|j|jf}|sz |}|r^|dt |7}Wnt yrYn0z | }|r|dt |7}Wnt yYn0|d7}|S) Nr*Fz,<%s.%s%s fd=%i, family=%s, type=%s, proto=%iz [closed]z , laddr=%sz , raddr=%s>) getattr __class__r%r&r4r1r2r3 getsocknamestrerrorZ getpeername)r0closedsZladdrZraddrrrr__repr__s4    zsocket.__repr__cCstd|jjddS)Nzcannot pickle z object) TypeErrorr=r$r5rrr __getstate__szsocket.__getstate__cCs6t|}|j|j|j|j|d}|||S)Nr4)dupr4r=r1r2r3 settimeout gettimeout)r0fdsockrrrrGs z socket.dupcCsF|\}}t|j|j|j|d}tdur>|r>|d||fS)NrFT)Z_acceptr'r1r2r3ZgetdefaulttimeoutrI setblocking)r0rJaddrrKrrraccepts   z socket.acceptr)encodingerrorsnewlinec Cst|hdkstd|fd|v}d|vp2| }d|v}d} |rL| d7} |rX| d7} t|| } |jd7_|dur|d}|d krtj}|d kr|std | S|r|rt| | |} n|rt| |} n t| |} |r| St | |||} || _ | S) N>rObwz&invalid mode %r (only r, w, b allowed)rTrOrSr:r+rz!unbuffered streams must be binary) setrSocketIOr)ioDEFAULT_BUFFER_SIZEBufferedRWPairBufferedReaderBufferedWriter TextIOWrappermode) r0r^ bufferingrPrQrRZwritingZreadingZbinaryZrawmoderawbuffertextrrrmakefile.s<  zsocket.makefilesendfilerc Cs|||||}z |}Wn2ttjfyT}zt|WYd}~n d}~00zt|j}Wn,t y}zt|WYd}~n d}~00|sdSt |p|d}| } | dkrt dt tdrt} nt} | |tjd} | j} tj} z| r| | std|r6|| }|dkr6qz| ||||}Wnbtyn| sd| YqYn\t y}z$| dkrt||dWYd}~n(d}~00|dkrq||7}| |7} q| W| dkrt |dr||Sn"| dkrt |dr||0dS)Nri@&non-blocking sockets are not supported PollSelectorz timed outseek)_check_sendfile_paramsr4AttributeErrorrXUnsupportedOperationr#osfstatst_sizeOSErrorminrIrhasattr selectorsrfZSelectSelectorregisterZ EVENT_WRITEZselectrdr.timeoutBlockingIOErrorrg)r0fileoffsetcountZsocknor4errZfsize blocksizersZselector total_sentZselector_selectZ os_sendfilesentrrr_sendfile_use_sendfileZsh          zsocket._sendfile_use_sendfilecCs tddS)Nz,os.sendfile() not available on this platform)r#r0rurvrwrrrr|sc Cs |||||dkr"td|r0|||r>t|dnd}d}|j}|j}z|rpt|||}|dkrpqt||}|sqz ||} WntyYqYq0|| 7}| t |kr|| d}qqTqqT|W|dkrt |dr|||Sn&|dkrt |dr|||0dS)Nrrei rg) rhrIrrgroreadsend memoryviewrtlenrp) r0rurvrwryrzZ file_readZ sock_senddatar{rrr_sendfile_use_sendsB       zsocket._sendfile_use_sendcCsddt|ddvrtd|jt@s*td|dur`t|tsJtd||dkr`td|dS)NrSr^z$file should be opened in binary modez+only SOCK_STREAM type sockets are supportedz+count must be a positive integer (got {!r})r)r<rr2r- isinstanceintrDformatr}rrrrhs  zsocket._check_sendfile_paramscCs6z||||WSty0||||YS0dSr)r|r#rr}rrrrds zsocket.sendfilecCs*|jdkr|jd8_|jr&|dS)NrrU)r)r*r7r5rrr_decref_socketioss zsocket._decref_socketioscCs||dSr)r7)r0Z_ssrrr _real_closeszsocket._real_closecCsd|_|jdkr|dS)NTr)r*r)rr5rrrr7s z socket.closecsd|_tS)NT)r*superdetachr5r=rrrsz socket.detachcsttjtSr)rrr1rr5rrrr1sz socket.familycsttjtSr)rrr2rr5rrrr2sz socket.typentcCst|Sr)rkZget_handle_inheritabler4r5rrrget_inheritableszsocket.get_inheritablecCst||dSr)rkZset_handle_inheritabler4r0Z inheritablerrrset_inheritableszsocket.set_inheritablecCst|Sr)rkrr4r5rrrrscCst||dSr)rkrr4rrrrrsz&Get the inheritable flag of the socketz&Set the inheritable flag of the socket)r+r+r+N)rON)rN)rN)rN)rN) r$r%r& __slots__r/r6r9rCrErGrNrcrprkr|rrhrdrr.r'rr7rpropertyr1r2namerr__doc__ __classcell__rrrrr's@   *  A  $    r'cCst|}t||||Sr)rGr')rJr1r2r3Znfdrrrr sr sendmsgc Cs ||tjtjtd|fgSNi)rr. SOL_SOCKET SCM_RIGHTSarray)rKZbuffersfdsflagsaddressrrrsend_fds&s rrecvmsgc Cstd}||t||j\}}}}|D]B\}} } |tjkr.| tjkr.|| dt| t| |jq.|t |||fSr) rrr.ZCMSG_LENitemsizerrZ frombytesrlist) rKbufsizeZmaxfdsrrmsgZancdatarMZ cmsg_levelZ cmsg_typeZ cmsg_datarrrrecv_fds2s   rZsharecCstddd|SNr)r')inforrr fromshareFsr socketpaircCsf|dur(zt}Wnty&t}Yn0t|||\}}t||||}t||||}||fSr)ZAF_UNIX NameErrorr,r.rr'r)r1r2r3arSrrrrQs  c Cs |tkrt}n|tkrt}ntd|tkr4td|dkrDtdt|||}z||df|| dd\}}t|||}zN| dz| ||fWnt t fyYn0| d|\}} Wn|Yn0W|n |0||fS)Nz?Only AF_INET and AF_INET6 socket address families are supportedz)Only SOCK_STREAM socket type is supportedrzOnly protocol zero is supportedFT)r, _LOCALHOSTAF_INET6 _LOCALHOST_V6rr-r'bindlistenr>rLconnectrtInterruptedErrorrNr7) r1r2r3hostZlsockrMportZcsockZssock_rrrrfs8     a8socketpair([family[, type[, proto]]]) -> (socket object, socket object) Create a pair of socket objects from the sockets returned by the platform socketpair() function. The arguments are the same as for socket() except the default family is AF_UNIX if defined on the platform; otherwise, the default is AF_INET. csleZdZddZddZddZddZd d Zfd d Zd dZ e ddZ e ddZ ddZ ZS)rWcCsZ|dvrtd|tj|||_d|vr6|d7}||_d|v|_d|v|_d|_dS)N)rOrTZrwrbwbZrwbzinvalid mode: %rrSrOrTF) rrX RawIOBaser/_sock_mode_reading_writing_timeout_occurred)r0rKr^rrrr/s    zSocketIO.__init__c Cs|||jrtdz|j|WStyFd|_Yqty}z*|jdt vrpWYd}~dSWYd}~qd}~00qdS)Nz!cannot read from timed out objectTr) _checkClosed_checkReadablerrnrZ recv_intorsr@r8_blocking_errnosr0rSerrrreadintos zSocketIO.readintoc Csf||z|j|WSty`}z*|jdtvrJWYd}~dSWYd}~n d}~00dSr)r_checkWritablerrr@r8rrrrrwriteszSocketIO.writecCs|jrtd|jSNzI/O operation on closed socket.)rArrr5rrrreadableszSocketIO.readablecCs|jrtd|jSr)rArrr5rrrwritableszSocketIO.writablecs|jrtdtSr)rArrseekabler5rrrrszSocketIO.seekablecCs||jSr)rrr4r5rrrr4szSocketIO.filenocCs|js|SdSdS)Nr+)rAr4r5rrrrsz SocketIO.namecCs|jSr)rr5rrrr^sz SocketIO.modecCs*|jr dStj||jd|_dSr)rArXrr7rrr5rrrr7s   zSocketIO.close)r$r%r&r/rrrrrr4rrr^r7rrrrrrWs    rWr:cCsj|}|r|dkrt}zt|\}}}Wnty>Yn(0|d||D]}d|vrPqfqP|}|S)Nz0.0.0.0r.)stripZ gethostnameZ gethostbyaddrr@insert)rZhostnamealiasesZipaddrsrrrr s    r c Cs|\}}d}t||dtD]}|\}}} } } d} zDt||| } |turP| ||r^| || | d}| WSty} z | }| dur| WYd} ~ qd} ~ 00q|durz |Wd}qd}0ntddS)Nrz!getaddrinfo returns an empty list) getaddrinfor-r'_GLOBAL_DEFAULT_TIMEOUTrHrrr@r7)rrsZsource_addressrrrxresafsocktyper3 canonnamesarKrrrrr 's.      r cCsvtrttdrttdsdSz@ttt"}|ttdWdWdS1sP0YWnt ypYdS0dS)N IPPROTO_IPV6 IPV6_V6ONLYFrT) has_ipv6rpr.r'rr- setsockoptrrr@)rKrrrrTs & rF)r1backlog reuse_portdualstack_ipv6c Csl|rttdstd|r8ts(td|tkr8tdt|t}ztjdvrttdrz| t t dWnt y~Yn0|r| t t dtr|tkr|r| ttdn"ttd rttd r| ttdz||WnBt y$}z(d |j|f}t |j|dWYd}~n d}~00|dur:|n |||WSt yf|Yn0dS) N SO_REUSEPORTz+SO_REUSEPORT not supported on this platformz-dualstack_ipv6 not supported on this platformz'dualstack_ipv6 requires AF_INET6 family)rcygwin SO_REUSEADDRrUrrrz+%s (while attempting to bind on address %r))rpr.rrrr'r-rkrrrrr@rrrrrstrerrorerrnorr7)rr1rrrrKrxrrrrr dsN     $   r c CsPg}t||||||D]2}|\}} }} } |t|tt| t|| | fq|Sr)r.rappendrrr) rrr1r2r3rZaddrlistrrrrrrrrrs r)r)rN)r)r:)rrrr)2r.rksysrXrqenumrrr ImportErrorr<rrr __all__extend_get_exports_list _convert_r$rrrplatformlowerrr"r Exceptionr#r'r rprrrrr-rr,rrrrWr objectrr rr rrrrr3sL         F       $ u  - E