HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //usr/lib/python3/dist-packages/cloudinit/distros/parsers/__pycache__/resolv_conf.cpython-38.pyc
U

Ӈgw�@sHddlZddlmZddlmZddlmZe�e�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�G/usr/lib/python3/dist-packages/cloudinit/distros/parsers/resolv_conf.py�__init__szResolvConf.__init__cCs|jdkr|�|j�|_dSr)r�_parser�r	rrr�parses
zResolvConf.parsecCs|��|�d�S)N�
nameserver�r�_retr_optionrrrr�nameserversszResolvConf.nameserverscCs"|��|�d�}|r|dSdS)N�domainrr)r	Zdmrrr�local_domains

zResolvConf.local_domaincCs0|��|�d�|j�ddt|�dgf�|S)Nr�option�)r�_remove_optionr�append�str)r	rrrrr's
cCsB|��|�d�}g}|D]"}|�d�D]}|r(|�|�q(q|S)N�search)rr�splitr)r	Zcurrent_sds�flat_sdsZsdlistZsdrrr�search_domains.s
zResolvConf.search_domainscCs�|��t�}|jD]t\}}|dkr0|�d�q|dkrL|�d|d�q|dkr|\}}}d||f}t|�rz||7}|�d|�q|��S)N�blank�
�all_commentz%s
rrz%s %s)rrr�write�len�getvalue)r	�contents�	line_type�
components�cfg_opt�	cfg_valueZcomment_tail�linerrr�__str__9s
zResolvConf.__str__cCs<g}|jD],\}}|dkr
|\}}}||kr
|�|�q
|S)Nr�rr)r	�opt_name�foundr'r(r)r*�
_comment_tailrrrrIs
zResolvConf._retr_optioncCst|��|�d�}t|�}|�t|��t�|�}t|�t|�krF|S|�d�|D]}|j	�dd|dgf�qT|S)Nrrr)
rr�listrrr�	uniq_listr$rr)r	�nsZ
current_nsZnew_ns�nrrr�add_nameserverRs


zResolvConf.add_nameservercs8�fdd�}g}|jD]}||�s|�|�q||_dS)Ncs.|\}}|dkrdS|\}}}|�kr*dSdS)NrFTr)�itemr'r(r)Z
_cfg_valuer0�r.rr�
remove_opt`s
z-ResolvConf._remove_option.<locals>.remove_optr-)r	r.r8Znew_contents�crr7rr_s	
zResolvConf._remove_optioncCs�|j}t|�}|�t|��t�|�}t|�t|�kr:|St|�dkrRtd|��d�|�}t|�dkrttd|��|�	d�|j
�dd|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)rr1rrrr2r$�
ValueError�joinrr)r	Z
search_domainrZnew_sdsZs_listrrr�add_search_domainos,
��
��
zResolvConf.add_search_domaincCs�g}t|���D]�\}}|��}|s6|�d|gf�qt|d�\}}t|���sb|�d|gf�q|sjd}z|�dd�\}}	Wn8ttfk
r�}
zt	d|d�|
�W5d}
~
XYnX|dkr�t	d|��|�d	||	|gf�q|S)
Nr z;#r"r�z)Incorrectly formatted resolv.conf line %s)rrrZsortlistZoptionsz Unexpected resolv.conf option %sr)
�	enumerate�
splitlines�striprrr$r�
IndexErrorr=�IOError)r	r&�entries�ir+Zsline�head�tailr)Z
cfg_values�errrr�s0
��zResolvConf._parseN)�__name__�
__module__�__qualname__r
r�propertyrr�setterrr,rr5rr?rrrrrrs 




	
r)Zlogging�iorZ	cloudinitrZcloudinit.distros.parsersrZ	getLoggerrKZLOGrrrrr�<module>s