File: //lib/python3.6/site-packages/isc/__pycache__/rndc.cpython-36.pyc
3
Pi+ @ sX d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZG dd de Z
dS ) )OrderedDictNc @ sl e Zd ZdZdddddddZd d
Zdd ZdddZdd Zdd Z dd Z
dd Zdd Zdd Z
dS )rndczRNDC protocol client library )md5Zsha1Zsha224Zsha256Zsha384Zsha512c C sb || _ |j }|jdr$|dd }|| _tt|| _tj|| _ t
jdd| _d| _
| j dS )zCreates a persistent connection to RNDC and logs in
host - (ip, port) tuple
algo - HMAC algorithm: one of md5, sha1, sha224, sha256, sha384, sha512
(with optional prefix 'hmac-')
secret - HMAC secret, base64 encodedzhmac- Nr i )hostlower
startswithalgogetattrhashlibhlalgobase64 b64decodesecretrandomZrandintsernonce_rndc__connect_login)selfr r r r /usr/lib/python3.6/rndc.py__init__$ s
z
rndc.__init__c C s t | j|dd S )zCall a RNDC command, all parsing is done on the server side
cmd - a complete string with a command (eg 'reload zone example.com')
)type_data)dict_rndc__command)r cmdr r r call5 s z rndc.callFc C s t }x |j D ]\}}|r(|dkr(q|tjdt||jd 7 }t|tkrt|tjddt||jd 7 }qt|tkr|tjddt|| 7 }qt|t kr|tjddt|| 7 }qt|t kr| j
|}|tjddt|| 7 }qtdt| qW |S )N_authBasciiz>BIr z#Cannot serialize element of type %s) bytearrayitemsstructpacklenencoder strbytesr _rndc__serialize_dictNotImplementedError)r dataignore_authrvkvZsdr r r Z__serialize_dict; s"