HOME


Mini Shell 1.0
Redirecting to https://devs.lapieza.net/iniciar-sesion Redirecting to https://devs.lapieza.net/iniciar-sesion.
DIR: /lib/python3/dist-packages/cloudinit/distros/parsers/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/cloudinit/distros/parsers/__pycache__/resolv_conf.cpython-311.pyc
�

܍~c���p�ddlmZddlmZddlmZddlmZeje	��Z
Gd�d��ZdS)�)�StringIO)�log)�util)�chop_commentc��eZdZd�Zd�Zed���Zed���Zejd���Zed���Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
S)�
ResolvConfc�"�||_d|_dS�N)�_text�	_contents)�self�texts  �G/usr/lib/python3/dist-packages/cloudinit/distros/parsers/resolv_conf.py�__init__zResolvConf.__init__s����
������c�V�|j�!|�|j��|_dSdSr
)r�_parser�r
s r�parsezResolvConf.parses+���>�!�!�[�[���4�4�D�N�N�N�"�!rc�T�|���|�d��S)N�
nameserver�r�_retr_optionrs r�nameserverszResolvConf.nameserverss#���
�
����� � ��.�.�.rc�l�|���|�d��}|r|dSdS)N�domainrr)r
�dms  r�local_domainzResolvConf.local_domains8���
�
����
�
�
�x�
(�
(��
�	��a�5�L��trc��|���|�d��|j�ddt	|��dgf��|S)Nr�option�)r�_remove_optionr�append�str)r
rs  rrzResolvConf.local_domain'sP���
�
�������H�%�%�%�����x�(�C��K�K��)D�E�F�F�F��
rc���|���|�d��}g}|D]1}|�d��D]}|r|�|����2|S)N�search)rr�splitr#)r
�current_sds�flat_sds�sdlist�sds     r�search_domainszResolvConf.search_domains.sx���
�
�����'�'��1�1����!�	(�	(�F��l�l�4�(�(�
(�
(���(��O�O�B�'�'�'��
(��rc��|���t��}|jD]�\}}|dkr|�d���!|dkr|�d|dz���F|dkr9|\}}}|�d|��}t	|��r||z
}|�d|z����|���S)N�blank�
�all_commentz%s
rr � )rrr�write�len�getvalue)r
�contents�	line_type�
components�cfg_opt�	cfg_value�comment_tail�lines        r�__str__zResolvConf.__str__9s����
�
�����:�:��'+�~�
	0�
	0�#�Y�
��G�#�#����t�$�$�$�$��m�+�+����v��A��7�8�8�8�8��h�&�&�5?�2��)�\�")�'�'�9�9�5���|�$�$�)��L�(�D����v���/�/�/��� � �"�"�"rc�r�g}|jD],\}}|dkr!|\}}}||kr|�|���-|S)Nr �rr#)r
�opt_name�foundr6r7r8r9�
_comment_tails        rrzResolvConf._retr_optionIsW����'+�~�	,�	,�#�Y�
��H�$�$�6@�3��)�]��h�&�&��L�L��+�+�+���rc��|���|�d��}t|��}|�t	|����tj|��}t|��t|��kr|St|��dkr%t�	d|��|dd�S|�
d��|D]!}|j�dd|dgf���"|S)Nr�z`ignoring nameserver %r: adding would exceed the maximum of '3' name servers (see resolv.conf(5))r r!)rr�listr#r$r�	uniq_listr3�LOG�warningr"r)r
�ns�
current_ns�new_ns�ns     r�add_nameserverzResolvConf.add_nameserverRs���
�
�����&�&�|�4�4�
��j�!�!���
�
�c�"�g�g�������'�'���v�;�;�#�j�/�/�)�)����z�?�?�a����K�K�8��	
�
�
��b�q�b�>�!����L�)�)�)��	E�	E�A��N�!�!�8�l�A�r�-B�"C�D�D�D�D��
rc�x���fd�}g}|jD]"}||��s|�|���#||_dS)Nc�>��|\}}|dkrdS|\}}}|�krdSdS)Nr FT�)�itemr6r7r8�
_cfg_valuerAr?s      �r�
remove_optz-ResolvConf._remove_option.<locals>.remove_opths>���$(�!�I�z��H�$�$��u�3=�0�W�j�-��(�"�"��u��4rr>)r
r?rR�new_contents�cs `   rr"zResolvConf._remove_optiongsd���	�	�	�	�	�����	'�	'�A��:�a�=�=�
'��#�#�A�&�&�&��%����rc��|j}t|��}|�t|����t	j|��}t
|��t
|��kr|St
|��dkrtd|z���d�|��}t
|��dkrtd|z���|�	d��|j
�dd|dgf��|S)	N�z8Adding %r would go beyond the '6' maximum search domainsr1�zEAdding %r would go beyond the 256 maximum search list character limitr&r r!)r,rDr#r$rrEr3�
ValueError�joinr"r)r
�
search_domainr)�new_sds�s_lists     r�add_search_domainzResolvConf.add_search_domainws	���&���x�.�.�����s�=�)�)�*�*�*��.��)�)���x�=�=�C��L�L�(�(��N��x�=�=�A����J� �"���
����'�"�"���v�;�;�����:�=J�L���
�	
���H�%�%�%�����x�(�F�B�)?�@�A�A�A��rc�P�g}t|�����D�]\}}|���}|s|�d|gf���5t	|d��\}}t|�����s|�d|gf����|sd}	|�dd��\}}	n/#ttf$r}
td|dzz��|
�d}
~
wwxYw|dvrtd|z���|�d	||	|gf����|S)
Nr.z;#r0r!�z)Incorrectly formatted resolv.conf line %s)rrr&�sortlist�optionsz Unexpected resolv.conf option %sr )
�	enumerate�
splitlines�stripr#rr3r'�
IndexErrorrX�IOError)r
r5�entries�ir;�sline�head�tailr8�
cfg_values�es           rrzResolvConf._parse�si����"�8�#6�#6�#8�#8�9�9�	D�	D�I�Q���J�J�L�L�E��
�����$��0�1�1�1��'��d�3�3�L�T�4��t�z�z�|�|�$�$�
����
��v�6�7�7�7���
���
�(,�
�
�4��(;�(;�%��*�*���
�+�
�
�
��?�1�q�5�I���������
���������@�G�L�M�M�M��N�N�H�w�
�D�&A�B�C�C�C�C��s�+C�C1�C,�,C1N)�__name__�
__module__�__qualname__rr�propertyrr�setterr,r<rrLr"r]rrOrrrrs����������5�5�5��/�/��X�/�����X�������������X��#�#�#� ������*&�&�&� ���0����rrN)�ior�	cloudinitr�loggingr�cloudinit.distros.parsersr�	getLoggerrnrFrrOrr�<module>rxs���������$�$�$�$�$�$�������2�2�2�2�2�2��g���!�!��Z�Z�Z�Z�Z�Z�Z�Z�Z�Zr