
EUc           @   s[  d  d l  j Z d  d l m Z d  d l m Z d  d l m Z d  d l m Z d  d l m	 Z	 d  d l
 Z
 d  d l m Z m Z m Z m Z d  d l m Z m 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 e j) f d      YZ* d! e j) f d"     YZ+ d# e j) f d$     YZ, d% e j) f d&     YZ- d' e j) f d(     YZ. d) e j) f d*     YZ/ d+ e j) f d,     YZ0 d- e j) f d.     YZ1 d/ e j) f d0     YZ2 d1   Z3 d2   Z4 d3   Z5 d4 e f d5     YZ6 d6 e f d7     YZ7 d8 e f d9     YZ8 d: e f d;     YZ9 d< e f d=     YZ: d> e f d?     YZ; d@ e f dA     YZ< dB e f dC     YZ= dD e f dE     YZ> dF e f dG     YZ? dH e f dI     YZ@ d S(J   iN(   t   pack(   t	   inet_ntoa(   t	   inet_ntop(   t   AF_INET(   t   AF_INET6(   t   Commandt   CommandErrort   Optiont   SuperCommand(   t   dnspt	   dnsserverc         C   s>   |  j    d k r d }  n  d |  } t j | | |  } | S(   Nt	   localhosts	   127.0.0.1s   ncacn_ip_tcp:%s[sign](   t   lowerR
   (   t   servert   lpt   credst   binding_strt   dns_conn(    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyt   dns_connect$   s
    	
c         C   s8   |  d k r d } n |  d k r* d } n
 d |  } | S(   Ni    t   FALSEi   t   TRUEs   UNKNOWN (0x%x)(    (   t   flagt   ret(    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyt   bool_string,   s    		
c         C   sM   d  } x- | D]% } | t |  |  k r | } Pq q W| sI d | } n  | S(   Ns   UNKNOWN (0x%x)(   t   Nonet   getattr(   t   modulet	   enum_defst   valueR   t   e(    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyt   enum_string6   s    c         C   sN   d } x2 | D]* } | t  |  |  @r | d | 7} q q W| sJ d } n  | S(   Nt    s   %s t   NONE(   R   (   R   t   bitmap_defsR   R   t   b(    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyt   bitmap_stringA   s    	c         C   s"   d d d d g } t  t | |   S(   Nt   DNS_BOOT_METHOD_UNINITIALIZEDt   DNS_BOOT_METHOD_FILEt   DNS_BOOT_METHOD_REGISTRYt   DNS_BOOT_METHOD_DIRECTORY(   R   R
   (   t   boot_methodR   (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyt   boot_method_stringK   s    c         C   s"   d d d d g } t  t | |   S(   Nt   DNS_ALLOW_RFC_NAMES_ONLYt   DNS_ALLOW_NONRFC_NAMESt   DNS_ALLOW_MULTIBYTE_NAMESt   DNS_ALLOW_ALL_NAMES(   R   R
   (   t
   check_flagR   (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyt   name_check_flag_stringQ   s    c         C   s(   d d d d d d g } t  t | |   S(   Nt   DNS_ZONE_TYPE_CACHEt   DNS_ZONE_TYPE_PRIMARYt   DNS_ZONE_TYPE_SECONDARYt   DNS_ZONE_TYPE_STUBt   DNS_ZONE_TYPE_FORWARDERt   DNS_ZONE_TYPE_SECONDARY_CACHE(   R   R	   (   t	   zone_typeR   (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyt   zone_type_stringW   s    c         C   s   d d d g } t  t | |   S(   Nt   DNS_ZONE_UPDATE_OFFt   DNS_ZONE_UPDATE_UNSECUREt   DNS_ZONE_UPDATE_SECURE(   R   R	   (   t   zone_updateR   (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyt   zone_update_string^   s    	c         C   s"   d d d d g } t  t | |   S(   Nt   DNS_ZONE_SECSECURE_NO_SECURITYt   DNS_ZONE_SECSECURE_NS_ONLYt   DNS_ZONE_SECSECURE_LIST_ONLYt   DNS_ZONE_SECSECURE_NO_XFER(   R   R
   (   t   securityR   (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyt   zone_secondary_security_stringd   s    c         C   s   d d d g } t  t | |   S(   Nt   DNS_ZONE_NOTIFY_OFFt   DNS_ZONE_NOTIFY_ALL_SECONDARIESt   DNS_ZONE_NOTIFY_LIST_ONLY(   R   R
   (   t   notify_levelR   (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyt   zone_notify_level_stringj   s    	c         C   s(   d d d d d d g } t  t | |   S(   Nt   DNS_DP_AUTOCREATEDt   DNS_DP_LEGACYt   DNS_DP_DOMAIN_DEFAULTt   DNS_DP_FOREST_DEFAULTt   DNS_DP_ENLISTEDt   DNS_DP_DELETED(   R#   R
   (   t   dp_flagsR!   (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyt   dp_flags_stringp   s    	c      	   C   s1   d d d d d d d d d	 g	 } t  t | |   S(
   Nt   DNS_RPC_ZONE_PAUSEDt   DNS_RPC_ZONE_SHUTDOWNt   DNS_RPC_ZONE_REVERSEt   DNS_RPC_ZONE_AUTOCREATEDt   DNS_RPC_ZONE_DSINTEGRATEDt   DNS_RPC_ZONE_AGINGt   DNS_RPC_ZONE_UPDATE_UNSECUREt   DNS_RPC_ZONE_UPDATE_SECUREt   DNS_RPC_ZONE_READONLY(   R#   R
   (   t   flagsR!   (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyt   zone_flags_stringv   s    	c         C   sZ   g  } |  s | SxC t  |  j  D]2 } t t t d |  j |   } | j |  q  W| S(   Nt   I(   t   xranget	   AddrCountR   R   R    t	   AddrArrayt   append(   t   arrayR   t   it   addr(    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyt   ip4_array_string   s    c         C   s  g  } |  s | Sx t  |  j  D] } |  j | j d d k r d j g  |  j | j D] } t |  ^ qW  d d !} t t |  } nk |  j | j d d k r d j g  |  j | j D] } t |  ^ q  d d !} t t |  } n d } | j	 |  q  W| S(	   Ni    i   R   i   i   i   i   t   UNKNOWN(
   R\   R]   R^   t   MaxSat   joint   chrR   R   R   R_   (   R`   R   Ra   R"   t   xRb   (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyt   dns_addr_array_string   s    99c         C   s  |  j    } | d k r$ t j } n | d k r< t j } n | d k rT t j } n | d k rl t j } n | d k r t j } n | d k r t j } np | d k r t j } nX | d k r t j	 } n@ | d	 k r t j
 } n( | d
 k r t j } n t d |    | S(   Nt   At   AAAAt   PTRt   NSt   CNAMEt   SOAt   MXt   SRVt   TXTt   ALLs   Unknown type of DNS record %s(   t   upperR	   t
   DNS_TYPE_At   DNS_TYPE_AAAAt   DNS_TYPE_PTRt   DNS_TYPE_NSt   DNS_TYPE_CNAMEt   DNS_TYPE_SOAt   DNS_TYPE_MXt   DNS_TYPE_SRVt   DNS_TYPE_TXTt   DNS_TYPE_ALLR   (   t   rec_typet   rtypet   record_type(    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyt   dns_type_flag   s.    c         C   sh   |  j    } | d k r$ t j } n@ | d k r< t j } n( | d k rT t j } n t d |    | S(   Nt   W2Kt   DOTNETt   LONGHORNs   Unknown client version %s(   Rt   R
   t   DNS_CLIENT_VERSION_W2Kt   DNS_CLIENT_VERSION_DOTNETt   DNS_CLIENT_VERSION_LONGHORNR   (   t   cli_versiont   versiont   client_version(    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyt   dns_client_version   s    c         C   s  |  j  d | j  |  j  d t | j   |  j  d t | j   |  j  d t | j   |  j  d t | j   |  j  d | j  |  j  d | j	  | t
 j k r|  j  d t | j   |  j  d	 t | j   |  j  d
 t | j   nN |  j  d t | j   |  j  d	 t | j   |  j  d
 t | j   |  j  d | j  |  j  d | j  |  j  d | j  |  j  d | j  |  j  d t | j   |  j  d | j  |  j  d | j  |  j  d | j  |  j  d | j  |  j  d | j  |  j  d | j  |  j  d | j  |  j  d | j  |  j  d t | j   |  j  d t | j    |  j  d t | j!   |  j  d t | j"   |  j  d t | j#   |  j  d t | j$   |  j  d t | j%   |  j  d t | j&   |  j  d  t | j'   |  j  d! t | j(   |  j  d" t | j)   |  j  d# t | j*   |  j  d$ t | j+   | t
 j, k r|  j  d% | j-  |  j  d& t | j.   |  j  d' | j/  |  j  d( | j0  |  j  d) | j1  |  j  d* | j2  |  j  d+ | j3  |  j  d, | j4  |  j  d- | j5  |  j  d. | j6  |  j  d/ | j7  |  j  d0 | j8  |  j  d1 | j9  |  j  d2 | j:  n  | t
 j k r
|  j  d3 t | j;   n  d  S(4   Ns%     dwVersion                   : 0x%x
s#     fBootMethod                 : %s
s#     fAdminConfigured            : %s
s#     fAllowUpdate                : %s
s#     fDsAvailable                : %s
s#     pszServerName               : %s
s#     pszDsContainer              : %s
s#     aipServerAddrs              : %s
s#     aipListenAddrs              : %s
s#     aipForwarders               : %s
s#     dwLogLevel                  : %d
s#     dwDebugLevel                : %d
s#     dwForwardTimeout            : %d
s%     dwRpcPrototol               : 0x%x
s#     dwNameCheckFlag             : %s
s#     cAddressAnswerLimit         : %d
s#     dwRecursionRetry            : %d
s#     dwRecursionTimeout          : %d
s#     dwMaxCacheTtl               : %d
s#     dwDsPollingInterval         : %d
s#     dwScavengingInterval        : %d
s#     dwDefaultRefreshInterval    : %d
s#     dwDefaultNoRefreshInterval  : %d
s#     fAutoReverseZones           : %s
s#     fAutoCacheUpdate            : %s
s#     fRecurseAfterForwarding     : %s
s#     fForwardDelegations         : %s
s#     fNoRecursion                : %s
s#     fSecureResponses            : %s
s#     fRoundRobin                 : %s
s#     fLocalNetPriority           : %s
s#     fBindSecondaries            : %s
s#     fWriteAuthorityNs           : %s
s#     fStrictFileParsing          : %s
s#     fLooseWildcarding           : %s
s#     fDefaultAgingState          : %s
s%     dwRpcStructureVersion       : 0x%x
s#     aipLogFilter                : %s
s#     pwszLogFilePath             : %s
s#     pszDomainName               : %s
s#     pszForestName               : %s
s#     pszDomainDirectoryPartition : %s
s#     pszForestDirectoryPartition : %s
s%     dwLocalNetPriorityNetMask   : 0x%x
s#     dwLastScavengeTime          : %d
s#     dwEventLogLevel             : %d
s#     dwLogFileMaxSize            : %d
s#     dwDsForestVersion           : %d
s#     dwDsDomainVersion           : %d
s#     dwDsDsaVersion              : %d
s#     fReadOnlyDC                 : %s
(<   t   writet	   dwVersionR)   t   fBootMethodR   t   fAdminConfiguredt   fAllowUpdatet   fDsAvailablet   pszServerNamet   pszDsContainerR
   t   DNSSRV_TYPEID_SERVER_INFORc   t   aipServerAddrst   aipListenAddrst   aipForwardersRi   t
   dwLogLevelt   dwDebugLevelt   dwForwardTimeoutt   dwRpcProtocolR/   t   dwNameCheckFlagt   cAddressAnswerLimitt   dwRecursionRetryt   dwRecursionTimeoutt   dwMaxCacheTtlt   dwDsPollingIntervalt   dwScavengingIntervalt   dwDefaultRefreshIntervalt   dwDefaultNoRefreshIntervalt   fAutoReverseZonest   fAutoCacheUpdatet   fRecurseAfterForwardingt   fForwardDelegationst   fNoRecursiont   fSecureResponsest   fRoundRobint   fLocalNetPriorityt   fBindSecondariest   fWriteAuthorityNst   fStrictFileParsingt   fLooseWildcardingt   fDefaultAgingStatet   DNSSRV_TYPEID_SERVER_INFO_W2Kt   dwRpcStructureVersiont   aipLogFiltert   pwszLogFilePatht   pszDomainNamet   pszForestNamet   pszDomainDirectoryPartitiont   pszForestDirectoryPartitiont   dwLocalNetPriorityNetMaskt   dwLastScavengeTimet   dwEventLogLevelt   dwLogFileMaxSizet   dwDsForestVersiont   dwDsDomainVersiont   dwDsDsaVersiont   fReadOnlyDC(   t   outft   typeidt
   serverinfo(    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyt   print_serverinfo   s~    						c         C   s,  |  j  d | j  |  j  d t | j   |  j  d t | j   |  j  d t | j   |  j  d t | j   |  j  d t | j	   |  j  d t | j
   |  j  d t | j   |  j  d	 | j  | t j k r
|  j  d
 t | j   n |  j  d
 t | j   |  j  d t | j   |  j  d t | j   | t j k r|  j  d t | j   |  j  d t | j   n4 |  j  d t | j   |  j  d t | j   |  j  d t | j   |  j  d t | j   |  j  d t | j   |  j  d | j  |  j  d | j  |  j  d | j  | t j k r|  j  d t | j   n |  j  d t | j   | t j k r|  j  d | j   |  j  d | j!  |  j  d | j"  | t j k r|  j  d t | j#   n |  j  d t | j#   |  j  d t$ | j%   |  j  d | j&  |  j  d | j'  |  j  d | j(  |  j  d | j)  n  | t j k r(|  j  d t | j*   |  j  d  t | j+   |  j  d! t | j,   |  j  d" | j-  |  j  d# | j.  n  d  S($   Ns#     pszZoneName                 : %s
s#     dwZoneType                  : %s
s#     fReverse                    : %s
s#     fAllowUpdate                : %s
s#     fPaused                     : %s
s#     fShutdown                   : %s
s#     fAutoCreated                : %s
s#     fUseDatabase                : %s
s#     pszDataFile                 : %s
s#     aipMasters                  : %s
s#     fSecureSecondaries          : %s
s#     fNotifyLevel                : %s
s#     aipSecondaries              : %s
s#     aipNotify                   : %s
s#     fUseWins                    : %s
s#     fUseNbstat                  : %s
s#     fAging                      : %s
s#     dwNoRefreshInterval         : %d
s#     dwRefreshInterval           : %d
s#     dwAvailForScavengeTime      : %d
s#     aipScavengeServers          : %s
s%     dwRpcStructureVersion       : 0x%x
s#     dwForwarderTimeout          : %d
s#     fForwarderSlave             : %d
s#     aipLocalMasters             : %s
s#     dwDpFlags                   : %s
s#     pszDpFqdn                   : %s
s#     pwszZoneDn                  : %s
s#     dwLastSuccessfulSoaCheck    : %d
s#     dwLastSuccessfulXfr         : %d
s#     fQueuedForBackgroundLoad    : %s
s#     fBackgroundLoadInProgress   : %s
s#     fReadOnlyZone               : %s
s#     dwLastXfrAttempt            : %d
s#     dwLastXfrResult             : %d
(/   R   t   pszZoneNameR7   t
   dwZoneTypeR   t   fReverseR<   R   t   fPausedt	   fShutdownt   fAutoCreatedt   fUseDatabaset   pszDataFileR
   t   DNSSRV_TYPEID_ZONE_INFORc   t
   aipMastersRi   RB   t   fSecureSecondariesRG   t   fNotifyLevelt   aipSecondariest	   aipNotifyt   fUseWinst
   fUseNbstatt   fAgingt   dwNoRefreshIntervalt   dwRefreshIntervalt   dwAvailForScavengeTimet   aipScavengeServerst   DNSSRV_TYPEID_ZONE_INFO_W2KR   t   dwForwarderTimeoutt   fForwarderSlavet   aipLocalMastersRO   t	   dwDpFlagst	   pszDpFqdnt
   pwszZoneDnt   dwLastSuccessfulSoaCheckt   dwLastSuccessfulXfrt   fQueuedForBackgroundLoadt   fBackgroundLoadInProgresst   fReadOnlyZonet   dwLastXfrAttemptt   dwLastXfrResult(   R   R   t   zoneinfo(    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyt   print_zoneinfo
  sp    										c         C   s   |  j  d | j  |  j  d t | j   |  j  d t | j   |  j  d | j  | t j k r |  j  d t	 | j
   |  j  d | j  n  d  S(   Ns#     pszZoneName                 : %s
s#     Flags                       : %s
s#     ZoneType                    : %s
s#     Version                     : %s
s#     dwDpFlags                   : %s
s#     pszDpFqdn                   : %s
(   R   R   RZ   t   FlagsR7   t   ZoneTypet   VersionR
   t   DNSSRV_TYPEID_ZONE_W2KRO   R   R   (   R   R   t   zone(    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyt
   print_zoneK  s    c         C   sI   |  j  d | j  x. | j D]# } |  j  d  t |  | |  q Wd  S(   Ns     %d zone(s) found
s   
(   R   t   dwZoneCountt	   ZoneArrayR   (   R   R   t   zonesR   (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyt   print_enumzonesV  s    c         C   s  | j  t j k r" d | j } n| j  t j k rD d | j } n| j  t j k ri d | j j } n|| j  t j k r d | j j } nW| j  t j k r d | j j } n2| j  t j	 k rd | j j
 | j j | j j | j j | j j | j j j | j j j f } n | j  t j k rKd | j j j | j j f } n | j  t j k rd | j j j | j j | j j | j j f } nT | j  t j k rg  | j j D] } d	 | j ^ q} d
 d j |  } n d } |  j d | | j | j | j f  d  S(   Ns   A: %ss   AAAA: %ss   PTR: %ss   NS: %ss	   CNAME: %ssK   SOA: serial=%d, refresh=%d, retry=%d, expire=%d, minttl=%d, ns=%s, email=%ss   MX: %s (%d)s   SRV: %s (%d, %d, %d)s   "%s"s   TXT: %st   ,s	   Unknown: s%       %s (flags=%x, serial=%d, ttl=%d)
(   t   wTypeR	   Ru   t   dataRv   Rw   t   strRx   Ry   Rz   t
   dwSerialNot	   dwRefresht   dwRetryt   dwExpiret   dwMinimumTtlt   NamePrimaryServert   ZoneAdministratorEmailR{   t   nameExchanget   wPreferenceR|   t
   nameTargett   wPortt	   wPriorityt   wWeightR}   Rf   R   t   dwFlagst   dwSerialt   dwTtlSeconds(   R   t   rect   mesgt   namet   slist(    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyt   print_dns_record]  s<    					"&	c         C   s_   xX | j  D]M } |  j d | j j | j | j f  x | j D] } t |  |  q@ Wq
 Wd  S(   Ns#     Name=%s, Records=%d, Children=%d
(   R
  R   t   dnsNodeNameR   t   wRecordCountt   dwChildCountt   recordsR  (   R   R  R
  t   dns_rec(    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyt   print_dnsrecords  s    		t   ARecordc           B   s    e  Z d  d e j d d  Z RS(   i   i  i    c         C   sX   t  t |   j   t j |  _ | | B|  _ | |  _ | |  _ | |  _	 |  j	 |  _
 d  S(   N(   t   superR  t   __init__R	   Ru   R   R  R  R	  t   _ip_addrR   (   t   selft   ip_addrt   serialt   ttlt   rankt	   node_flag(    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR    s    		
(   t   __name__t
   __module__R	   t   DNS_RANK_ZONER  (    (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR    s   t
   AAAARecordc           B   s    e  Z d  d e j d d  Z RS(   i   i  i    c         C   sX   t  t |   j   t j |  _ | | B|  _ | |  _ | |  _ | |  _	 |  j	 |  _
 d  S(   N(   R  R"  R  R	   Rv   R   R  R  R	  t	   _ip6_addrR   (   R  t   ip6_addrR  R  R  R  (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR    s    		
(   R  R   R	   R!  R  (    (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR"    s   t	   PTRRecordc           B   s    e  Z d  d e j d d  Z RS(   i   i  i    c         C   s|   t  t |   j   t j |  _ | | B|  _ | |  _ | |  _ | |  _	 t
 j   } |  j	 | _ t |  | _ | |  _ d  S(   N(   R  R%  R  R	   Rw   R   R  R  R	  t   _ptrR
   t   DNS_RPC_NAMER   t   lenR   (   R  t   ptrR  R  R  R  t   ptr_name(    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR    s    		
(   R  R   R	   R!  R  (    (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR%    s   t   CNameRecordc           B   s    e  Z d  d e j d d  Z RS(   i   i  i    c         C   s|   t  t |   j   t j |  _ | | B|  _ | |  _ | |  _ | |  _	 t
 j   } |  j	 | _ t |  | _ | |  _ d  S(   N(   R  R+  R  R	   Ry   R   R  R  R	  t   _cnameR
   R'  R   R(  R   (   R  t   cnameR  R  R  R  t
   cname_name(    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR    s    		
(   R  R   R	   R!  R  (    (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR+    s   t   NSRecordc           B   s    e  Z d  d e j d d  Z RS(   i   i  i    c         C   s|   t  t |   j   t j |  _ | | B|  _ | |  _ | |  _ | |  _	 t
 j   } |  j	 | _ t |  | _ | |  _ d  S(   N(   R  R/  R  R	   Rx   R   R  R  R	  t   _dns_serverR
   R'  R   R(  R   (   R  t
   dns_serverR  R  R  R  t   ns(    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR    s    		
(   R  R   R	   R!  R  (    (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR/    s   t   MXRecordc           B   s    e  Z d  d e j d d  Z RS(   i   i  i    c         C   s   t  t |   j   t j |  _ | | B|  _ | |  _ | |  _ | |  _	 t
 j   } | | _ |  j	 | j _ t |  | j _ | |  _ d  S(   N(   R  R3  R  R	   R{   R   R  R  R	  t   _mail_serverR
   t   DNS_RPC_RECORD_NAME_PREFERENCER  R  R   R(  R   (   R  t   mail_servert
   preferenceR  R  R  R  t   mx(    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR    s    		
	(   R  R   R	   R!  R  (    (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR3    s   t	   SOARecordc        	   B   s/   e  Z d  d d d d d e j e j d  Z RS(   i   i  iX  iQ i  c         C   s   t  t |   j   t j |  _ |	 |
 B|  _ | |  _ | |  _ | |  _	 | |  _
 t j   } | | _ | | _ | | _ | | _ | | _ |  j	 | j _ t |  | j _ |  j
 | j _ t |  | j _ | |  _ d  S(   N(   R  R9  R  R	   Rz   R   R  R  R	  t   _mnamet   _rnameR
   t   DNS_RPC_RECORD_SOAR   R   R   R   R   R   R   R(  R   R   (   R  t   mnamet   rnameR  t   refresht   retryt   expiret   minimumR  R  R  t   soa(    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR    s$    		

					(   R  R   R	   R!  t   DNS_RPC_FLAG_AUTH_ZONE_ROOTR  (    (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR9    s   	t	   SRVRecordc           B   s&   e  Z d  d d d e j d  d  Z RS(   i    id   i   i  c	   
      C   s   t  t |   j   t j |  _ | | B|  _ | |  _ | |  _ | |  _	 t
 j   }	 | |	 _ | |	 _ | |	 _ |  j	 |	 j _ t |  |	 j _ |	 |  _ d  S(   N(   R  RE  R  R	   R|   R   R  R  R	  t   _targetR
   t   DNS_RPC_RECORD_SRVR  R  R  R  R   R(  R   (
   R  t   targett   portt   priorityt   weightR  R  R  R  t   srv(    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR    s    		
			(   R  R   R	   R!  R  (    (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyRE    s   t	   TXTRecordc           B   s    e  Z d  d e j d d  Z RS(   i   i  i    c   
      C   s   t  t |   j   t j |  _ | | B|  _ | |  _ | |  _ g  |  _	 x | D] } |  j	 j
 |  qN Wg  } xB |  j	 D]7 } t j   } | | _ t |  | _ | j
 |  qy Wt j   }	 t |  |	 _ | |	 _ |	 |  _ d  S(   N(   R  RM  R  R	   R}   R   R  R  R	  t   _slistR_   R
   R'  R   R(  t   DNS_RPC_RECORD_STRINGt   countR   (
   R  R  R  R  R  R  t   st   namesR  t   txt(    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR    s$    					(   R  R   R	   R!  R  (    (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyRM    s   c         C   s  |  t  j k r t |  } n|  t  j k r< t |  } nh|  t  j k rZ t |  } nJ|  t  j k rx t |  } n,|  t  j	 k r t
 |  } n|  t  j k r| j d  } t |  d k r t d   n  | d } t | d  } t | |  } n|  t  j k r| j d  } t |  d k r@t d   n  | d } t | d  } t | d  } t | d  }	 t | | d	 | d
 |	 } n|  t  j k rk| j d  } t |  d k rt d   n  | d }
 | d } t | d  } t | d  } t | d  } t | d  } t | d  } t |
 | d | d | d | d | d | } n9 |  t  j k rt j |  } t |  } n t d   | S(   Nt    i   s2   Data requires 2 elements - mail_server, preferencei    i   i   s9   Data requires 4 elements - server, port, priority, weighti   RJ  RK  i   sX   Data requires 7 elements - nameserver, email, serial, refresh, retry, expire, minimumttli   i   R  R?  R@  RA  RB  s   Unsupported record type(   R	   Ru   R  Rv   R"  Rw   R%  Ry   R+  Rx   R/  R{   t   splitR(  R   t   intR3  R|   RE  Rz   R9  R}   t   shlexRM  (   R   R   R
  t   tmpR6  R7  R   RI  RJ  RK  t
   nameservert   emailR  R?  R@  RA  RB  R  (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyt   data_to_dns_record-  sX    



c         C   s.   |  j  j d  j   | j  j d  j   k S(   Nt   .(   R   t   rstripR   (   t   n1t   n2(    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyt   dns_name_equal_  s    c         C   s  t  | |  } t j } y7 |  j t j d | | | d  | | d  d  
 \ } }	 Wn t k
 re }
 d  SX|	 s| |	 j d k r d  Sd  } x>|	 j d j	 D],} | j
 | k r q n  t } | t j k r | j | j k rt } qn| t j k r| j | j k rt } qn| t j k rBt | j | j  rt } qnq| t j k rrt | j | j  rt } qnA| t j k rt | j | j  rt } qn| t j k rt | j j | j j  r| j j | j j k rt } qn| t j k rn| j j | j j k r| j j | j j k r| j j | j j k rt | j j | j j  rt } qnE| t j k r7| j j | j j k r| j j | j j k r| j j  | j j  k r| j j! | j j! k r| j j" | j j" k rt | j j# | j j#  rt | j j$ | j j$  rt } qn| | t j% k r| j j | j j k rt } xI t& | j j  D]2 } | o| j j' | j' | j j' | j' k } qwWqn  | r | } Pq q W| S(   Ni    ((   R[  R
   t   DNS_RPC_VIEW_AUTHORITY_DATAt   DnssrvEnumRecords2R   R   t   RuntimeErrorRP  R
  R  R   t   FalseR	   Ru   R   t   TrueRv   Rw   R`  Ry   Rx   R{   R  R  R|   R  R  R  R  Rz   R   R   R   R   R   R   R   R}   R\   R   (   R   R   R   R  R   R   t   urect   select_flagst   buflent   resR   t	   rec_matchR
  t   foundRa   (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyt   dns_record_matchd  sz    	0t   cmd_serverinfoc           B   s   e  Z d  Z d Z d g Z i e j d 6e j d 6e j d 6Z	 e
 d d d d	 d
 d d d d d d
 g d d g Z d d d d  Z RS(   s   Query for Server information.s   %prog <server> [options]R   t	   sambaoptst   versionoptst   credoptss   --client-versiont   helps   Client Versiont   defaultt   longhornt   metavars   w2k|dotnet|longhornt   choicest   w2kt   dotnett   destt   cli_verc   
      C   s   | j    |  _ | j |  j  |  _ t | |  j |  j  } t |  } | j | d | d  d  \ } }	 t |  j	 | |	  d  S(   Ni    t
   ServerInfo(
   t   get_loadparmR   t   get_credentialsR   R   R   t   DnssrvQuery2R   R   R   (
   R  R   Ry  Rn  Rp  Ro  R   R   R   Ri  (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyt   run  s    N(   R  R   t   __doc__t   synopsist
   takes_argst   optionst   SambaOptionst   VersionOptionst   CredentialsOptionst   takes_optiongroupsR   t   takes_optionsR   R~  (    (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyRm    s   	

t   cmd_zoneinfoc           B   s   e  Z d  Z d Z d d g Z i e j d 6e j d 6e j d 6Z	 e
 d d d	 d
 d d d d d d d g d d g Z d d d d  Z RS(   s   Query for zone information.s   %prog <server> <zone> [options]R   R   Rn  Ro  Rp  s   --client-versionRq  s   Client VersionRr  Rs  Rt  s   w2k|dotnet|longhornRu  Rv  Rw  Rx  Ry  c         C   s   | j    |  _ | j |  j  |  _ t | |  j |  j  } t |  } | j | d | | d  \ }	 }
 t |  j |	 |
  d  S(   Ni    t   ZoneInfo(	   R{  R   R|  R   R   R   R}  R   R   (   R  R   R   Ry  Rn  Rp  Ro  R   R   R   Ri  (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR~    s    N(   R  R   R  R  R  R  R  R  R  R  R   R  R   R~  (    (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR    s   

t   cmd_zonelistc           B   sy  e  Z d  Z d Z d g Z i e j d 6e j d 6e j d 6Z	 e
 d d d d	 d
 d d d d d d
 g d d e
 d d d d d d d e
 d d d d d d d e
 d d d d d d d e
 d d d d d d d e
 d  d d! d d d d" e
 d# d d$ d d d d% e
 d& d d' d d d d( e
 d) d d* d d d d+ g	 Z e e e e e e e e d- d- d- d,  Z RS(.   s   Query for zones.s   %prog <server> [options]R   Rn  Ro  Rp  s   --client-versionRq  s   Client VersionRr  Rs  Rt  s   w2k|dotnet|longhornRu  Rv  Rw  Rx  Ry  s	   --primarys   List primary zones (default)t   actiont
   store_truet   primarys   --secondarys   List secondary zonest	   secondarys   --caches   List cached zonest   caches   --autos    List automatically created zonest   autos	   --forwards   List forward zonest   forwards	   --reverses   List reverse zonest   reverses   --dss   List directory integrated zonest   dss   --non-dss   List non-directory zonest   nondsc         C   s{  d } | r | t  j O} n  | r2 | t  j O} n  | rH | t  j O} n  | r^ | t  j O} n  | rt | t  j O} n  | r | t  j O} n  |	 r | t  j O} n  |
 r | t  j O} n  | d k r t  j } n  | j	   |  _
 | j |  j
  |  _ t | |  j
 |  j  } t |  } | j | d | d  d t  j |  \ } } | t  j k r[t  j } n	 t  j } t |  j | |  d  S(   Ni    t	   EnumZones(   R
   t   DNS_ZONE_REQUEST_PRIMARYt   DNS_ZONE_REQUEST_SECONDARYt   DNS_ZONE_REQUEST_CACHEt   DNS_ZONE_REQUEST_AUTOt   DNS_ZONE_REQUEST_FORWARDt   DNS_ZONE_REQUEST_REVERSEt   DNS_ZONE_REQUEST_DSt   DNS_ZONE_REQUEST_NON_DSR{  R   R|  R   R   R   t   DnssrvComplexOperation2R   t   DNSSRV_TYPEID_DWORDR   R   t   DNSSRV_TYPEID_ZONER   R   (   R  R   Ry  R  R  R  R  R  R  R  R  Rn  Rp  Ro  t   request_filterR   R   R   Ri  (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR~    s@    			N(   R  R   R  R  R  R  R  R  R  R  R   R  Rd  R   R~  (    (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR    s:   	

	t   cmd_zonecreatec           B   s   e  Z d  Z d Z d d g Z i e j d 6e j d 6e j d 6Z	 e
 d d d	 d
 d d d d d d d g d d g Z d d d d  Z RS(   s   Create a zone.s   %prog <server> <zone> [options]R   R   Rn  Ro  Rp  s   --client-versionRq  s   Client VersionRr  Rs  Rt  s   w2k|dotnet|longhornRu  Rv  Rw  Rx  Ry  c      	   C   s  | j    |  _ | j |  j  |  _ t | |  j |  j  } | j   } t |  } | t j k r t j	 }	 t j
   }
 | |
 _ t j |
 _ d |
 _ d |
 _ d |
 _ n | t j k rt j }	 t j   }
 | |
 _ t j |
 _ d |
 _ d |
 _ d |
 _ t j |
 _ nQ t j }	 t j   }
 | |
 _ t j |
 _ d |
 _ d |
 _ d |
 _ t j |
 _ | j | d | d  d d |	 |
  } t j }	 t j   } d | _ t j | _ | j | d | | d d |	 |  } |  j  j! d |  d  S(   Ni    i   t
   ZoneCreatet   AllowUpdatet   ResetDwordPropertys   Zone %s created successfully
("   R{  R   R|  R   R   R   R   R
   R   t   DNSSRV_TYPEID_ZONE_CREATE_W2Kt   DNS_RPC_ZONE_CREATE_INFO_W2KR   R	   R1   R   R   t   fDsIntegratedt   fLoadExistingR   t    DNSSRV_TYPEID_ZONE_CREATE_DOTNETt   DNS_RPC_ZONE_CREATE_INFO_DOTNETRJ   R   t   DNSSRV_TYPEID_ZONE_CREATEt!   DNS_RPC_ZONE_CREATE_INFO_LONGHORNt   DnssrvOperation2R   t   DNSSRV_TYPEID_NAME_AND_PARAMt   DNS_RPC_NAME_AND_PARAMt   pszNodeNameR:   t   dwParamR   R   (   R  R   R   Ry  Rn  Rp  Ro  R   R   R   t   zone_create_infoRi  t   name_and_param(    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR~  M  sR    																				N(   R  R   R  R  R  R  R  R  R  R  R   R  R   R~  (    (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR  :  s   

t   cmd_zonedeletec           B   sV   e  Z d  Z d Z d d g Z i e j d 6e j d 6e j d 6Z	 d d d d  Z RS(	   s   Delete a zone.s   %prog <server> <zone> [options]R   R   Rn  Ro  Rp  c      	   C   s   | j    |  _ | j |  j  |  _ t | |  j |  j  } | j   } | j t j d | | d d t j	 d   } |  j j d |  d  S(   Ni    t   DeleteZoneFromDss   Zone %s delete successfully
(   R{  R   R|  R   R   R   R  R
   R   t   DNSSRV_TYPEID_NULLR   R   R   (   R  R   R   Rn  Rp  Ro  R   Ri  (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR~    s    	N(   R  R   R  R  R  R  R  R  R  R  R   R~  (    (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR    s   

t	   cmd_queryc           B   s4  e  Z d  Z d Z d d d d g Z i e j d 6e j d 6e j d 6Z	 e
 d	 d
 d d d d d e
 d d
 d d d d d e
 d d
 d d d d d e
 d d
 d d d d d e
 d d
 d d d d d e
 d d
 d d d d d e
 d d
 d  d d d d! g Z e e e e e e e d# d# d# d" 
 Z RS($   s   Query a name.sK   %prog <server> <zone> <name> <A|AAAA|CNAME|MX|NS|SOA|SRV|TXT|ALL> [options]R   R   R  R   Rn  Ro  Rp  s   --authorityRq  s&   Search authoritative records (default)R  R  Rx  t	   authoritys   --caches   Search cached recordsR  s   --glues   Search glue recordst   glues   --roots   Search root hintst   roots   --additionals   List additional recordst
   additionals   --no-childrens   Do not list childrent   no_childrens   --only-childrens   List only childrent   only_childrenc         C   s  t  |  } | j d  d k r0 t d   n  d } | rL | t j O} n  | rb | t j O} n  | rx | t j O} n  | r | t j O} n  |	 r | t j O} n  |
 r | t j	 O} n  | r | t j
 O} n  | d k r t j } n  | t j k r'|  j j d  |  j j d  | t j O} n  | j   |  _ | j |  j  |  _ t | |  j |  j  } | j t j d | | | d  | | d  d  
 \ } } t |  j |  d  S(   Nt   *is<   Wildcard searches not supported. To dump entire zone use "@"i    s>   Specify either --authority or --root along with --additional.
s   Assuming --authority.
(   R   t   findR   R
   Ra  t   DNS_RPC_VIEW_CACHE_DATAt   DNS_RPC_VIEW_GLUE_DATAt   DNS_RPC_VIEW_ROOT_HINT_DATAt   DNS_RPC_VIEW_ADDITIONAL_DATAt   DNS_RPC_VIEW_NO_CHILDRENt   DNS_RPC_VIEW_ONLY_CHILDRENR   R   R{  R   R|  R   R   Rb  R   R   R  (   R  R   R   R  R   R  R  R  R  R  R  R  Rn  Rp  Ro  R   Rg  R   Rh  Ri  (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR~    s>    N(   R  R   R  R  R  R  R  R  R  R  R   R  Rd  R   R~  (    (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR    s2   

	t   cmd_roothintsc           B   sY   e  Z d  Z d Z d d g Z i e j d 6e j d 6e j d 6Z	 d d	 d	 d	 d  Z RS(
   s   Query root hints.s!   %prog <server> [<name>] [options]R   s   name?Rn  Ro  Rp  R\  c         C   s   t  j } t j t j B} | j   |  _ | j |  j  |  _ t	 | |  j |  j  } | j
 t j d | d | d  | | d  d  
 \ }	 }
 t |  j |
  d  S(   Ni    s   ..RootHints(   R	   Rx   R
   R  R  R{  R   R|  R   R   Rb  R   R   R  R   (   R  R   R  Rn  Rp  Ro  R   Rg  R   Rh  Ri  (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR~    s    	
N(   R  R   R  R  R  R  R  R  R  R  R   R~  (    (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR    s   

	t   cmd_add_recordc           B   s_   e  Z d  Z d Z d d d d d g Z i e j d 6e j d 6e j d	 6Z	 d d d d
  Z RS(   sk  Add a DNS record

       For each type data contents are as follows:
         A      ipv4_address_string
         AAAA   ipv6_address_string
         PTR    fqdn_string
         CNAME  fqdn_string
         NS     fqdn_string
         MX     "fqdn_string preference"
         SRV    "fqdn_string port priority weight"
         TXT    "'string1' 'string2' ..."
    sD   %prog <server> <zone> <name> <A|AAAA|PTR|CNAME|NS|MX|SRV|TXT> <data>R   R   R  R   R   Rn  Ro  Rp  c	      	   C   s   | j    d k r% t d	 |   n  t |  }	 t |	 |  }
 | j   |  _ | j |  j  |  _ t | |  j |  j  } t	 | | | | |	 |  } | d  k	 r t d
   n  t j   } |
 | _ | j t j d | | | | d   |  j j d  d  S(   NRj   Rk   Rl   Rn   Rm   Rp   Rq   Rr   s)   Adding record of type %s is not supporteds   Record already existsi    s   Record added successfully
(   Rj   s   AAAAs   PTRs   CNAMEs   NSs   MXs   SRVs   TXT(   Rt   R   R   R[  R{  R   R|  R   R   Rl  R   R
   t   DNS_RPC_RECORD_BUFR
  t   DnssrvUpdateRecord2R   R   R   (   R  R   R   R  R   R   Rn  Rp  Ro  R   R
  R   Rj  t   add_rec_buf(    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR~    s     		N(   R  R   R  R  R  R  R  R  R  R  R   R~  (    (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR    s   

t   cmd_update_recordc           B   sb   e  Z d  Z d Z d d d d d d g Z i e j d 6e j d	 6e j d
 6Z	 d d d d  Z RS(   s  Update a DNS record

       For each type data contents are as follows:
         A      ipv4_address_string
         AAAA   ipv6_address_string
         PTR    fqdn_string
         CNAME  fqdn_string
         NS     fqdn_string
         MX     "fqdn_string preference"
         SOA    "fqdn_dns fqdn_email serial refresh retry expire minimumttl"
         SRV    "fqdn_string port priority weight"
         TXT    "'string1' 'string2' ..."
    sU   %prog <server> <zone> <name> <A|AAAA|PTR|CNAME|NS|MX|SOA|SRV|TXT> <olddata> <newdata>R   R   R  R   t   olddatat   newdataRn  Ro  Rp  c
      
   C   s<  | j    d k r% t d
 |   n  t |  }
 t |
 |  } | j   |  _ | j |  j  |  _ t | |  j |  j  } t	 | | | | |
 |  } | s t d   n  | j
 | _
 | j | _ | j | _ | j | _ t j   } | | _ t j   } | | _ | j t j d | | | | |  |  j j d  d  S(   NRj   Rk   Rl   Rn   Rm   Rp   Ro   Rq   Rr   s+   Updating record of type %s is not supporteds   Record does not existi    s   Record updated successfully
(	   Rj   s   AAAAs   PTRs   CNAMEs   NSs   MXs   SOAs   SRVs   TXT(   Rt   R   R   R[  R{  R   R|  R   R   Rl  R  R  R	  t   dwTimeStampR
   R  R
  R  R   R   R   (   R  R   R   R  R   R  R  Rn  Rp  Ro  R   R
  R   Rj  R  t   del_rec_buf(    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR~  N  s6    			N(   R  R   R  R  R  R  R  R  R  R  R   R~  (    (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR  5  s   

t   cmd_delete_recordc           B   s_   e  Z d  Z d Z d d d d d g Z i e j d 6e j d 6e j d	 6Z	 d d d d
  Z RS(   sn  Delete a DNS record

       For each type data contents are as follows:
         A      ipv4_address_string
         AAAA   ipv6_address_string
         PTR    fqdn_string
         CNAME  fqdn_string
         NS     fqdn_string
         MX     "fqdn_string preference"
         SRV    "fqdn_string port priority weight"
         TXT    "'string1' 'string2' ..."
    sD   %prog <server> <zone> <name> <A|AAAA|PTR|CNAME|NS|MX|SRV|TXT> <data>R   R   R  R   R   Rn  Ro  Rp  c	      	   C   s   | j    d k r% t d	 |   n  t |  }	 | j   |  _ | j |  j  |  _ t | |  j |  j  }
 t |
 | | | |	 |  } | s t d
   n  t	 j
   } | | _ |
 j t	 j d | | | d  |  |  j j d  d  S(   NRj   Rk   Rl   Rn   Rm   Rp   Rq   Rr   s+   Deleting record of type %s is not supporteds   Record does not existi    s   Record deleted successfully
(   Rj   s   AAAAs   PTRs   CNAMEs   NSs   MXs   SRVs   TXT(   Rt   R   R   R{  R   R|  R   R   Rl  R
   R  R
  R  R   R   R   R   (   R  R   R   R  R   R   Rn  Rp  Ro  R   R   Rj  R  (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR~    s&    	N(   R  R   R  R  R  R  R  R  R  R  R   R~  (    (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR  v  s   

t   cmd_dnsc           B   s   e  Z d  Z i  Z e   e d <e   e d <e   e d <e   e d <e   e d <e	   e d <e
   e d <e   e d <e   e d	 <e   e d
 <RS(   s%   Domain Name Service (DNS) management.R   R   t   zonelistt
   zonecreatet
   zonedeletet   queryt	   roothintst   addt   updatet   delete(   R  R   R  t   subcommandsRm  R  R  R  R  R  R  R  R  R  (    (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyR    s   (A   t   samba.getoptt   getoptR  t   structR    t   socketR   R   R   R   RW  t   samba.netcmdR   R   R   R   t   samba.dcerpcR	   R
   R   R   R   R#   R)   R/   R7   R<   RB   RG   RO   RZ   Rc   Ri   R   R   R   R   R   R   R  R  t   DNS_RPC_RECORDR  R"  R%  R+  R/  R3  R9  RE  RM  R[  R`  Rl  Rm  R  R  R  R  R  R  R  R  R  R  (    (    (    s4   /usr/lib/python2.7/dist-packages/samba/netcmd/dns.pyt   <module>   sj   "		
		
										
				H	A			"		2		G  OGI2A4