-
?c       sZ     d  k  Z   d  k Z  d  k Z  d k T d  k Z 	 d k l Z  d Z  e Z  d f  d     YZ  d e f d     YZ	 + d e f d	     YZ
 B d
 e f d     YZ W d e f d     YZ l d e f d     YZ y d e f d     YZ d e f d     YZ e d j o! e d  Z e i   GHn d  S(   N(   s   *(   s	   TestErrori   s   namedObjc      sG    t  Z  d   Z  d   Z  d   Z  d   Z  d   Z RS(   Nc    s     g  |  _  h  |  _ d  S(   N(   s   selfs   commentss   opts(   s   self(    (    s   ./ConfNamed.pys   __init__ s   c    s     | |  i | <d  S(   N(   s   vals   selfs   optss   name(   s   selfs   names   val(    (    s   ./ConfNamed.pys   setOpt s   c    s     |  i | Sd  S(   N(   s   selfs   optss   name(   s   selfs   name(    (    s   ./ConfNamed.pys   getOpt s   c    s     |  i i |  d  S(   N(   s   selfs   commentss   appends   comment(   s   selfs   comment(    (    s   ./ConfNamed.pys
   addComment s   c    s
     d  S(   N(    (   s   self(    (    s   ./ConfNamed.pys   done s   (   s   __name__s
   __module__s   __init__s   setOpts   getOpts
   addComments   done(    (    (    s   ./ConfNamed.pys   namedObj s
   	s   Serversc      s#    t  Z  d   Z $ d   Z RS(   Nc    sp     t  i |    | d |  _   | d d j o5 ! x+ | d d !D! ] } " |  i | d  qH Wn d  S(   Ni    is   };i   s    (   s   namedObjs   __init__s   selfs   vals   types   is   setOpt(   s   selfs   vals   i(    (    s   ./ConfNamed.pys   __init__ s    	c    sj   $ % d |  i } & x9 |  i i   D& ]% } ' d | | |  i |  f } q& W( | d } ) | Sd  S(   Ns   	%s { 
s
   %s		%s %s
s   	};
(   s   selfs   types   recs   optss   keyss   names   getOpt(   s   selfs   recs   name(    (    s   ./ConfNamed.pys   out$ s    	#(   s   __name__s
   __module__s   __init__s   out(    (    (    s   ./ConfNamed.pys   Servers s   	s   Commentc      s#   + t  Z , d   Z < d   Z RS(   Nc    s   , - t  i |   . g  |  _ / |  i i |  0 | i   } 1 | d d j o 2 x 2 | i	   o~ 3 | i
   i   } 4 | i
   } 5 | i   6 |  i i |  7 | d j o
 8 q[ n 9 | d d j o : Pn q[ Wn d  S(   Ni    s   /*s    s   */(   s   namedObjs   __init__s   selfs   commentss   appends   lines   splits   vals   confs   findnextlines   getlines   nextline(   s   selfs   confs   lines   val(    (    s   ./ConfNamed.pys   __init__, s    
c    sD   < = d } > x' |  i D> ] } ? d | | f } q W@ | Sd  S(   Ns    s   %s%s
(   s   recs   selfs   commentss   comment(   s   selfs   comments   rec(    (    s   ./ConfNamed.pys   out< s
   	 	(   s   __name__s
   __module__s   __init__s   out(    (    (    s   ./ConfNamed.pys   Comment+ s   	s   Optionsc      s;   B t  Z C d   Z E d   Z G d   Z I d   Z RS(   Nc    s   C D t  i |   d  S(   N(   s   namedObjs   __init__s   self(   s   self(    (    s   ./ConfNamed.pys   __init__C s   c    s   E F | |  _ d  S(   N(   s   fs   selfs   servers(   s   selfs   f(    (    s   ./ConfNamed.pys
   setServersE s   c    s   G H |  i Sd  S(   N(   s   selfs   servers(   s   self(    (    s   ./ConfNamed.pys
   getServersG s   c    s   I J d } K x- |  i DK ] } L d | | i   f } q WN x9 |  i i   DN ]% } O d | | |  i |  f } qR WP y Q | |  i	 i   } Wn R t
 j
 o } S n XT | d } U | Sd  S(   Ns   options { 
s   %s%ss	   %s	%s %s
s   };(   s   recs   selfs   commentss   comments   outs   optss   keyss   names   getOpts   serverss   AttributeErrors   e(   s   selfs   comments   es   names   rec(    (    s   ./ConfNamed.pys   outI s   	 	 	#(   s   __name__s
   __module__s   __init__s
   setServerss
   getServerss   out(    (    (    s   ./ConfNamed.pys   OptionsB s   	s   Loggingc      s;   W t  Z X d   Z Z d   Z \ d   Z ^ d   Z RS(   Nc    s   X Y t  i |   d  S(   N(   s   namedObjs   __init__s   self(   s   self(    (    s   ./ConfNamed.pys   __init__X s   c    s   Z [ | |  _ d  S(   N(   s   fs   selfs   servers(   s   selfs   f(    (    s   ./ConfNamed.pys
   setServersZ s   c    s   \ ] |  i Sd  S(   N(   s   selfs   servers(   s   self(    (    s   ./ConfNamed.pys
   getServers\ s   c    s   ^ _ d } ` x- |  i D` ] } a d | | i   f } q Wc x9 |  i i   Dc ]% } d d | | |  i |  f } qR We y f | |  i	 i   } Wn g t
 j
 o } h n Xi | d } j | Sd  S(   Ns   logging { 
s   %s%ss	   %s	%s %s
s   };(   s   recs   selfs   commentss   comments   outs   optss   keyss   names   getOpts   serverss   AttributeErrors   e(   s   selfs   comments   es   names   rec(    (    s   ./ConfNamed.pys   out^ s   	 	 	#(   s   __name__s
   __module__s   __init__s
   setServerss
   getServerss   out(    (    (    s   ./ConfNamed.pys   LoggingW s   	s   Controlsc      s#   l t  Z m d   Z p d   Z RS(   Nc    s   m n t  i |   d  S(   N(   s   namedObjs   __init__s   self(   s   self(    (    s   ./ConfNamed.pys   __init__m s   c    s   p q d } r x- |  i Dr ] } s d | | i   f } q Wt x9 |  i i   Dt ]% } u d | | |  i |  f } qR Wv | d } w | Sd  S(   Ns   controls { 
s   %s%ss	   %s	%s %s
s   };(	   s   recs   selfs   commentss   comments   outs   optss   keyss   names   getOpt(   s   selfs   comments   recs   name(    (    s   ./ConfNamed.pys   outp s   	 	 	#(   s   __name__s
   __module__s   __init__s   out(    (    (    s   ./ConfNamed.pys   Controlsl s   	s   ZoneFilec      ss  y t  Z z d   Z  d   Z  d   Z  d   Z  d   Z  d   Z  d   Z  d   Z	  d	   Z
  d
   Z  d   Z  d   Z  d   Z  d   Z  d   Z  d   Z  d   Z  d   Z  d   Z  d   Z  d   Z  d   Z  d   Z  d   Z  d   Z  d   Z  d   Z  d   Z  d   Z  d   Z RS(   Nc    st   z { t  i |   | | |  _ } | i d  |  _ ~ t |  _  | |  _  t |  _	  t |  _  t
 |  _ d  S(   Ns   "(   s   namedObjs   __init__s   selfs   names   dirs   strips   Nones   zones   parents   serverss   FALSEs   dirty(   s   selfs   names   dirs   parent(    (    s   ./ConfNamed.pys   __init__z s   c    s(     t  i  |  i |  i    |  _ d  S(   N(   s   Zones   selfs   names   getFullFiles   zone(   s   self(    (    s   ./ConfNamed.pys   done s   c    s     |  i d  Sd  S(   Ns   type(   s   selfs   getOpt(   s   self(    (    s   ./ConfNamed.pys   getType s   c    s4     |  i t j o  |  i i | |  n d  S(   N(   s   selfs   zones   Nones   saves   uids   gid(   s   selfs   uids   gid(    (    s   ./ConfNamed.pys   save s   c    sg     |  i   o  d  Sn  |  i   }  t |  d j  o   t t d  |  i    n d  S(   Ni   sd   Zone `%s'
must list at least one nameserver record.
Use the "Add Record" button to add a nameserver.(   s   selfs   isSlaves	   getNSLists   nslists   lens	   TestErrors   _s   getName(   s   selfs   nslist(    (    s   ./ConfNamed.pys   test s
   c    s     |  i i   Sd  S(   N(   s   selfs   zones   getSOA(   s   self(    (    s   ./ConfNamed.pys   getSOA s   c    s     |  i i   Sd  S(   N(   s   selfs   zones	   getNSList(   s   self(    (    s   ./ConfNamed.pys	   getNSList s   c    s     |  i i   Sd  S(   N(   s   selfs   zones	   getMXList(   s   self(    (    s   ./ConfNamed.pys	   getMXList s   c    s     |  i i   d  S(   N(   s   selfs   zones	   incSerial(   s   self(    (    s   ./ConfNamed.pys	   incSerial s   c    s     |  i i   Sd  S(   N(   s   selfs   zones   getAList(   s   self(    (    s   ./ConfNamed.pys   getAList s   c    s     |  i i   Sd  S(   N(   s   selfs   zones
   getPTRList(   s   self(    (    s   ./ConfNamed.pys
   getPTRList s   c    s     |  i i   Sd  S(   N(   s   selfs   zones   getCNAMEList(   s   self(    (    s   ./ConfNamed.pys   getCNAMEList s   c    s     |  i i |  d  S(   N(   s   selfs   zones	   setSerials   serial(   s   selfs   serial(    (    s   ./ConfNamed.pys	   setSerial s   c    s     |  i i   Sd  S(   N(   s   selfs   zones	   getSerial(   s   self(    (    s   ./ConfNamed.pys	   getSerial s   c    s     |  i Sd  S(   N(   s   selfs   name(   s   self(    (    s   ./ConfNamed.pys   getName s   c    s     | |  _  d  S(   N(   s   names   self(   s   selfs   name(    (    s   ./ConfNamed.pys   setName s   c    s      |  i d  i d  Sd  S(   Ns   files   ";(   s   selfs   getOpts   strip(   s   self(    (    s   ./ConfNamed.pys   getFile s   c    s     |  i d d |  Sd  S(   Ns   files   "%s";(   s   selfs   setOpts   file(   s   selfs   file(    (    s   ./ConfNamed.pys   setFile s   c    s4     d |  i i |  i i d  |  i   f Sd  S(   Ns   %s/%ss   ";"(   s   selfs   parents   rootdirs   dirs   strips   getFile(   s   self(    (    s   ./ConfNamed.pys   getFullFile s   c    sD     |  i d  i d  }  | d j o  t Sn  t Sd  S(   Ns   types   ;s   slave(   s   selfs   getOpts   strips   types   TRUEs   FALSE(   s   selfs   type(    (    s   ./ConfNamed.pys   isSlave s   c    sD     |  i d  i d  }  | d j o  t Sn  t Sd  S(   Ns   types   ;s   master(   s   selfs   getOpts   strips   types   TRUEs   FALSE(   s   selfs   type(    (    s   ./ConfNamed.pys   isMaster s   c    sD     |  i d  i d  }  | d j o  t Sn  t Sd  S(   Ns   types   ;s   hint(   s   selfs   getOpts   strips   types   TRUEs   FALSE(   s   selfs   type(    (    s   ./ConfNamed.pys   isHint s   c    s0     |  i i d  }  |  i | d j Sd  S(   Ns   .in-addr.arpai    (   s   selfs   names   splits   x(   s   selfs   x(    (    s   ./ConfNamed.pys	   isReverse s   c    s     | |  _ d  S(   N(   s   fs   selfs   servers(   s   selfs   f(    (    s   ./ConfNamed.pys
   setServers s   c    s     |  i Sd  S(   N(   s   selfs   servers(   s   self(    (    s   ./ConfNamed.pys
   getServers s   c    s8     |  i t j o  |  i i i   Sn  g  Sd  S(   N(   s   selfs   serverss   Nones   optss   keys(   s   self(    (    s   ./ConfNamed.pys
   getMasters s   c    s     |  i   o2  t i |  o  t t d  |  n nw  |  i   o5  t i i	 |  o  t t d  |  n n2  t i i	 |  o  t t d  |  n d  S(   Ns>   Reverse zone name '%s' is not the end of a reverse IP address.s.   Slave zone name %s is not a valid domain name.s0   Forward zone name %s is not a valid domain name.(
   s   selfs	   isReverses   Zones   checkRevIpNums   names	   TestErrors   _s   isSlaves   hname_res   match(   s   selfs   name(    (    s   ./ConfNamed.pys   testName s   c    s
     d  S(   N(    (   s   selfs   file(    (    s   ./ConfNamed.pys   testFile s   c    s     |  i i |   d  S(   N(   s   selfs   parents
   unlinkZone(   s   self(    (    s   ./ConfNamed.pys   unlink s   c    s     d |  i }  x- |  i D ] }  d | | i   f } q  W x9 |  i i   D ]% }  d | | |  i |  f } qY W y  | |  i	 i   } Wn  t
 j
 o
  n X| d } | Sd  S(   Ns   zone "%s" { 
s   %s%ss	   %s	%s %s
s   };(   s   selfs   names   recs   commentss   comments   outs   optss   keyss   getOpts   serverss   AttributeError(   s   selfs   comments   recs   name(    (    s   ./ConfNamed.pys   out s    	 	#(    s   __name__s
   __module__s   __init__s   dones   getTypes   saves   tests   getSOAs	   getNSLists	   getMXLists	   incSerials   getALists
   getPTRLists   getCNAMELists	   setSerials	   getSerials   getNames   setNames   getFiles   setFiles   getFullFiles   isSlaves   isMasters   isHints	   isReverses
   setServerss
   getServerss
   getMasterss   testNames   testFiles   unlinks   out(    (    (    s   ./ConfNamed.pys   ZoneFiley s<   	
s	   ConfNamedc      s   t  Z d d  Z =d   Z Cd   Z Hd d  Z Qd   Z Td   Z [d	   Z bd
   Z	 id   Z
 od   Z d   Z d   Z d   Z d   Z RS(   Ns    c    s  t  i |  | | d d |  i   |  i   	g  |  _ 
g  |  _ g  } g  |  _
 | |  _ t |  _ t |  _ t |  _ x4|  i   o#|  i   i   } |  i   } |  i   t |  d j o
 q n | d d j p# | d d j p | d d d j o] t |  d j o! | d i t |  |   n |  i i t |  |   q n | d d j o, t   |  _ | i |  i   q n !| d d j o, "t   |  _ #| i |  i  $q n %| d d	 j o, &t   |  _ '| i |  i  (q n )| d d
 j o! *|  i
 i | d  +q n ,| d d d d d g j oU -t |  } .| d i |  /| d d j o 0| i |  n 1q n 2| d d j oU 3t | d i  d  |  i!   |   } 4|  i i |  5| i |  6q n 7| d d j o( 8| d i#   9| d  } :q n ;| d i$ | d t% | d d   q Wd  S(   Ns   commenttypes   //i    s   /*s   #is   optionss   loggings   controlss   includei   s
   forwarderss   masterss   allow-transfers   also-notifys   };s   zones   "s    (&   s   Confs   __init__s   selfs   rootdirs   filenames   reads   rewinds   commentss   zoness   currents   includess   Nones   controlss   loggings   optionss   findnextlines   getlines   splits   vals   lines   nextlines   lens
   addComments   Comments   appends   Optionss   Loggings   Controlss   Serverss   fs
   setServerss   ZoneFiles   strips   getDirectorys   zones   dones   setOpts   join(   s   selfs   filenames   rootdirs   zones   vals   fs   currents   line(    (    s   ./ConfNamed.pys   __init__sl   	 
:!




 
(

c    s5   =>y ?|  i i d  SWn @Ad Sn Xd  S(   Ns	   directorys
   /var/named(   s   selfs   optionss   getOpt(   s   self(    (    s   ./ConfNamed.pys   getDirectory=s   c    sB   CDx5 |  i DD]' } E| i   | j o F| Sn q Wd  S(   N(   s   selfs   zoness   zs   getNames   zoneName(   s   selfs   zoneNames   z(    (    s   ./ConfNamed.pys   getZoneCs    	s   masterc    s   HIt  | |  i   |   } J| i d d |  K| i d | d  L| d j o M| i   n N|  i	 i
 |  O| Sd  S(   Ns   files   "%s";s   types   ;s   slave(   s   ZoneFiles   names   selfs   getDirectorys   zones   setOpts   files   types   dones   zoness   append(   s   selfs   names   files   types   zone(    (    s   ./ConfNamed.pys   addZoneHs   c    s   QR|  i i |  d  S(   N(   s   selfs   zoness   removes   zone(   s   selfs   zone(    (    s   ./ConfNamed.pys
   unlinkZoneQs   c    sc   TUg  } VxF |  i DV]8 } W| i   o
 | i   o X| i |  n q WY| Sd  S(   N(   s   ls   selfs   zoness   zs	   isReverses   isMasters   append(   s   selfs   zs   l(    (    s   ./ConfNamed.pys   getForwardZoneListTs   	 	c    sb   [\g  } ]xE |  i D]]7 } ^| i   o
 | i   o _| i |  n q W`| Sd  S(   N(   s   ls   selfs   zoness   zs	   isReverses   isMasters   append(   s   selfs   zs   l(    (    s   ./ConfNamed.pys   getReverseZoneList[s   	 	c    sU   bcg  } dx8 |  i Dd]* } e| i   o f| i |  n q Wg| Sd  S(   N(   s   ls   selfs   zoness   zs   isSlaves   append(   s   selfs   zs   l(    (    s   ./ConfNamed.pys   getSlaveZoneListbs   	 	c    s"   im|  i d |  i d  Sd  S(   Ns   ^[s   ]+(   s   selfs   findnextlines   commenttype(   s   self(    (    s   ./ConfNamed.pys   findnextcommentlineis   c    sC  opd } qx- |  i Dq] } rd | | i   f } q Ws|  i t j o  td | |  i i   f } n u|  i t j o  vd | |  i i   f } n w|  i t j o  xd | |  i i   f } n yx- |  i	 Dy] } zd | | i   f } q W{x' |  i D{] } |d | | f } qW}| Sd  S(   Ns    s   %s%ss   %s%s
s   %sinclude	 %s
(   s   rets   selfs   commentss   comments   outs   optionss   Nones   controlss   loggings   zoness   zs   includess   i(   s   selfs   comments   is   zs   ret(    (    s   ./ConfNamed.pys   outos"   	 	    	 	c    s   t  d  } xe | i   D]T } t i | d  } | d d j o% | i   t i | d  Sn q" W| i   d Sd  S(   Ns   /etc/passwds   :i    s   namedi   i   (	   s   opens   passwds	   readliness   lines   strings   splitfieldss   recs   closes   atoi(   s   selfs   passwds   recs   line(    (    s   ./ConfNamed.pys   getNamedUids    	c    s   t  d  } xe | i   D]T } t i | d  } | d d j o% | i   t i | d  Sn q" W| i   d Sd  S(   Ns
   /etc/groups   :i    s   namedi   i   (	   s   opens   groups	   readliness   lines   strings   splitfieldss   recs   closes   atoi(   s   selfs   groups   recs   line(    (    s   ./ConfNamed.pys   getNamedGids    	c    s  d |  i t i   f } x! |  i D] } | i   q, W|  i   } |  i
   } x< |  i D]. } | i   o | i | |  n qq Wt | d  } | i |  i    | i   t i | |  i  t i |  i | |  d  S(   Ns   %s.%ds   w(   s   selfs   filenames   oss   getpids   tmpFiles   zoness   zs   tests   getNamedUids   uids   getNamedGids   gids   isHints   saves   opens   fds   writes   outs   closes   renames   chown(   s   selfs   tmpFiles   gids   fds   uids   z(    (    s   ./ConfNamed.pys   saves    	 	c    s   |  i   d  S(   N(   s   selfs   save(   s   self(    (    s   ./ConfNamed.pys	   saveLocals   (   s   __name__s
   __module__s   __init__s   getDirectorys   getZones   addZones
   unlinkZones   getForwardZoneLists   getReverseZoneLists   getSlaveZoneLists   findnextcommentlines   outs   getNamedUids   getNamedGids   saves	   saveLocal(    (    (    s   ./ConfNamed.pys	   ConfNameds   	8	

s   __main__s   /etc/named.conf(   s   strings   syss   res   Confs   Zones	   TestErrors   TRUEs   FALSEs   namedObjs   Serverss   Comments   Optionss   Loggings   Controlss   ZoneFiles	   ConfNameds   __name__s   cs   out(   s   Comments   cs   FALSEs   strings   Zones   ZoneFiles   namedObjs   Controlss   Serverss   syss   res	   ConfNameds   Loggings	   TestErrors   TRUEs   Options(    (    s   ./ConfNamed.pys   ? s$   
	
