
    Vh                    T    d dl mZ d dlZd dlmZmZ  G d de      Z G d de      Zy)    )annotationsN)NetworkNetworkCollectorc                  &    e Zd ZdZdZdZd ZddZy)HurdPfinetNetworkz}
    This is a GNU Hurd specific subclass of Network. It use fsysopts to
    get the ip address and support only pfinet.
    GNUz/servers/socket/c                   | j                   j                  |d|g      \  }}}g |d<   |j                         D ]  }d|v s|j                  d      s|j                  dd      \  }}	|dd  }|dk(  r&|	dd  }	|d   j	                  |	       d	|	i g d
||	<   |	}
_|dk(  r|	|
   d   d<   p|dk(  r|	|
   d   d<   |dk(  s|	j                  d      \  }}|
   d   j	                  ||d        |S )Nz-L
interfaces=z--      	interface   T)activedeviceipv4ipv6addressr   netmaskaddress6/r   )r   prefix)modulerun_commandsplit
startswithappend)selfnetwork_factsfsysopts_pathsocket_pathrcouterrikv
current_ifr   r   s                W/home/dcms/DCMS/lib/python3.12/site-packages/ansible/module_utils/facts/network/hurd.pyassign_network_factsz&HurdPfinetNetwork.assign_network_facts   s0   {{..t[/QRC&(l# 	AaxALL.wwsA1abE#!"A!,/66q9"&"# " "	(M!$ "#J)^CDM*-f5i@)^CDM*-f5i@*_&'ggclOGV!*-f5<<#*"(> -	4     Nc                   i }| j                   j                  d      }||S d }dD ]O  }t        j                  j	                  | j
                  |      }t        j                  j                  |      sM|} n ||S | j                  |||      S )Nfsysopts)inetinet6)r   get_bin_pathospathjoin_socket_direxistsr*   )r   collected_factsr   r    r!   llinks          r)   populatezHurdPfinetNetwork.populate?   s    00<   " 	A77<< 0 0!4Dww~~d#"		   (({SSr+   )N)__name__
__module____qualname____doc__platformr4   r*   r9    r+   r)   r   r      s     H$K@Tr+   r   c                      e Zd ZdZeZy)HurdNetworkCollectorr   N)r:   r;   r<   	_platformr   _fact_classr?   r+   r)   rA   rA   T   s    I#Kr+   rA   )
__future__r   r1   'ansible.module_utils.facts.network.baser   r   r   rA   r?   r+   r)   <module>rF      s,     # 	 M:T :Tz$+ $r+   