JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrB YI~d+i @sdZddlZddlZddlZddlZddlZddlmZddlm Zddddd d d d d g Z e edrte dddge edre ddddge edrej ZnejZGdddZGdddeZGdddeZe edrGdddZGdd d Ze edr,GdddeeZGdddeeZGdddeeZGd d d eeZe edrGd!ddeZGd"ddeZGd#ddeeZGd$ddeeZGd%d d ZGd&d d eZGd'd(d(eZGd)d d eZ dS)*z0.4N)BufferedIOBase) monotonic BaseServer TCPServer UDPServerThreadingUDPServerThreadingTCPServerBaseRequestHandlerStreamRequestHandlerDatagramRequestHandlerThreadingMixInforkForkingUDPServerForkingTCPServer ForkingMixInAF_UNIXUnixStreamServerUnixDatagramServerThreadingUnixStreamServerThreadingUnixDatagramServer PollSelectorc@seZdZdZddZddZd%ddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#d$ZdS)&rNcCs ||_||_t|_d|_dS)NF)server_addressRequestHandlerClass threadingZEvent_BaseServer__is_shut_down_BaseServer__shutdown_request)selfrrr1/opt/alt/python37/lib64/python3.7/socketserver.py__init__s zBaseServer.__init__cCsdS)Nr)rrrrserver_activateszBaseServer.server_activate?c Csx|jzVtF}||tjx0|jsR||}|jrrrrr8MszBaseServer.verify_requestcCs|||||dS)N)finish_requestr<)rr=r>rrrr9Us zBaseServer.process_requestcCsdS)Nr)rrrr server_close^szBaseServer.server_closecCs||||dS)N)r)rr=r>rrrr?fszBaseServer.finish_requestcCs||dS)N) close_request)rr=rrrr<jszBaseServer.shutdown_requestcCsdS)Nr)rr=rrrrAnszBaseServer.close_requestcCs@tdtjdtd|tjdddl}|tdtjddS)Nz(----------------------------------------)filez4Exception happened during processing of request fromr)printsysstderr traceback print_exc)rr=r>rFrrrr;rs  zBaseServer.handle_errorcCs|S)Nr)rrrr __enter__szBaseServer.__enter__cGs |dS)N)r@)rargsrrr__exit__szBaseServer.__exit__)r!)__name__ __module__ __qualname__r1rr r-r/r)r5r(r4r8r9r@r?r<rAr;rHrJrrrrrs$-    c@sbeZdZejZejZdZdZ dddZ ddZ dd Z d d Z d d ZddZddZddZdS)rFTcCsTt|||t|j|j|_|rPy||Wn|YnXdS)N)rrr0address_family socket_type server_bindr r@)rrrZbind_and_activaterrrrs  zTCPServer.__init__cCs8|jr|jtjtjd|j|j|j|_dS)N)allow_reuse_addressr0 setsockoptZ SOL_SOCKETZ SO_REUSEADDRZbindrZ getsockname)rrrrrQszTCPServer.server_bindcCs|j|jdS)N)r0Zlistenrequest_queue_size)rrrrr szTCPServer.server_activatecCs|jdS)N)r0close)rrrrr@szTCPServer.server_closecCs |jS)N)r0fileno)rrrrrWszTCPServer.filenocCs |jS)N)r0Zaccept)rrrrr6szTCPServer.get_requestcCs4y|tjWntk r$YnX||dS)N)r/r0ZSHUT_WRr7rA)rr=rrrr<s zTCPServer.shutdown_requestcCs |dS)N)rV)rr=rrrrAszTCPServer.close_requestN)T)rKrLrMr0ZAF_INETrOZ SOCK_STREAMrPrUrSrrQr r@rWr6r<rArrrrrs/   c@s:eZdZdZejZdZddZddZ ddZ d d Z d S) rFi cCs |j|j\}}||jf|fS)N)r0Zrecvfrommax_packet_size)rdataZ client_addrrrrr6szUDPServer.get_requestcCsdS)Nr)rrrrr szUDPServer.server_activatecCs||dS)N)rA)rr=rrrr<szUDPServer.shutdown_requestcCsdS)Nr)rr=rrrrAszUDPServer.close_requestN) rKrLrMrSr0Z SOCK_DGRAMrPrXr6r r<rArrrrrscsReZdZdZdZdZdZddddZd d Zd d Z d dZ fddZ Z S)ri,N(TF)blockingc Cs|jdkrdSxht|j|jkrvy tdd\}}|j|Wqtk r^|jYqtk rrPYqXqWxt|j D]f}y.|rdntj }t||\}}|j|Wqtk r|j|Yqtk rYqXqWdS)Nr) active_childrenlen max_childrenoswaitpiddiscardChildProcessErrorr"r7copyWNOHANG)rr[pid_flagsrrrcollect_children(s&  zForkingMixIn.collect_childrencCs |dS)N)ri)rrrrr4KszForkingMixIn.handle_timeoutcCs |dS)N)ri)rrrrr)RszForkingMixIn.service_actionscCst}|r8|jdkrt|_|j|||dSd}z:y|||d}Wn tk rr|||YnXWdz| |Wdt |XXdS)NrRr) r`r r]r*addrAr?r:r;r<_exit)rr=r>rfstatusrrrr9Ys     zForkingMixIn.process_requestcst|j|jddS)N)r[)superr@riblock_on_close)r) __class__rrr@rs zForkingMixIn.server_close) rKrLrMr1r]r_rnrir4r)r9r@ __classcell__rr)rorrs#cs8eZdZdZdZdZddZddZfdd ZZ S) r FTNc CsHz6y|||Wn tk r2|||YnXWd||XdS)N)r?r:r;r<)rr=r>rrrprocess_request_threads z%ThreadingMixIn.process_request_threadcCsPtj|j||fd}|j|_|jsD|jrD|jdkr8g|_|j||dS)N)targetrI) rZThreadrqdaemon_threadsZdaemonrn_threadsappendstart)rr=r>trrrr9s    zThreadingMixIn.process_requestcs:t|jr6|j}d|_|r6x|D] }|q&WdS)N)rmr@rnrtjoin)rZthreadsZthread)rorrr@s  zThreadingMixIn.server_close) rKrLrMrsrnrtrqr9r@rprr)rorr ws   c@s eZdZdS)rN)rKrLrMrrrrrsc@s eZdZdS)rN)rKrLrMrrrrrsc@s eZdZdS)rN)rKrLrMrrrrrsc@s eZdZdS)rN)rKrLrMrrrrrsc@seZdZejZdS)rN)rKrLrMr0rrOrrrrrsc@seZdZejZdS)rN)rKrLrMr0rrOrrrrrsc@s eZdZdS)rN)rKrLrMrrrrrsc@s eZdZdS)rN)rKrLrMrrrrrsc@s,eZdZddZddZddZddZd S) r cCs6||_||_||_|z |Wd|XdS)N)r=r>serversetuphandlefinish)rr=r>ryrrrrs zBaseRequestHandler.__init__cCsdS)Nr)rrrrrzszBaseRequestHandler.setupcCsdS)Nr)rrrrr{szBaseRequestHandler.handlecCsdS)Nr)rrrrr|szBaseRequestHandler.finishN)rKrLrMrrzr{r|rrrrr s c@s,eZdZdZdZdZdZddZddZdS) r r\rNFcCsz|j|_|jdk r |j|j|jr:|jtjtjd|j d|j |_ |j dkrdt |j|_n|j d|j |_dS)NTrbrwb)r=Z connectionr1Z settimeoutdisable_nagle_algorithmrTr0Z IPPROTO_TCPZ TCP_NODELAYZmakefilerbufsizerfilewbufsize _SocketWriterwfile)rrrrrzs    zStreamRequestHandler.setupcCsF|jjs.y|jWntjk r,YnX|j|jdS)N)rclosedflushr0errorrVr)rrrrr|s zStreamRequestHandler.finish) rKrLrMrrr1rrzr|rrrrr s   c@s,eZdZddZddZddZddZd S) rcCs ||_dS)N)_sock)rZsockrrrrsz_SocketWriter.__init__cCsdS)NTr)rrrrwritablesz_SocketWriter.writablec Cs&|j|t|}|jSQRXdS)N)rZsendall memoryviewnbytes)rbZviewrrrwrites  z_SocketWriter.writecCs |jS)N)rrW)rrrrrW#sz_SocketWriter.filenoN)rKrLrMrrrrWrrrrrsrc@seZdZddZddZdS)r cCs2ddlm}|j\|_|_||j|_||_dS)Nr)BytesIO)iorr=Zpacketr0rr)rrrrrrz*s  zDatagramRequestHandler.setupcCs|j|j|jdS)N)r0Zsendtorgetvaluer>)rrrrr|0szDatagramRequestHandler.finishN)rKrLrMrzr|rrrrr &s)! __version__r0r%r`rDrrrr3r__all__hasattrextendrr#ZSelectSelectorrrrrr rrrrrrrrr r rr rrrr{sR     n~ X.  .-