U
    L¬÷d­  ã                   @   s   d dl mZmZ dd„ ZdS )é    )Úmask_and_ipv4_to_bcast_addrÚnet_prefix_to_ipv4_maskc                 C   sZ  g }|   ¡ D ]@}| ¡ }|r| d¡r(q| d d¡}t|ƒdkrBq| |¡ qg }i }|D ]4\}}|dkr†|r|| |¡ i }|||< qZ|||< qZd}| ¡ D ]\}}|dkrœd}qœ|rÀ| |¡ i }	|D ]}
d|
krØqÈ|
d  d ¡}d}d|kröd}d }t|ƒdkr"|d  ¡  ¡ }|r"|}|s*qÈi }i |d< t|ƒd	krf|d
  ¡  ¡ }|dkrf||d< |r¨dD ]2}||
krp|
|  ¡  ¡ }|rp||d |< qpndD ].}||
kr¬|
|  ¡  ¡ }|r¬|||< q¬d|kr0d|kr0|d  d¡\}}}|r0t	|ƒ|d< ||d< t
|d |ƒ|d< d|
krJ|
d  ¡ |d< d|
krd|
d  ¡ |d< d|
kr¾|
d  ¡  ¡ }| d d¡}t|ƒd
kr¾|d  d¡r¾|d }|r¾||d< ||	krØ|	|  |¡ qÈ||	|< qÈ|D ]n\}}| d ¡}|sqæ|d  ¡  ¡ }|dkr2||	kr2d|	| d< |dkræd|kræd|	| d< qæ|	S )Nú#é   ZifaceFTZinet6r   Zipv6é   é   )ZdhcpZstaticZ	bootproto)ÚaddressÚgateway)Únetmaskr   r	   Ú	broadcastr   r
   ú/r   zdns-nameserversz
dns-searchZ	hwaddressZetherÚauto)Ú
splitlinesÚstripÚ
startswithÚsplitÚlenÚappendÚitemsÚlowerÚ	partitionr   r   Úupdate)ZsettingsÚentriesÚlineZsplit_upZifacesZconsumeÚcmdÚargsZabsorbZreal_ifacesÚinfoZiface_detailsZuse_ipv6Zdev_nameZdevZ
iface_infoZ
proto_typeÚkÚvalZaddrÚ_ÚprefixZhw_infoZhw_splitZhw_addr© r!   ú</usr/lib/python3/dist-packages/cloudinit/distros/net_util.pyÚtranslate_networkI   s¶    









 ÿ







r#   N)Zcloudinit.netr   r   r#   r!   r!   r!   r"   Ú<module>F   s   