HEX
Server: Apache/2.4.62 (Unix) OpenSSL/1.1.1k
System: Linux ns565604.ip-54-39-133.net 4.18.0-553.50.1.el8_10.x86_64 #1 SMP Tue Apr 15 08:09:22 EDT 2025 x86_64
User: greer489 (1034)
PHP: 8.3.19
Disabled: NONE
Upload Files
File: //lib/python3.6/site-packages/cloudinit/distros/parsers/__pycache__/resolv_conf.cpython-36.pyc
3

\�me}�@sHddlZddlmZddlmZddlmZeje�Z	Gdd�d�Z
dS)�N)�StringIO)�util)�chop_commentc@s~eZdZdd�Zdd�Zedd��Zedd��Zejd	d��Zed
d��Z	dd
�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�
ResolvConfcCs||_d|_dS)N)�_text�	_contents)�self�text�r
�!/usr/lib/python3.6/resolv_conf.py�__init__szResolvConf.__init__cCs|jdkr|j|j�|_dS)N)r�_parser)rr
r
r�parses
zResolvConf.parsecCs|j�|jd�S)N�
nameserver)r�_retr_option)rr
r
r�nameserversszResolvConf.nameserverscCs"|j�|jd�}|r|dSdS)N�domainr)rr)rZdmr
r
r�local_domains

zResolvConf.local_domaincCs0|j�|jd�|jjddt|�dgf�|S)Nr�option�)r�_remove_optionr�append�str)rrr
r
rr's
cCsJ|j�|jd�}g}x.|D]&}x |jd�D]}|r,|j|�q,WqW|S)N�search)rr�splitr)rZcurrent_sds�flat_sdsZsdlistZsdr
r
r�search_domains.s

zResolvConf.search_domainscCs�|j�t�}x~|jD]t\}}|dkr2|jd�q|dkrN|jd|d�q|dkr|\}}}d||f}t|�r|||7}|jd|�qW|j�S)N�blank�
�all_commentz%s
rrz%s %s)rrr�write�len�getvalue)r�contents�	line_type�
components�cfg_opt�	cfg_valueZcomment_tail�liner
r
r�__str__9s
zResolvConf.__str__cCs@g}x6|jD],\}}|dkr|\}}}||kr|j|�qW|S)Nr)rr)r�opt_name�foundr$r%r&r'�
_comment_tailr
r
rrIs
zResolvConf._retr_optioncCsx|j�|jd�}t|�}|jt|��tj|�}t|�t|�krF|S|jd�x"|D]}|j	jdd|dgf�qVW|S)Nrrr)
rr�listrrr�	uniq_listr!rr)r�nsZ
current_nsZnew_ns�nr
r
r�add_nameserverRs



zResolvConf.add_nameservercs<�fdd�}g}x |jD]}||�s|j|�qW||_dS)Ncs.|\}}|dkrdS|\}}}|�kr*dSdS)NrFTr
)�itemr$r%r&Z
_cfg_valuer,)r*r
r�
remove_opt`s
z-ResolvConf._remove_option.<locals>.remove_opt)rr)rr*r3Znew_contents�cr
)r*rr_s	zResolvConf._remove_optioncCs�|j}t|�}|jt|��tj|�}t|�t|�kr:|St|�dkrRtd|��dj|�}t|�dkrttd|��|j	d�|j
jdd|dgf�|S)	N�z8Adding %r would go beyond the '6' maximum search domains� �zEAdding %r would go beyond the 256 maximum search list character limitrrr)rr-rrrr.r!�
ValueError�joinrr)rZ
search_domainrZnew_sdsZs_listr
r
r�add_search_domainos$


zResolvConf.add_search_domaincCs�g}x�t|j��D]�\}}|j�}|s8|jd|gf�qt|d�\}}t|j��sd|jd|gf�q|sld}y|jdd�\}}	Wn8ttfk
r�}
zt	d|d�|
�WYdd}
~
XnX|dkr�t	d|��|jd
||	|gf�qW|S)Nrz;#rr�z)Incorrectly formatted resolv.conf line %srrr�sortlist�optionsz Unexpected resolv.conf option %sr)rrrr<r=)
�	enumerate�
splitlines�striprrr!r�
IndexErrorr8�IOError)rr#Zentries�ir(Zsline�head�tailr&Z
cfg_values�er
r
rr
�s6zResolvConf._parseN)�__name__�
__module__�__qualname__rr�propertyrr�setterrr)rr1rr:r
r
r
r
rrs	
r)Zlogging�iorZ	cloudinitrZcloudinit.distros.parsersrZ	getLoggerrGZLOGrr
r
r
r�<module>s