a ì)g/ ã@sTddlmZmZmZeZddlZddlmZm Z Gdd„deƒZ Gdd„de ƒZ dS)é)Úabsolute_importÚdivisionÚprint_functionN)ÚNetworkÚNetworkCollectorc@s*eZdZdZdZdZdd„Zd dd„ZdS) Ú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 Csü|j |d|g¡\}}}g|d<| ¡D]Î}d|vr(| d¡r(| dd¡\}} |dd…}|dkr”| dd…} |d | ¡d | igd œ|| <| } q(|d kr®| || d d <q(|d krÈ| || d d <q(|dkr(|  d¡\} } || d | | dœ¡q(|S)Nz-LZ interfacesú=z--ééZ interfaceéT)ZactiveZdeviceÚipv4Úipv6Úaddressr ÚnetmaskZaddress6ú/r)rÚprefix)ÚmoduleZ run_commandÚsplitÚ startswithÚappend) ÚselfÚ network_factsÚ fsysopts_pathÚ socket_pathÚrcÚoutÚerrÚiÚkÚvZ current_ifrr©r!úK/usr/lib/python3.9/site-packages/ansible/module_utils/facts/network/hurd.pyÚassign_network_facts s4   ü  þ z&HurdPfinetNetwork.assign_network_factsNcCshi}|j d¡}|dur|Sd}dD](}tj |j|¡}tj |¡r$|}qNq$|durZ|S| |||¡S)NZfsysopts)ZinetZinet6)rZ get_bin_pathÚosÚpathÚjoinÚ _socket_dirÚexistsr#)rZcollected_factsrrrÚlÚlinkr!r!r"Úpopulate@s  zHurdPfinetNetwork.populate)N)Ú__name__Ú __module__Ú __qualname__Ú__doc__Úplatformr'r#r+r!r!r!r"rs  rc@seZdZdZeZdS)ÚHurdNetworkCollectorrN)r,r-r.Z _platformrZ _fact_classr!r!r!r"r1Usr1) Z __future__rrrÚtypeZ __metaclass__r$Z'ansible.module_utils.facts.network.baserrrr1r!r!r!r"Ús =