o w[e@s"ddlZddlZGdddZdS)Nc@seZdZdZdZdejfddZddZedd 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. _socksockcCs ||_dSNr)selfrr%/usr/lib/python3.10/asyncio/trsock.py__init__ zTransportSocket.__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)rwhatrrr _nas  zTransportSocket._nacC|jjSr)rfamilyrrrr rzTransportSocket.familycCrr)rtyperrrr rrzTransportSocket.typecCrr)rprotorrrr r"rzTransportSocket.protocCsd|d|jd|jd|j}|dkrMz|}|r'|d|}Wn tjy2Ynwz|}|rA|d|}Wn tjyLYnw|dS) Nz)filenorrr getsocknamesocketerror getpeername)rsladdrraddrrrr __repr__&s4   zTransportSocket.__repr__cCstd)Nz/Cannot serialize asyncio.TransportSocket object) TypeErrorrrrr __getstate__=szTransportSocket.__getstate__cC |jSr)rrrrrr r@r zTransportSocket.filenocCr%r)rduprrrr r&Cr zTransportSocket.dupcCr%r)rget_inheritablerrrr r'Fr zTransportSocket.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.setsockoptcCr%r)rrrrrr rTr zTransportSocket.getpeernamecCr%r)rrrrrr rWr zTransportSocket.getsocknamecCr%r)r getsockbynamerrrr r/Zr zTransportSocket.getsockbynamecC|d|jS)Nzaccept() method)rracceptrrrr r1]  zTransportSocket.acceptcO|d|jj|i|S)Nzconnect() method)rrconnectr+rrr r4a zTransportSocket.connectcOr3)Nzconnect_ex() method)rr connect_exr+rrr r6er5zTransportSocket.connect_excOr3)Nz bind() method)rrbindr+rrr r7ir5zTransportSocket.bindcOr3)Nzioctl() method)rrioctlr+rrr r8mr5zTransportSocket.ioctlcOr3)Nzlisten() method)rrlistenr+rrr r9qr5zTransportSocket.listencCr0)Nzmakefile() method)rrmakefilerrrr r:ur2zTransportSocket.makefilecOr3)Nzsendfile() method)rrsendfiler+rrr r;yr5zTransportSocket.sendfilecCr0)Nzclose() method)rrcloserrrr r<}r2zTransportSocket.closecCr0)Nzdetach() method)rrdetachrrrr r=r2zTransportSocket.detachcOr3)Nzsendmsg_afalg() method)rr sendmsg_afalgr+rrr r>r5zTransportSocket.sendmsg_afalgcOr3)Nzsendmsg() method)rrsendmsgr+rrr r?r5zTransportSocket.sendmsgcOr3)Nzsendto() method)rrsendtor+rrr r@r5zTransportSocket.sendtocOr3)Nz send() method)rrsendr+rrr rAr5zTransportSocket.sendcOr3)Nzsendall() method)rrsendallr+rrr rBr5zTransportSocket.sendallcOr3)Nzset_inheritable() method)rrset_inheritabler+rrr rCr5zTransportSocket.set_inheritablecCs|d|j|S)Nzshare() method)rrshare)r process_idrrr rD  zTransportSocket.sharecOr3)Nzrecv_into() method)rr recv_intor+rrr rGr5zTransportSocket.recv_intocOr3)Nzrecvfrom_into() method)rr recvfrom_intor+rrr rHr5zTransportSocket.recvfrom_intocOr3)Nzrecvmsg_into() method)rr recvmsg_intor+rrr rIr5zTransportSocket.recvmsg_intocOr3)Nzrecvmsg() method)rrrecvmsgr+rrr rJr5zTransportSocket.recvmsgcOr3)Nzrecvfrom() method)rrrecvfromr+rrr rKr5zTransportSocket.recvfromcOr3)Nz recv() method)rrrecvr+rrr rLr5zTransportSocket.recvcCs|dkrdStd)Nrzr?r@rArBrCrDrGrHrIrJrKrLrPrQrSrUrVrrrr rsd    r)rr rrrrr s