�
Ϫ�f� � � � d dgZ ddlmZ ddlmZmZ ddlmZmZm Z m
Z
ddlmZ ddl
mZmZ ddlmZ G d � dej$ � Z G d
� d e� Zy)�SecondaryAuthority�SecondaryAuthorityService� )�service)�defer�task)�client�common�dns�resolve)�
FileAuthority)�failure�log)�nativeStringc �@ � e Zd ZdZdZdZd� Zed� � Zd� Z d� Z
d� Zy) r a:
A service that keeps one or more authorities up to date by doing hourly
zone transfers from a master.
@ivar primary: IP address of the master.
@type primary: L{str}
@ivar domains: An authority for each domain mirrored from the master.
@type domains: L{list} of L{SecondaryAuthority}
N�5 c �l � t |� | _ |D �cg c] }t ||� �� c}| _ yc c}w )a
@param primary: The IP address of the server from which to perform
zone transfers.
@type primary: L{str}
@param domains: A sequence of domain names for which to perform
zone transfers.
@type domains: L{list} of L{bytes}
N)r �primaryr �domains)�selfr r �ds �9/usr/lib/python3/dist-packages/twisted/names/secondary.py�__init__z"SecondaryAuthorityService.__init__ s- � � $�G�,���@G�H�1�*�7�A�6�H����Hs �1c � � |\ }} | |g � }||_ |D �cg c] }t j ||� �� c}|_ |S c c}w )a�
Construct a new L{SecondaryAuthorityService} from a tuple giving a
server address and a C{str} giving the name of a domain for which this
is an authority.
@param serverAddress: A two-tuple, the first element of which is a
C{str} giving an IP address and the second element of which is a
C{int} giving a port number. Together, these define where zone
transfers will be attempted from.
@param domains: Domain names for which to perform zone transfers.
@type domains: sequence of L{bytes}
@return: A new instance of L{SecondaryAuthorityService}.
)�_portr �fromServerAddressAndDomainr )�cls�
serverAddressr r �portr r s r �fromServerAddressAndDomainsz5SecondaryAuthorityService.fromServerAddressAndDomains- sU � �" |