a 4dg@sddlZdadaddZGdddZGdddZddd Zejdfd d Zd d Z ddZ ddZ ddZ ddZ ddZejZejZejZejZejZejZdZdZeedrejZdS)NcCs|adSN) _reply_data)liner,/usr/local/lib/python3.9/test/mock_socket.py reply_withsrc@s&eZdZddZd ddZddZdS) MockFilecCs ||_dSr)lines)selfr rrr__init__szMockFile.__init__cCs>|jdd}|dkr:|jd||d|d|}|S)Nr )r popinsert)r limitresultrrrreadlines  zMockFile.readlinecCsdSrrr rrrcloseszMockFile.closeN)r )__name__ __module__ __qualname__r rrrrrrrs rc@seZdZd*ddZddZd+ddZdd Zd d Zd d ZddZ d,ddZ ddZ ddZ ddZ ddZddZd-ddZd.d d!Zd/d"d#Zd$d%Zd&d'Zd(d)ZdS)0 MockSocketNcCs6||_g|_g|_tr&|jtdad|_d|_dSr)familyoutputr rappendconntimeout)r rrrrr &s zMockSocket.__init__cCs|j|dSr)r r)r rrrr queue_recv1szMockSocket.queue_recvcCs|jdd}|S)Nrr )r r)r bufsizeflagsdatarrrrecv4szMockSocket.recvcCsdSNrrrrrrfileno8szMockSocket.filenocCs|durt|_n||_dSr)_defaulttimeoutr)r rrrr settimeout;szMockSocket.settimeoutcCs|jSrrrrrr gettimeoutAszMockSocket.gettimeoutcCsdSrr)r leveloptnamevaluerrr setsockoptDszMockSocket.setsockoptcCsdSr$r)r r*r+buflenrrr getsockoptGszMockSocket.getsockoptcCsdSrr)r addressrrrbindJszMockSocket.bindcCst|_|jdfS)Nc)rrrrrracceptMszMockSocket.acceptcCsdS)N)z0.0.0.0rrrrrr getsocknameQszMockSocket.getsocknamecCsdSrr)r flagrrr setblockingTszMockSocket.setblockingcCsdSrr)r backlogrrrlistenWszMockSocket.listenrr cCst|j}|Sr)rr )r moder handlerrrmakefileZs zMockSocket.makefilecCs||_|j|t|SrZlastrrlenr r"r!rrrsendall^s zMockSocket.sendallcCs||_|j|t|Srr=r?rrrsendcs zMockSocket.sendcCsdS)N)z peer-addressz peer-portrrrrr getpeernamehszMockSocket.getpeernamecCsdSrrrrrrrkszMockSocket.closecCsdSrr)r hostrrrconnectnszMockSocket.connect)N)N)N)r9r )N)N)rrrr rr#r%r'r)r-r/r1r3r4r6r8r<r@rArBrrDrrrrr#s&      rcCst|Sr)r)rtypeprotorrrsocketrsrGcCsLzt|d}Wnty&tYn0t}|tjur>t}|||S)N)int ValueErrorerrorr socket_module_GLOBAL_DEFAULT_TIMEOUTgetdefaulttimeoutr')r0rsource_addressZint_portmsrrrcreate_connectionus    rQcCs|adSrr&r(rrrsetdefaulttimeoutsrScCstSrrRrrrrrNsrNcCsdSNrrrrrgetfqdnsrVcCsdSrrrrrr gethostnamesrWcCsdSrTr)namerrr gethostbynamesrYcOstj|i|Sr)rL getaddrinfo)argskwrrrrZsrZAF_UNIX)NNN)rGrLr&rrrrrMrQrSrNrVrWrYrZgaierrorrKAF_INETAF_INET6 SOCK_STREAM SOL_SOCKET SO_REUSEADDRhasattrr]rrrrs2O