a DOg@s"ddlZddlZGdddZdS)Nc@seZdZdZdZejdddZddZedd Z ed d Z ed d Z ddZ ddZ ddZddZddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2d3Zd4d5Zd6d7Z d8d9Z!d:d;Z"dd?Z$d@dAZ%dBdCZ&dDdEZ'dFdGZ(dHdIZ)dJdKZ*dLdMZ+dNdOZ,dPdQZ-dRdSZ.dTdUZ/dVdWZ0dXdYZ1dZd[Z2d\S)]TransportSocketzA socket-like wrapper for exposing real transport sockets. These objects can be safely returned by APIs like `transport.get_extra_info('socket')`. All potentially disruptive operations (like "socket.close()") are banned. _sock)sockcCs ||_dSNr)selfrr&/usr/lib64/python3.9/asyncio/trsock.py__init__szTransportSocket.__init__cCstjd|dt|ddS)NzUsing z on sockets returned from get_extra_info('socket') will be prohibited in asyncio 3.9. Please report your use case to bugs.python.org.)source)warningswarnDeprecationWarning)rZwhatrrr _nas zTransportSocket._nacCs|jjSr)rfamilyrrrr rszTransportSocket.familycCs|jjSr)rtyperrrr rszTransportSocket.typecCs|jjSr)rprotorrrr r"szTransportSocket.protocCsd|d|jd|jd|j}|dkrz|}|rN|d|}WntjydYn0z|}|r|d|}WntjyYn0|dS) Nz)filenorrr getsocknamesocketerror getpeername)rsladdrraddrrrr __repr__&s,  zTransportSocket.__repr__cCs tddS)Nz/Cannot serialize asyncio.TransportSocket object) TypeErrorrrrr __getstate__=szTransportSocket.__getstate__cCs |jSr)rrrrrr r@szTransportSocket.filenocCs |jSr)rduprrrr r!CszTransportSocket.dupcCs |jSr)rget_inheritablerrrr r"FszTransportSocket.get_inheritablecCs|j|dSr)rshutdown)rhowrrr r#IszTransportSocket.shutdowncOs|jj|i|Sr)r getsockoptrargskwargsrrr r%NszTransportSocket.getsockoptcOs|jj|i|dSr)r setsockoptr&rrr r)QszTransportSocket.setsockoptcCs |jSr)rrrrrr rTszTransportSocket.getpeernamecCs |jSr)rrrrrr rWszTransportSocket.getsocknamecCs |jSr)r getsockbynamerrrr r*ZszTransportSocket.getsockbynamecCs|d|jS)Nzaccept() method)rracceptrrrr r+]s zTransportSocket.acceptcOs|d|jj|i|S)Nzconnect() method)rrconnectr&rrr r,as zTransportSocket.connectcOs|d|jj|i|S)Nzconnect_ex() method)rr connect_exr&rrr r-es zTransportSocket.connect_excOs|d|jj|i|S)Nz bind() method)rrbindr&rrr r.is zTransportSocket.bindcOs|d|jj|i|S)Nzioctl() method)rrioctlr&rrr r/ms zTransportSocket.ioctlcOs|d|jj|i|S)Nzlisten() method)rrlistenr&rrr r0qs zTransportSocket.listencCs|d|jS)Nzmakefile() method)rrmakefilerrrr r1us zTransportSocket.makefilecOs|d|jj|i|S)Nzsendfile() method)rrsendfiler&rrr r2ys zTransportSocket.sendfilecCs|d|jS)Nzclose() method)rrcloserrrr r3}s zTransportSocket.closecCs|d|jS)Nzdetach() method)rrdetachrrrr r4s zTransportSocket.detachcOs|d|jj|i|S)Nzsendmsg_afalg() method)rr sendmsg_afalgr&rrr r5s zTransportSocket.sendmsg_afalgcOs|d|jj|i|S)Nzsendmsg() method)rrsendmsgr&rrr r6s zTransportSocket.sendmsgcOs|d|jj|i|S)Nzsendto() method)rrsendtor&rrr r7s zTransportSocket.sendtocOs|d|jj|i|S)Nz send() method)rrsendr&rrr r8s zTransportSocket.sendcOs|d|jj|i|S)Nzsendall() method)rrsendallr&rrr r9s zTransportSocket.sendallcOs|d|jj|i|S)Nzset_inheritable() method)rrset_inheritabler&rrr r:s zTransportSocket.set_inheritablecCs|d|j|S)Nzshare() method)rrshare)rZ process_idrrr r;s zTransportSocket.sharecOs|d|jj|i|S)Nzrecv_into() method)rr recv_intor&rrr r<s zTransportSocket.recv_intocOs|d|jj|i|S)Nzrecvfrom_into() method)rr recvfrom_intor&rrr r=s zTransportSocket.recvfrom_intocOs|d|jj|i|S)Nzrecvmsg_into() method)rr recvmsg_intor&rrr r>s zTransportSocket.recvmsg_intocOs|d|jj|i|S)Nzrecvmsg() method)rrrecvmsgr&rrr r?s zTransportSocket.recvmsgcOs|d|jj|i|S)Nzrecvfrom() method)rrrecvfromr&rrr r@s zTransportSocket.recvfromcOs|d|jj|i|S)Nz recv() method)rrrecvr&rrr rAs zTransportSocket.recvcCs|dkr dStddS)Nrzr?r@rArErFrHrJrKrrrr rsb   r)rr rrrrr s