File: //usr/lib/python3.9/site-packages/ipalib/install/__pycache__/dnsforwarders.cpython-39.opt-1.pyc
a
}�fv �
@ s: d Z ddlZddlZddlZddlZddlZddlmZ ddlm Z e�
e�Zh d�Z
dZdZdZd ZdZd
Zdd� Zd
d�dd�Zd
d�dd�Zdd� Zedk�r6ddlmZ ede� � ede�� � ed� eedd�� ed� zeedd�� W n. e�y( Z zee� W Y dZ[n
dZ[0 0 ede� � dS )z+DNS forwarder and systemd-resolve1 helpers
� N)�paths)�get_ipa_resolver> z /run/systemd/resolve/resolv.confz/lib/systemd/resolv.confz%/run/systemd/resolve/stub-resolv.confz/usr/lib/systemd/resolv.confzorg.freedesktop.resolve1z/org/freedesktop/resolve1z org.freedesktop.resolve1.Managerzorg.freedesktop.DBus.Properties� c C sN zt �tj�} W n ty$ Y dS 0 t j�t j�t j�tj�| ��} | t v S )zbDetect if /etc/resolv.conf is managed by systemd-resolved
See man(5) NetworkManager.conf
F)
�os�readlinkr �RESOLV_CONF�OSError�path�normpath�join�dirname�_SYSTEMD_RESOLV_CONF)�dest� r �@/usr/lib/python3.9/site-packages/ipalib/install/dnsforwarders.py�detect_resolve1_resolv_conf% s �r F��with_ifindexc C s� t �� }z0|�tt�}t �|t�}|�td�}W |� � n
|� � 0 g }|D ]x\}}}} }
| dvsL|
rhqL|t
jkr�t�
t|��}n|t
jkrLt�t|��}nqL| r�t|�}|�||f� qL|�|� qL|S )zlGet list of DNS nameservers from systemd-resolved
:return: list of tuples (ifindex, ipaddress_obj)
ZDNSEx> r �5 )�dbusZ SystemBusZ
get_object�_DBUS_RESOLVE1_NAME�_DBUS_RESOLVE1_PATHZ Interface�_DBUS_PROPERTY_IFZGet�_DBUS_RESOLVE1_MANAGER_IF�close�socketZAF_INET� ipaddress�IPv4Address�bytesZAF_INET6�IPv6Address�int�append)r ZbusZresolve1Zprop_ifZdns_prop�results�ifindex�afZdns_arr�portZsninameZdnsipr r r �get_resolve1_nameservers6 s(
r&