;ò kùÄs   cCsti||ƒ|_dS(N(ssocketsasbsselfss(sselfsasb((s:/mnt/gmirror/ports/dns/py-dns/work/pydns-2.3.0/DNS/Base.pys socketInitQscCsµdk}dk}|iddjoM|i|iggg|idƒ\}}}t|ƒ o t d‚qsn|ii dƒ|_ |iƒ|_ |i |id<|iƒSdS(NstimeoutisTimeoutisserver(stimesselectsselfsargssssrswseslensDNSErrorsrecvsreplys time_finishsnss processReply(sselfsesrswstimesselect((s:/mnt/gmirror/ports/dns/py-dns/work/pydns-2.3.0/DNS/Base.pysprocessUDPReplyTs.cCsÍdk}dk}|iidƒ|_|iidƒ}t|ƒdjo t d‚n|i |ƒ}|ii|ƒ|_ t|i ƒ|jo t d‚n|iƒ|_ |i|id<|iƒSdS(NsrisEOFsincomplete replysserver(stimesLibsselfsssmakefilesfsreadsheaderslensDNSErrors unpack16bitscountsreplys time_finishsnssargss processReply(sselfscountsLibsheaderstime((s:/mnt/gmirror/ports/dns/py-dns/work/pydns-2.3.0/DNS/Base.pysprocessTCPReply_s  cCs_dk}|i|id|id<|i|iƒ}|i||iƒ}|i|_|SdS(Nièselapsed( sLibsselfs time_finishs time_startsargss Munpackersreplysus DnsResultsr(sselfsrsusLib((s:/mnt/gmirror/ports/dns/py-dns/work/pydns-2.3.0/DNS/Base.pys processReplyms   cCs |ii|i|ifƒdS(N(sselfsssconnectsnssport(sself((s:/mnt/gmirror/ports/dns/py-dns/work/pydns-2.3.0/DNS/Base.pysconnˆsc OsÕdk} dk}|i||ƒ|id}|id|_|id} |id}|id}t |idƒt i joFy#ttti|idƒƒ}WqÖtj otd‚qÖXn|id}|iid ƒ o|iGHtd ‚n|id } |tijod GHd }n|iƒ}|id d | d d |d d d dd d d ƒ |i| |tiƒ|iƒ|_|djo|i |ƒn|i!|ƒ|i"ot#Sn|i$SdS(s needs a refactoring Nsprotocolsportsopcodesrdsserversqtypesunknown query typesnamesnothing to lookups'Query type AXFR, protocol forced to TCPstcpiisudp(%stimesLibsselfsargparsesnamesargssprotocolsportsopcodesrdsserverstypestypess StringTypesgetattrsTypesstringsuppersqtypesAttributeErrorsDNSErrorshas_keysqnamesAXFRsMpackersms addHeaders addQuestionsClasssINsgetbufsrequestssendUDPRequestssendTCPRequestsasyncsNonesresponse( sselfsnamesargssprotocolsLibsqtypesmsserversrdsopcodestimesqname((s:/mnt/gmirror/ports/dns/py-dns/work/pydns-2.3.0/DNS/Base.pysreq‹sB    #         cCsÆt|_|ititiƒxy|D]q|_yN|i ƒt i ƒ|_ |i o&|i i|iƒ|iƒ|_nWntj o q&nXPq&W|i o|i o td‚qÂndS(s refactor mesno working nameservers foundN(sNonesselfsresponses socketInitssocketsAF_INETs SOCK_DGRAMsserversnssconnstimes time_startsasyncssssendsrequestsprocessUDPReplysDNSError(sselfsserver((s:/mnt/gmirror/ports/dns/py-dns/work/pydns-2.3.0/DNS/Base.pyssendUDPRequestµs"      cCsÑt|_x©|D]¡|_y{|ititiƒt i ƒ|_ |i ƒ|i i tit|iƒƒ|iƒ|i idƒ|iƒ|_Wntij o qnXPqW|i o td‚ndS(s& do the work of sending a TCP request isno working nameservers foundN(sNonesselfsresponsesserversnss socketInitssocketsAF_INETs SOCK_STREAMstimes time_startsconnssssendsLibs pack16bitslensrequestsshutdownsprocessTCPReplyserrorsDNSError(sselfsserver((s:/mnt/gmirror/ports/dns/py-dns/work/pydns-2.3.0/DNS/Base.pyssendTCPRequestÊs    ) ( s__name__s __module__s__doc__s__init__sargparses socketInitsprocessUDPReplysprocessTCPReplys processReplysconnsreqssendUDPRequestssendTCPRequest(((s:/mnt/gmirror/ports/dns/py-dns/work/pydns-2.3.0/DNS/Base.pys DnsRequest5s        * sDnsAsyncRequestcBsMtZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z RS(s> an asynchronous request object. out of date, probably broken cOsXti|||Ž|idƒo|do|d|_n |i|_d|_dS(Nsdonei( s DnsRequests__init__sselfsnamesargsshas_keysdonefuncs showResultsasync(sselfsnamesargs((s:/mnt/gmirror/ports/dns/py-dns/work/pydns-2.3.0/DNS/Base.pys__init__Þs  cCsjdk}|i|i|ifƒ|iƒ|_|iidƒo |idoti i |ƒndS(Nsstart( stimesselfsconnectsnssports time_startsargsshas_keysasyncores dispatchersgo(sselfstime((s:/mnt/gmirror/ports/dns/py-dns/work/pydns-2.3.0/DNS/Base.pysconnçs  !cCs-|i||ƒtii|ƒ||_dS(N(sselfs create_socketsasbsasyncores dispatchers__init__ss(sselfsasb((s:/mnt/gmirror/ports/dns/py-dns/work/pydns-2.3.0/DNS/Base.pys socketInitíscCsL|iddjo4|iƒ|_|iot|i|fƒqHndS(Nsprotocolsudp(sselfsargssprocessUDPReplysresponsesdonefuncsapply(sself((s:/mnt/gmirror/ports/dns/py-dns/work/pydns-2.3.0/DNS/Base.pys handle_readñs cCs|i|iƒdS(N(sselfssendsrequest(sself((s:/mnt/gmirror/ports/dns/py-dns/work/pydns-2.3.0/DNS/Base.pyshandle_connectöscCsdS(N((sself((s:/mnt/gmirror/ports/dns/py-dns/work/pydns-2.3.0/DNS/Base.pys handle_writeøscGs|iiƒdS(N(sselfsresponsesshow(sselfss((s:/mnt/gmirror/ports/dns/py-dns/work/pydns-2.3.0/DNS/Base.pys showResultús( s__name__s __module__s__doc__s__init__sconns socketInits handle_readshandle_connects handle_writes showResult(((s:/mnt/gmirror/ports/dns/py-dns/work/pydns-2.3.0/DNS/Base.pysDnsAsyncRequestÜs      (s__doc__ssocketsstringstypesstimesTypesClasssOpcodesasyncores ExceptionsDNSErrorsQUERYsAsdefaultssParseResolvConfsDiscoverNameServerss DnsRequestsdispatcher_with_sendsDnsAsyncRequest( sParseResolvConfsasyncoressocketsDNSErrorsDnsAsyncRequestsOpcodestimes DnsRequestsDiscoverNameServerssTypesClassstypessstring((s:/mnt/gmirror/ports/dns/py-dns/work/pydns-2.3.0/DNS/Base.pys? s$ K   §