o
    i©¹d	  ã                   @   s,   d dl mZ d dlmZ G dd„ deƒZdS )é    )ÚSoSCleanerParser)Ú
SoSIPv6Mapc                       sB   e Zd ZdZdZdZdgZddgZdZ‡ fdd	„Z	d
d„ Z
‡  ZS )ÚSoSIPv6Parserz/Parser for handling IPv6 networks and addresseszIPv6 ParserÚipv6_mapzª(?<![:\\.\\-a-z0-9])((([0-9a-f]{1,4})(:[0-9a-f]{1,4}){7})|(([0-9a-f]{1,4}(:[0-9a-f]{0,4}){0,5}))([^.])::(([0-9a-f]{1,4}(:[0-9a-f]{1,4}){0,5})?))(/\d{1,3})?(?![:\\a-z0-9])zetc/dnsmasq.conf.*z.*modinfo.*Fc                    s   t ƒ | _tt| ƒ |¡ d S )N)r   ÚmappingÚsuperr   Ú__init__)ÚselfÚconfig©Ú	__class__© úA/usr/lib/python3/dist-packages/sos/cleaner/parsers/ipv6_parser.pyr   &   s   zSoSIPv6Parser.__init__c                 C   sn   | j ji dœ}| j jD ])}| j j| }|ji dœ|d |j< |jD ]}|j| }||d |j d |< q!q|S )zsStructure the dataset contents properly so that they can be reloaded
        on subsequent runs correctly.
        )ÚversionÚnetworks)Ú
obfuscatedÚhostsr   r   )r   r   r   Úobfuscated_addressÚoriginal_addressr   )r	   Ú_dÚnetÚ_netÚhostÚ_ob_hostr   r   r   Úget_map_contents*   s   þþ

þzSoSIPv6Parser.get_map_contents)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚmap_file_keyÚregex_patternsÚ
skip_filesÚcompile_regexesr   r   Ú__classcell__r   r   r   r   r      s    	øþr   N)Úsos.cleaner.parsersr   Úsos.cleaner.mappings.ipv6_mapr   r   r   r   r   r   Ú<module>   s   
