D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
usr
/
lib
/
python3.9
/
site-packages
/
ipalib
/
install
/
__pycache__
/
Filename :
dnsforwarders.cpython-39.pyc
back
Copy
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&