+
    Dfj                         R t ^ RIt^ RIt^ RIHtHt ^ RIHtHtH	t	H
t
 ^ RIHt  ! R R]P                  4      tR tR tR# )	z
Domain Name Server
N)internetservice)	authoritydns	secondaryserver)usagec                      a  ] tR t^t o . RO. RO. RO. RO.t. RO. RO. RO.t]P                  ! R]P                  ! 4       /R7      t	Rt
RtR tR tR tR tR tR	 tR
tV tR# )Options	interfaceN)
optActionsc                x    \         P                  P                  V 4       ^ V R&   . V n        . V n        . V n        R# )    verboseN)r   r
   __init__	bindfiles	zonefilessecondariesselfs   &3/usr/lib/python3/dist-packages/twisted/names/tap.pyr   Options.__init__+   s3    t$Y    c                    \         P                  P                  V4      '       g   \        P                  ! VR,           4      hV P
                  P                  V4       R# )z7Specify the filename of a Python syntax zone definition: No such fileN)ospathexistsr   
UsageErrorr   appendr   filenames   &&r   
opt_pyzoneOptions.opt_pyzone2   >    ww~~h''""8.>#>??h'r   c                    \         P                  P                  V4      '       g   \        P                  ! VR,           4      hV P
                  P                  V4       R# )z6Specify the filename of a BIND9 syntax zone definitionr   N)r   r   r   r   r   r   r   r    s   &&r   opt_bindzoneOptions.opt_bindzone8   r$   r   c                   VP                  R^4      p\        V4      ^8w  d   \        P                  ! R4      hV^ ,          P                  R4      p\        V4      ^8X  d   V^ ,          \        P
                  3pM \        V^,          4      pT^ ,          T3pV P                  P                  W2^,          .34       R#   \         d#    \        P                  ! RT^,          : 24      hi ; i)zgAct as secondary for the specified domain, performing
zone transfers from the specified IP (IP/domain)
/z-Argument must be of the form IP[:port]/domain:z$Specify an integer port number, not N)
splitlenr   r   r   PORTint
ValueErrorr   r   )r   	ip_domainargsaddressports   &&   r   opt_secondaryOptions.opt_secondary>   s     sA&t9>""#RSSq'--$w<1qz388,G71:
 qz4(G7) 45  &&:71:.I s   <B? ?-C,c                0    V R;;,          ^,          uu&   R# )zIncrement verbosity levelr   N r   s   &r   opt_verboseOptions.opt_verboseR   s    Y1r   c                   V R ,          '       d   RV R&   . V n         . V n        V P                   F3  p V P                  P                  \        P
                  ! V4      4       K5  	  V P                   F3  p V P                  P                  \        P                  ! V4      4       K5  	  V P                   Fv  p\        P                  P                   ! V!  pV P                   P                  V4       V P                  P                  V P                   R,          P#                  4       4       Kx  	   \%        V R,          4      V R&   R#   \         d4    \        P                  ! 4        \        P                  ! RT,           4      hi ; i  \         d4    \        P                  ! 4        \        P                  ! RT,           4      hi ; i  \&         d.    \        P                  ! RP)                  T R,          4      4      hi ; i)resolv-confT	recursivezInvalid syntax in r3   zInvalid port: {!r}N)svcszonesr   r   r   PySourceAuthority	Exception	traceback	print_excr   r   r   BindAuthorityr   r   SecondaryAuthorityServicefromServerAddressAndDomainsgetAuthorityr.   r/   format)r   fsvcs   &  r   postOptionsOptions.postOptionsV   s    $D	
AA

!!)"="=a"@A   AA

!!)"9"9!"<=   !!A55QQSTUCIIS!JJdiim88:; "	NtF|,DL  A##%&&';a'?@@A  A##%&&';a'?@@A  	N""#7#>#>tF|#LMM	Ns#   /E6/F0G	 >F>G	8H)r   r   r>   r   r?   )r   i zThe interface to which to bind)r3   p53zThe port on which to listen)r;   NNz6Override location of resolv.conf (implies --recursive))
hosts-fileNNz!Perform lookups with a hosts file)cacheczEnable record caching)r<   rzPerform recursive lookups)r   vzLog verbosely)__name__
__module____qualname____firstlineno__optParametersoptFlagsr   CompletionsCompleteNetInterfacescompDatar?   r   r   r"   r&   r4   r8   rK   __static_attributes____classdictcell__)__classdict__s   @r   r
   r
      s     @:	
 	H
M 	07)H   !<!<!>?H EI((6(N Nr   r
   c                l   ^ RI HpHpHp . . rTV R,          '       d)   VP	                  VP                  V R,          R7      4       V R,          '       d)   VP	                  VP                  V R,          R7      4       V R,          '       d)   VP	                  VP                  V R,          R	7      4       WE3# )
a	  
Build DNS resolver instances in an order which leaves recursive
resolving as a last resort.

@type config: L{Options} instance
@param config: Parsed command-line configuration

@return: Two-item tuple of a list of cache resovers and a list of client
    resolvers
)rR   clienthostsrR   r   )r   rQ   )filer<   r;   )
resolvconf)twisted.namesrR   rc   rd   r   CacheResolverResolvercreateResolver)configrR   rc   rd   cacls   &     r   _buildResolversrn   r   s     32g
		%%%fY.?%@Al
		%..f\&:.;<k
		&''6-3H'IJ6Mr   c                    \        V 4      w  r\        P                  ! V P                  WV R ,          4      p\        P
                  ! V4      p^ Vn        \        P                  ! 4       p\        P                  V3\        P                  V33 F.  w  rgV! V R,          WpR,          R7      pVP                  V4       K0  	  V P                   F  p	V	P                  V4       K  	  V# )r   r3   r   )r   )rn   r   DNSServerFactoryr?   r   DNSDatagramProtocolnoisyr   MultiServicer   	TCPServer	UDPServersetServiceParentr>   )
rk   rl   rm   rI   rO   retklassargsrJ   s
   &         r   makeServicer{      s    V$FBbfY6GHA"AAG



 C **A.1C1CQ0GH
&.#1DE	3 I {{S! Jr   )__doc__r   rB   twisted.applicationr   r   rg   r   r   r   r   twisted.pythonr   r
   rn   r{   r7   r   r   <module>r      s=   
 
  1 ; ;  ^Nemm ^NB.r   