-
	`@c       s     d  k  Z   d  k Z  d  k Z  d Z  e i e d   e i e  
 y  e i e d d  Wn2  e j
 o#  d  k Z  e	 e i
 d <n X d k T d Z  e Z  e i d  Z  e i d  Z  e i d  Z  d	   Z  d
 e f d     YZ ' d   Z * d   Z - d   Z 1 d   Z 5 d   Z J d   Z _ d   Z h d f  d     YZ  d f  d     YZ  d f  d     YZ  d e f d     YZ  d e f d     YZ! d e f d     YZ" (d e f d      YZ# 8d! e f d"     YZ$ <d# e f d$     YZ% Ld% e f d&     YZ& _d' e f d(     YZ' ~d)   Z( e) d* j od  k* Z* d  k+ Z+ e  i,   d+ j o- e- d,  e i. d+ GHe i/ d-  n e0 e i.  d j o e(   e i/ d  n e i. d Z1 e i. d  e _. e* i* e* i2 e* i3  d. f  d/     YZ4 e1 d0 Z5 e6 Z7 e6 Z8 d Z9 e Z: e Z; e Z< e  i= i> e i. d+  Z? y	e+ i+ e1 d1 d2 d3 d4 d5 d6 d7 d8 d9 g  \ Z@ ZA xe@ D]\ ZB ZC eB d: j p
 eB d; j o e Z: n eB d< j p
 eB d= j o e Z; n eB d> j p
 eB d? j o e Z< n eB d@ j p
 eB dA j o eC Z7 n eB dB j p
 eB dC j o eC ZD n eB dD j p
 eB dE j o eC Z8 n eB dF j p
 eB dG j o eC Z9 n eB dH j p
 eB dI j o4 e' e5 e5  ZE eE iF   GHe i/ d+  n eB dJ j p
 eB dK j o e(   e i/ d+  n q WWn9 e+ iG e4 f j
 o! e(   e i/ d  n Xe: o e< p e: o e; p e; o e< o e(   e i/ d  n y e' e5 e5  ZE e< o$ eE i< e8  e i/ d+  n e: p e; oc e: o eE i: e8 e7  n e; o eE i; e8 e7  n eE iH   e i/ d+  n e ZI eE iJ e8  GHWn: eK j
 o+ ZL e- dL  eL GHe i/ d  n Xn d  S(M   Ns   system-config-binds   /usr/share/localei   s   _(   s   *s   ^[\*a-zA-Z0-9.\-]+$sk   ^([0-2]?[0-9]?[0-9])\.([0-2]?[0-9]?[0-9])\.([0-2]?[0-9]?[0-9])\.([0-2]?[0-9]?[0-9])(?:\.in-addr\.arpa\.?)?$sx   ^([0-2]?[0-9]?[0-9])(?:\.([0-2]?[0-9]?[0-9]))?(?:\.([0-2]?[0-9]?[0-9])\.)?(?:\.([0-2]?[0-9]?[0-9]))?(?:\.in-addr\.arpa)$c    s5     t  i |   o  t t d  |   n d  S(   Ns(   Zone name %s is not a valid domain name.(   s   hname_res   matchs   values	   TestErrors   _(   s   value(    (    s	   ./Zone.pys   testName s   s	   TestErrorc      s    t  Z   e d  Z RS(   Nc    s     " | |  _  d  S(   N(   s   argss   self(   s   selfs   args(    (    s	   ./Zone.pys   __init__  s   (   s   __name__s
   __module__s   Nones   __init__(    (    (    s	   ./Zone.pys	   TestError s   	c    s
   ' ( d  S(   N(    (   s   value(    (    s	   ./Zone.pys   testServedBy' s   c    s
   * + d  S(   N(    (   s   value(    (    s	   ./Zone.pys   testFile* s   c    sB   - . t  i |   p
 |  d j o / t t d  |   n d  S(   Ns   @s   %s is not a valid hostname.(   s   hname_res   matchs   values	   TestErrors   _(   s   value(    (    s	   ./Zone.pys   testHost- s   !c    s2   1 2 t  |   o 3 t t d  |   n d  S(   Ns   %s is not a valid IP address.(   s
   checkIpNums   values	   TestErrors   _(   s   value(    (    s	   ./Zone.pys   testIp1 s   c    s  5 6 y 7 t  i |   } 8 | o 9 t Sn : | i   } ; | p | o t |  d j o < t Sn > xt t d d  D> ]` } ? | | t
 j o @ t Sn A t | |  } B | d j  p
 | d j o C t Sn q WWn D t j
 o E t Sn XG t Sd  S(   Ni   i    i   (   s   ip_res   matchs   values   ms   FALSEs   groupss   numss   lens   xranges   is   Nones   ints   nums	   TypeErrors   TRUE(   s   values   numss   is   ms   num(    (    s	   ./Zone.pys
   checkIpNum5 s"   % 	c    s  J K y L t  i |   } M | o N t Sn O | i   } Q | o Q t Sn T xy t d t |   DT ]_ } U | | t
 j o
 V qo n W t | |  } X | d j  p
 | d j o Y t Sn qo WWn Z t j
 o [ t Sn X] t Sd  S(   Ni    i   (   s   revip_res   matchs   values   ms   FALSEs   groupss   numss   xranges   lens   is   Nones   ints   nums	   TypeErrors   TRUE(   s   values   numss   ms   is   num(    (    s	   ./Zone.pys   checkRevIpNumJ s"     	
c    s)   _ ` |  d j  o a t Sn b t Sd  S(   Ni    (   s   ttls   FALSEs   TRUE(   s   ttl(    (    s	   ./Zone.pys   checkTTL_ s   s   SOAc      sL  h t  Z i d d d d  Z o d   Z r d   Z t d   Z w d   Z y 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(   Ns   @s	   localhosts   rootc    sF   i j | |  _  k | |  _ l | |  _ m d d d d d g |  _ d  S(   Ni   ip  i@8  i6 iQ (   s   pnss   selfs   servers   contacts   SOA(   s   selfs   pnss   servers   contact(    (    s	   ./Zone.pys   __init__i s   c    s   o p | |  _ d  S(   N(   s   SOALists   selfs   SOA(   s   selfs   SOAList(    (    s	   ./Zone.pys   loado s   c    s   r s |  i Sd  S(   N(   s   selfs   pns(   s   self(    (    s	   ./Zone.pys   getPNSr s   c    s   t u | |  _  d  S(   N(   s   pnss   self(   s   selfs   pns(    (    s	   ./Zone.pys   setPNSt s   c    s   w x |  i d Sd  S(   Ni   (   s   selfs   SOA(   s   self(    (    s	   ./Zone.pys   getTTLw s   c    s   y z | |  i d <d  S(   Ni   (   s   ttls   selfs   SOA(   s   selfs   ttl(    (    s	   ./Zone.pys   setTTLy s   c    s   | } |  i d Sd  S(   Ni   (   s   selfs   SOA(   s   self(    (    s	   ./Zone.pys
   getRefresh| s   c    s   ~  | |  i d <d  S(   Ni   (   s   refreshs   selfs   SOA(   s   selfs   refresh(    (    s	   ./Zone.pys
   setRefresh~ s   c    s     |  i d Sd  S(   Ni   (   s   selfs   SOA(   s   self(    (    s	   ./Zone.pys   getRetry s   c    s     | |  i d <d  S(   Ni   (   s   retrys   selfs   SOA(   s   selfs   retry(    (    s	   ./Zone.pys   setRetry s   c    s     |  i d Sd  S(   Ni   (   s   selfs   SOA(   s   self(    (    s	   ./Zone.pys	   getExpire s   c    s     | |  i d <d  S(   Ni   (   s   expires   selfs   SOA(   s   selfs   expire(    (    s	   ./Zone.pys	   setExpire s   c    s     |  i d Sd  S(   Ni    (   s   selfs   SOA(   s   self(    (    s	   ./Zone.pys	   getSerial s   c    s     | |  i d <d  S(   Ni    (   s   is   selfs   SOA(   s   selfs   i(    (    s	   ./Zone.pys	   setSerial s   c    s"     |  i d d |  i d <d  S(   Ni    i   (   s   selfs   SOA(   s   self(    (    s	   ./Zone.pys	   incSerial s   c    s     | |  _  d  S(   N(   s   contacts   self(   s   selfs   contact(    (    s	   ./Zone.pys
   setContact s   c    s     |  i Sd  S(   N(   s   selfs   contact(   s   self(    (    s	   ./Zone.pys
   getContact s   c    s     | |  _  d  S(   N(   s   servers   self(   s   selfs   server(    (    s	   ./Zone.pys	   setServer s   c    s     |  i Sd  S(   N(   s   selfs   server(   s   self(    (    s	   ./Zone.pys	   getServer s   c    s     | o  t t d   n  t |  d j o
 | d j o  d  Sn  t |  d j o | d d j o  t t d  |  n  t i |  o  t t d  |  n d  S(   Ns%   Primary Nameserver (SOA) not defined.i   s   @is   .sP   Primary Nameserver (SOA) '%s' has no . at the end. You must use a full hostname.sD   Primary Nameserver (SOA) '%s' is not a valid hostname or IP address.(   s   values	   TestErrors   _s   lens   hname_res   match(   s   selfs   value(    (    s	   ./Zone.pys   testPNS s   #(c    s-     | d j o  t t d   n d  S(   Ni    s   Serial number must be >= 1.(   s   values	   TestErrors   _(   s   selfs   value(    (    s	   ./Zone.pys
   testSerial s   c    s.     t  |  o  t t d   n d  S(   Ns   Refresh value must be >= 0.(   s   checkTTLs   values	   TestErrors   _(   s   selfs   value(    (    s	   ./Zone.pys   testRefresh s   c    s.     t  |  o  t t d   n d  S(   Ns   Retry value must be >= 0.(   s   checkTTLs   values	   TestErrors   _(   s   selfs   value(    (    s	   ./Zone.pys	   testRetry s   c    s.     t  |  o  t t d   n d  S(   Ns   Expire value must be >= 0.(   s   checkTTLs   values	   TestErrors   _(   s   selfs   value(    (    s	   ./Zone.pys
   testExpire s   c    s.     t  |  o  t t d   n d  S(   Ns   TTL value must be >= 0.(   s   checkTTLs   values	   TestErrors   _(   s   selfs   value(    (    s	   ./Zone.pys   testTTL s   c    s     d |  i   |  i   |  i   f }  d | |  i   f }  d | |  i   f }  d | |  i   f }  d | |  i   f }  d | |  i	   f }  d | }  | Sd  S(   Ns   %s	IN	SOA	%s	%s	(
s   %s				%d ; serial
s   %s				%d ; refresh
s   %s				%d ; retry
s   %s				%d ; expire
s   %s				%d ; ttl
s
   %s				)


(
   s   selfs   getPNSs	   getServers
   getContacts   rets	   getSerials
   getRefreshs   getRetrys	   getExpires   getTTL(   s   selfs   ret(    (    s	   ./Zone.pys   out s   ((   s   __name__s
   __module__s   __init__s   loads   getPNSs   setPNSs   getTTLs   setTTLs
   getRefreshs
   setRefreshs   getRetrys   setRetrys	   getExpires	   setExpires	   getSerials	   setSerials	   incSerials
   setContacts
   getContacts	   setServers	   getServers   testPNSs
   testSerials   testRefreshs	   testRetrys
   testExpires   testTTLs   out(    (    (    s	   ./Zone.pys   SOAh s4   	s   ZoneListc      s>    t  Z  d   Z  d   Z  d d  Z  d   Z RS(   Nc    s     g  |  _ d  S(   N(   s   selfs   list(   s   self(    (    s	   ./Zone.pys   __init__ s   c    s     |  i i |  d  S(   N(   s   selfs   lists   appends   x(   s   selfs   x(    (    s	   ./Zone.pys   append s   s    c    sh     g  }  xK |  i D ]= }  | i   | j p
 | d j o  | i |  n q W | Sd  S(   Ns    (   s   ls   selfs   lists   is   getTypes   types   append(   s   selfs   types   is   l(    (    s	   ./Zone.pys   getList s   	 	#c    s     |  i i |  d  S(   N(   s   selfs   lists   removes   rec(   s   selfs   rec(    (    s	   ./Zone.pys   remove s   (   s   __name__s
   __module__s   __init__s   appends   getLists   remove(    (    (    s	   ./Zone.pys   ZoneList s   	s   ZoneRecc      s_    t  Z  d   Z  d   Z  d   Z  d   Z  d   Z  d   Z  d   Z RS(   Nc    sO     | |  _   | |  _  | |  _  | |  _  | |  _  | |  _ d  S(   N(   s   f0s   selfs   f1s   f2s   f3s   f4s   parent(   s   selfs   f0s   f1s   f2s   f3s   f4s   parent(    (    s	   ./Zone.pys   __init__ s   c    s     |  i Sd  S(   N(   s   selfs   f2(   s   self(    (    s	   ./Zone.pys   getType s   c    s     |  i i |   d  S(   N(   s   selfs   parents   unlink(   s   self(    (    s	   ./Zone.pys   unlink s   c    s     |  i Sd  S(   N(   s   selfs   f1(   s   self(    (    s	   ./Zone.pys   getTtl s   c    s     | |  _ d  S(   N(   s   ttls   selfs   f1(   s   selfs   ttl(    (    s	   ./Zone.pys   setTtl s   c    s0     d |  i |  i |  i |  i |  i f Sd  S(   Ns   %s	%s	IN	%s	%s	%s(   s   selfs   f0s   f1s   f2s   f3s   f4(   s   self(    (    s	   ./Zone.pys   out s   c    s     |  i i |   d  S(   N(   s   selfs   parents   unlink(   s   self(    (    s	   ./Zone.pys   unlink s   (   s   __name__s
   __module__s   __init__s   getTypes   unlinks   getTtls   setTtls   out(    (    (    s	   ./Zone.pys   ZoneRec s   	s   Ac      sz    t  Z  e d  Z  d   Z  d   Z  d   Z  d   Z  d   Z  d   Z	  d   Z
  d	   Z RS(
   Nc    s)     t  i |  | | | | | |  d  S(   N(	   s   ZoneRecs   __init__s   selfs   f1s   f2s   f3s   f4s   f5s   parent(   s   selfs   f1s   f2s   f3s   f4s   f5s   parent(    (    s	   ./Zone.pys   __init__ s   c    s     |  i Sd  S(   N(   s   selfs   f0(   s   self(    (    s	   ./Zone.pys   getHost s   c    s     | |  _ d  S(   N(   s   hosts   selfs   f0(   s   selfs   host(    (    s	   ./Zone.pys   setHost s   c    s     |  i   Sd  S(   N(   s   selfs   getHost(   s   self(    (    s	   ./Zone.pys   getName s   c    s     |  i Sd  S(   N(   s   selfs   f3(   s   self(    (    s	   ./Zone.pys   getIp s   c    s     | |  _ d  S(   N(   s   ips   selfs   f3(   s   selfs   ip(    (    s	   ./Zone.pys   setIp s   c    s     t  |  d  S(   N(   s   testHosts   value(   s   selfs   value(    (    s	   ./Zone.pys   testHost s   c    s     t  |  d  S(   N(   s   testIps   value(   s   selfs   value(    (    s	   ./Zone.pys   testIp s   c    s    t  d  |  i   Sd  S(   Ns	   host '%s'(   s   _s   selfs   getHost(   s   self(    (    s	   ./Zone.pys   get_str s   (   s   __name__s
   __module__s   Nones   __init__s   getHosts   setHosts   getNames   getIps   setIps   testHosts   testIps   get_str(    (    (    s	   ./Zone.pys   A s   	s   PTRc      sz   t  Z e d  Z d   Z d   Z 
d   Z d   Z d   Z d   Z	 d   Z
 d	   Z RS(
   Nc    s)   t  i |  | | | | | |  d  S(   N(	   s   ZoneRecs   __init__s   selfs   f1s   f2s   f3s   f4s   f5s   parent(   s   selfs   f1s   f2s   f3s   f4s   f5s   parent(    (    s	   ./Zone.pys   __init__s   c    s   |  i Sd  S(   N(   s   selfs   f3(   s   self(    (    s	   ./Zone.pys   getHosts   c    s   	| |  _ d  S(   N(   s   hosts   selfs   f3(   s   selfs   host(    (    s	   ./Zone.pys   setHosts   c    s   
|  i   Sd  S(   N(   s   selfs   getHost(   s   self(    (    s	   ./Zone.pys   getName
s   c    s   |  i Sd  S(   N(   s   selfs   f0(   s   self(    (    s	   ./Zone.pys   getIps   c    s   | |  _ d  S(   N(   s   ips   selfs   f0(   s   selfs   ip(    (    s	   ./Zone.pys   setIps   c    s   t  |  d  S(   N(   s   testHosts   value(   s   selfs   value(    (    s	   ./Zone.pys   testHosts   c    s   t  |  d  S(   N(   s   testIps   value(   s   selfs   value(    (    s	   ./Zone.pys   testIps   c    s   t  d  |  i   Sd  S(   Ns	   host '%s'(   s   _s   selfs   getHost(   s   self(    (    s	   ./Zone.pys   get_strs   (   s   __name__s
   __module__s   Nones   __init__s   getHosts   setHosts   getNames   getIps   setIps   testHosts   testIps   get_str(    (    (    s	   ./Zone.pys   PTRs   	s   CNAMEc      sb   t  Z e d  Z d   Z d   Z d   Z !d   Z #d   Z %d   Z	 RS(   Nc    s)   t  i |  | | | | | |  d  S(   N(	   s   ZoneRecs   __init__s   selfs   f1s   f2s   f3s   f4s   f5s   parent(   s   selfs   f1s   f2s   f3s   f4s   f5s   parent(    (    s	   ./Zone.pys   __init__s   c    s   |  i Sd  S(   N(   s   selfs   f3(   s   self(    (    s	   ./Zone.pys   getHosts   c    s   | |  _ d  S(   N(   s   hosts   selfs   f3(   s   selfs   host(    (    s	   ./Zone.pys   setHosts   c    s    |  i   Sd  S(   N(   s   selfs   getHost(   s   self(    (    s	   ./Zone.pys   getNames   c    s   !"|  i Sd  S(   N(   s   selfs   f0(   s   self(    (    s	   ./Zone.pys   getAlias!s   c    s   #$| |  _ d  S(   N(   s   aliass   selfs   f0(   s   selfs   alias(    (    s	   ./Zone.pys   setAlias#s   c    s   %&t  |  d  S(   N(   s   testHosts   value(   s   selfs   value(    (    s	   ./Zone.pys	   testAlias%s   (
   s   __name__s
   __module__s   Nones   __init__s   getHosts   setHosts   getNames   getAliass   setAliass	   testAlias(    (    (    s	   ./Zone.pys   CNAMEs   	s   HINFOc      sb   (t  Z )e d  Z +d   Z -d   Z /d   Z 1d   Z 3d   Z 5d   Z	 RS(   Nc    s)   )*t  i |  | | | | | |  d  S(   N(	   s   ZoneRecs   __init__s   selfs   f1s   f2s   f3s   f4s   f5s   parent(   s   selfs   f1s   f2s   f3s   f4s   f5s   parent(    (    s	   ./Zone.pys   __init__)s   c    s   +,|  i Sd  S(   N(   s   selfs   f0(   s   self(    (    s	   ./Zone.pys   getHost+s   c    s   -.| |  _ d  S(   N(   s   hosts   selfs   f0(   s   selfs   host(    (    s	   ./Zone.pys   setHost-s   c    s   /0|  i   Sd  S(   N(   s   selfs   getHost(   s   self(    (    s	   ./Zone.pys   getName/s   c    s   12|  i Sd  S(   N(   s   selfs   f3(   s   self(    (    s	   ./Zone.pys   getAlias1s   c    s   34| |  _ d  S(   N(   s   aliass   selfs   f3(   s   selfs   alias(    (    s	   ./Zone.pys   setAlias3s   c    s   56t  |  d  S(   N(   s   testHosts   value(   s   selfs   value(    (    s	   ./Zone.pys	   testAlias5s   (
   s   __name__s
   __module__s   Nones   __init__s   getHosts   setHosts   getNames   getAliass   setAliass	   testAlias(    (    (    s	   ./Zone.pys   HINFO(s   	s   SRVc      s   8t  Z 9e d  Z RS(   Nc    s)   9:t  i |  | | | | | |  d  S(   N(	   s   ZoneRecs   __init__s   selfs   f1s   f2s   f3s   f4s   f5s   parent(   s   selfs   f1s   f2s   f3s   f4s   f5s   parent(    (    s	   ./Zone.pys   __init__9s   (   s   __name__s
   __module__s   Nones   __init__(    (    (    s	   ./Zone.pys   SRV8s   	s   MXc      sb   <t  Z =e d  Z ?d   Z Ad   Z Cd   Z Ed   Z Gd   Z Id   Z	 RS(   Nc    s)   =>t  i |  | | | | | |  d  S(   N(	   s   ZoneRecs   __init__s   selfs   f1s   f2s   f3s   f4s   f5s   parent(   s   selfs   f1s   f2s   f3s   f4s   f5s   parent(    (    s	   ./Zone.pys   __init__=s   c    s   ?@|  i Sd  S(   N(   s   selfs   f4(   s   self(    (    s	   ./Zone.pys	   getServer?s   c    s   AB| |  _ d  S(   N(   s   servers   selfs   f4(   s   selfs   server(    (    s	   ./Zone.pys	   setServerAs   c    s   CD| |  _ d  S(   N(   s   names   selfs   f0(   s   selfs   name(    (    s	   ./Zone.pys   setNameCs   c    s   EF|  i Sd  S(   N(   s   selfs   f0(   s   self(    (    s	   ./Zone.pys   getNameEs   c    s   GHt  |  i  Sd  S(   N(   s   ints   selfs   f3(   s   self(    (    s	   ./Zone.pys   getPriorityGs   c    s   IJt  |  |  _ d  S(   N(   s   strs   prioritys   selfs   f3(   s   selfs   priority(    (    s	   ./Zone.pys   setPriorityIs   (
   s   __name__s
   __module__s   Nones   __init__s	   getServers	   setServers   setNames   getNames   getPrioritys   setPriority(    (    (    s	   ./Zone.pys   MX<s   	s   NSc      sb   Lt  Z Me d  Z Od   Z Qd   Z Sd   Z Ud   Z Zd   Z \d   Z	 RS(   Nc    s)   MNt  i |  | | | | | |  d  S(   N(	   s   ZoneRecs   __init__s   selfs   f0s   f1s   f2s   f3s   f4s   parent(   s   selfs   f0s   f1s   f2s   f3s   f4s   parent(    (    s	   ./Zone.pys   __init__Ms   c    s!   OP|  i   i d  d Sd  S(   Ns   .i    (   s   selfs   getHosts   split(   s   self(    (    s	   ./Zone.pys   getShortHostOs   c    s   QR| |  _ d  S(   N(   s   hosts   selfs   f3(   s   selfs   host(    (    s	   ./Zone.pys   setHostQs   c    s   ST|  i   Sd  S(   N(   s   selfs   getShortHost(   s   self(    (    s	   ./Zone.pys   getNameSs   c    s/   UV|  i d j o Wd Sn Y|  i Sd  S(   Ns    s   @(   s   selfs   f3(   s   self(    (    s	   ./Zone.pys   getHostUs   c    s   Z[| |  _ d  S(   N(   s	   served_bys   selfs   f0(   s   selfs	   served_by(    (    s	   ./Zone.pys   setServedByZs   c    s   \]|  i Sd  S(   N(   s   selfs   f0(   s   self(    (    s	   ./Zone.pys   getServedBy\s   (
   s   __name__s
   __module__s   Nones   __init__s   getShortHosts   setHosts   getNames   getHosts   setServedBys   getServedBy(    (    (    s	   ./Zone.pys   NSLs   	s   Zonec      s  _t  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 d   Z  6d    Z! <d!   Z" ?d"   Z# Bd#   Z$ Hd$   Z% Kd%   Z& Qd&   Z' Td'   Z( Zd(   Z) cd)   Z* id*   Z+ td+   Z, RS(,   Nc    s!  `at  i |  | d d bt   |  _ c| |  _ d|  i   e|  i   fg  |  _ gg  |  _	 hg  } id } jt   |  _ kxk|  i   o|l|  i   i d  }	 m|	 d i   } n|  i   o| d d j o p|  i	 i |  qq n r| d d j o s| d |  _ tq n ud | j ov| i d  } w| d d	 j o x| d }
 n
 zd
 }
 {t |
 | | d | | d  |  _ |t } }| | d } ~g  } x| ot |  d j p | d d j o3 |  i   i   } |  i   |  i   n | d d j o t } Pn | d d j o | d } qn | i |  i | d   | d d d j o t } Pn | d } qW|  i i |  q n |  i  |  q q Wd  S(   Ns   commenttypes   ;s   @i    s   $ORIGINs   $TTLi   s   SOAs   INs    i   i   s   )s   (i(!   s   Confs   __init__s   selfs   filenames   SOAs   names   reads   rewinds   zoness   originss   currents   prev_vals   ZoneLists   zoneLists   findnextcodelines   getlines   splits   lines   vals   nextlines   appends   TTLs   indexs   is   pnss   FALSEs   dones   SOALists   lens   TRUEs	   translates   loads   add(   s   selfs   names   filenames   SOALists   vals   is   currents   dones   prev_vals   lines   pns(    (    s	   ./Zone.pys   __init__`sf   		 

	(		 '	
	
c    s	  | d d j o! t | d   d d d Sn | d d j o t | d   d d Sn | d d j o% t | d   d d d d Sn | d d j o t | d   d Sn | d d	 j o t | d   Sn t |  Sd  S(
   Nis   Di<   i   s   Hs   Wi   s   Ms   )(   s   vals   atoi(   s   selfs   val(    (    s	   ./Zone.pys	   translates   !%c    s   t  | t  o |  i i |  n t  | t  o |  i i |  n t  | t  o |  i i |  n t  | t  o |  i i |  n t  | t	  o |  i i |  n d  S(   N(
   s
   isinstances   recs   As   selfs   zoneLists   removes   NSs   MXs   PTRs   CNAME(   s   selfs   rec(    (    s	   ./Zone.pys   unlinks   c    s   |  i Sd  S(   N(   s   selfs   name(   s   self(    (    s	   ./Zone.pys   getNames   c    s0   |  i i d  } |  i | d j Sd  S(   Ns   .in-addr.arpai    (   s   selfs   filenames   splits   x(   s   selfs   x(    (    s	   ./Zone.pys	   isReverses   c    s   |  i   oy xo |  i   D]6 } | i   | j o t t d  |  n q# W|  i i	 t
 | d d | d |    n d  S(   Ns   %s already existss    s   PTR(   s   selfs	   isReverses
   getPTRLists   is   getIps   ips	   TestErrors   _s   zoneLists   appends   PTRs   name(   s   selfs   names   ips   i(    (    s	   ./Zone.pys   addPTRs    	c    s|   xo |  i   D]6 } | i   | j o t t d  |  n q W|  i i t	 | d d | d |    d  S(   Ns   %s already existss    s   A(   s   selfs   getALists   as   getNames   names	   TestErrors   _s   zoneLists   appends   As   ip(   s   selfs   names   ips   a(    (    s	   ./Zone.pys   addAs
    	c    s|   xo |  i   D]6 } | i   | j o t t d  |  n q W|  i i t	 | d d | | |    d  S(   Ns   %s already existss    s   MX(   s   selfs	   getMXLists   as   getNames   names	   TestErrors   _s   zoneLists   appends   MXs   prioritys   server(   s   selfs   names   prioritys   servers   a(    (    s	   ./Zone.pys   addMXs
    	c    s|   xo |  i   D]6 } | i   | j o t t d  |  n q W|  i i t	 | d d | d |    d  S(   Ns   %s already existss    s   CNAME(   s   selfs   getCNAMELists   as   getAliass   aliass	   TestErrors   _s   zoneLists   appends   CNAMEs   host(   s   selfs   aliass   hosts   a(    (    s	   ./Zone.pys   addCNAMEs
    	c    s   |  i   ok xK |  i   D]: } | i   | j o |  i | |  d  Sn q# Wt t	 d  |  nt xW |  i
   D]F } | i   | j o* | | g } |  i |  d  Sn q Wt t	 d  |  d  S(   Ns   %s does not exist(   s   selfs	   isReverses
   getPtrLists   is   getIps   ips   addPTRs   names	   TestErrors   _s   getALists   ns   getNames   vals   add(   s   selfs   names   ips   vals   is   n(    (    s	   ./Zone.pys   modifys    	 	c    s   |  i i |  d  S(   N(   s   selfs   SOAs	   setServers   server(   s   selfs   server(    (    s	   ./Zone.pys	   setServers   c    s   |  i i   Sd  S(   N(   s   selfs   SOAs	   getServer(   s   self(    (    s	   ./Zone.pys	   getServers   c    s   |  i i |  d  S(   N(   s   selfs   SOAs
   setContacts   contact(   s   selfs   contact(    (    s	   ./Zone.pys
   setContacts   c    s   |  i i   Sd  S(   N(   s   selfs   SOAs
   getContact(   s   self(    (    s	   ./Zone.pys
   getContacts   c    s   |  i Sd  S(   N(   s   selfs   SOA(   s   self(    (    s	   ./Zone.pys   getSOAs   c    s   |  i i   Sd  S(   N(   s   selfs   SOAs   getTTL(   s   self(    (    s	   ./Zone.pys   getTTLs   c    s   |  i |  d  S(   N(   s   selfs   setTTLs   ttl(   s   selfs   ttl(    (    s	   ./Zone.pys   setTTLs   c    s   |  i i   Sd  S(   N(   s   selfs   SOAs
   getRefresh(   s   self(    (    s	   ./Zone.pys
   getRefreshs   c    s   |  i i |  d  S(   N(   s   selfs   SOAs
   setRefreshs   refresh(   s   selfs   refresh(    (    s	   ./Zone.pys
   setRefreshs   c    s   |  i i   Sd  S(   N(   s   selfs   SOAs   getRetry(   s   self(    (    s	   ./Zone.pys   getRetrys   c    s   |  i i |  d  S(   N(   s   selfs   SOAs   setRetrys   retry(   s   selfs   retry(    (    s	   ./Zone.pys   setRetrys   c    s   |  i i   Sd  S(   N(   s   selfs   SOAs	   getExpire(   s   self(    (    s	   ./Zone.pys	   getExpires   c    s   |  i i |  d  S(   N(   s   selfs   SOAs	   setExpires   expire(   s   selfs   expire(    (    s	   ./Zone.pys	   setExpires   c    s    |  i i   Sd  S(   N(   s   selfs   SOAs	   getSerial(   s   self(    (    s	   ./Zone.pys	   getSerials   c    s   |  i i |  d  S(   N(   s   selfs   SOAs	   setSerials   i(   s   selfs   i(    (    s	   ./Zone.pys	   setSerials   c    s   |  i i   d  S(   N(   s   selfs   SOAs	   incSerial(   s   self(    (    s	   ./Zone.pys	   incSerials   c    s   |  i i d  Sd  S(   Ns   NS(   s   selfs   zoneLists   getList(   s   self(    (    s	   ./Zone.pys	   getNSLists   c    s/   	
|  i i t | d d | d |    d  S(   Ns    s   NS(   s   selfs   zoneLists   appends   NSs	   served_bys   host(   s   selfs   hosts	   served_by(    (    s	   ./Zone.pys   addNS	s   c    s   |  i Sd  S(   N(   s   selfs   NS(   s   selfs   val(    (    s	   ./Zone.pys   getNSs   c    s   |  i i d  Sd  S(   Ns   A(   s   selfs   zoneLists   getList(   s   self(    (    s	   ./Zone.pys   getALists   c    s  d } d } d } | d d j o6 | d } | d d j o | d } n n xC | D]8 } | d } | d j o | | }  Pn qr W!t |  d j o "| i d  n $d | j o. %t | | | d | d | d |   } n&d | j o. 't
 | | | d | d | d |   } na(d	 | j o. )t | | | d | d | d |   } n#*d
 | j o. +t | | | d | d | d |   } n ,d | j o. -t | | | d | d | d |   } n .d | j o. /t | | | d | d | d |   } ni 0d | j o. 1t | | | d | d | d |   } n+ 3t | | | d | d | d |   } 4|  i i |  d  S(   Ns    i    s   INi   i   s   Ai   s   MXs   PTRs   NSs   CNAMEs   HINFOs   SRV(   s   ttls   names   ctrs   vals   is   lens   appends   As   selfs   as   MXs   PTRs   NSs   CNAMEs   HINFOs   SRVs   ZoneRecs   zoneList(   s   selfs   vals   as   names   is   ctrs   ttl(    (    s	   ./Zone.pys   adds>   			
 	.......*c    sL   67x8 |  i   D7]' } 8| i   | j o 9| Sn q W:t Sd  S(   N(   s   selfs   getALists   is   getHosts   hosts   None(   s   selfs   hosts   i(    (    s	   ./Zone.pys   getA6s
    	c    s   <=|  i i d  Sd  S(   Ns   PTR(   s   selfs   zoneLists   getList(   s   self(    (    s	   ./Zone.pys
   getPTRList<s   c    s   ?@|  i i d  Sd  S(   Ns   MX(   s   selfs   zoneLists   getList(   s   self(    (    s	   ./Zone.pys	   getMXList?s   c    sL   BCx8 |  i   DC]' } D| i   | j o E| Sn q WFt Sd  S(   N(   s   selfs	   getMXLists   is   getNames   names   None(   s   selfs   names   i(    (    s	   ./Zone.pys   getMXBs
    	c    s   HI|  i i d  Sd  S(   Ns   CNAME(   s   selfs   zoneLists   getList(   s   self(    (    s	   ./Zone.pys   getCNAMEListHs   c    sR   KLx> |  i i d  DL]' } M| i   | j o N| Sn q WOt Sd  S(   Ns   CNAME(   s   selfs   zoneLists   getLists   cs   getHosts   vals   None(   s   selfs   vals   c(    (    s	   ./Zone.pys   getCNAMEKs
    	c    s   QR|  i i d  Sd  S(   Ns   SRV(   s   selfs   zoneLists   getList(   s   self(    (    s	   ./Zone.pys
   getSRVListQs   c    sI   TUx5 |  i DU]' } V| i   | j o W| Sn q WXt Sd  S(   N(   s   selfs   SRVs   cs
   getServices   vals   None(   s   selfs   vals   c(    (    s	   ./Zone.pys   getSRVTs
    	c    s   Z[|  i   \d |  i t i   f } ]t | d  } ^| i |  i	    _| i
   `t i | |  i  at i |  i | |  d  S(   Ns   %s.%ds   w(   s   selfs	   incSerials   filenames   oss   getpids   tmpFiles   opens   fds   writes   outs   closes   renames   chowns   uids   gid(   s   selfs   uids   gids   tmpFiles   fd(    (    s	   ./Zone.pys   saveZs   c    s"   cg|  i d |  i d  Sd  S(   Ns   ^[s   ]+(   s   selfs   findnextlines   commenttype(   s   self(    (    s	   ./Zone.pys   findnextcommentlinecs   c    s{   ij|  i   k|  i   ld } mxD m|  i   o3 n|  i   } od | | f } p|  i   q, Wq| Sd  S(   Ns    s   %s%s
(   s   selfs   reads   rewinds   rets   findnextcommentlines   getlines   vals   nextline(   s   selfs   vals   ret(    (    s	   ./Zone.pys   outCommentsis   	 c    s   tu|  i   } vx0 |  i Dv]" } wd | t | d  f } q Wxd | |  i   f } yd | |  i i   f } zx3 |  i	 i
   Dz] } {d | | i   f } q W|| Sd  S(   Ns   %s%s
s    s
   %s$TTL %s
(   s   selfs   outCommentss   rets   originss   origins   joins   getTTLs   SOAs   outs   zoneLists   getLists   i(   s   selfs   origins   is   ret(    (    s	   ./Zone.pys   outts    	  	(-   s   __name__s
   __module__s   __init__s	   translates   unlinks   getNames	   isReverses   addPTRs   addAs   addMXs   addCNAMEs   modifys	   setServers	   getServers
   setContacts
   getContacts   getSOAs   getTTLs   setTTLs
   getRefreshs
   setRefreshs   getRetrys   setRetrys	   getExpires	   setExpires	   getSerials	   setSerials	   incSerials	   getNSLists   addNSs   getNSs   getALists   adds   getAs
   getPTRLists	   getMXLists   getMXs   getCNAMELists   getCNAMEs
   getSRVLists   getSRVs   saves   findnextcommentlines   outCommentss   out(    (    (    s	   ./Zone.pys   Zone_sV   	5$	c      s   ~t  d  GHd  S(   Nsf   Zone - Python named zone commandline tool

Usage: zone [-a|-m|-d|-l] [-h] [-i <IP> ] [-n <Name> ] name(   s   _(    (    (    s	   ./Zone.pys   Usage~s   s   __main__i    s(   Please restart %s with root permissions!i
   s   BadUsagec      s   t  Z RS(   N(   s   __name__s
   __module__(    (    (    s	   ./Zone.pys   BadUsages   	 is   amdlhi:n:t:s   adds   modifys   deletes   helps   ip=s   name=s   lists   types   -as   --adds   -ms   --modifys   -ds   --deletes   -is   --ips   -ps
   --protocols   -ns   --names   -ts   --types   -ls   --lists   -hs   --helps	   Error: %s(M   s   oss   syss   gettexts   PROGNAMEs   bindtextdomains
   textdomains   installs   IOErrors   __builtin__s   unicodes   __dict__s   Confs   TRUEs   FALSEs   res   compiles   hname_res   ip_res   revip_res   testNames	   Exceptions	   TestErrors   testServedBys   testFiles   testHosts   testIps
   checkIpNums   checkRevIpNums   checkTTLs   SOAs   ZoneLists   ZoneRecs   As   PTRs   CNAMEs   HINFOs   SRVs   MXs   NSs   Zones   Usages   __name__s   signals   getopts   getuids   _s   argvs   exits   lens   cmdlines   SIGINTs   SIG_DFLs   BadUsages   zoneNames   Nones   ips   names   types   adds   modifys   deletes   paths   basenames   prognames   optss   argss   opts   vals   protocols   zs   outs   errors   saves   founds   getOpts
   ValueErrors   e(3   s   opts   protocols   Zones   ips   PROGNAMEs   __builtin__s   cmdlines   CNAMEs   revip_res   Usages   HINFOs   TRUEs   testFiles   SOAs   vals   gettexts   adds   hname_res   ip_res   getopts   NSs   types   PTRs   ZoneLists   As   testIps   argss   checkTTLs   es
   checkIpNums   modifys   prognames	   TestErrors   syss   SRVs   testHosts   zoneNames   FALSEs   names   checkRevIpNums   signals   testServedBys   testNames   BadUsages   ZoneRecs   founds   zs   oss   MXs   optss   delete(    (    s	   ./Zone.pys   ? s   	
	
	^  
						6
 

-



	