Current File : //usr/lib/python3/dist-packages/sos/cleaner/parsers/__pycache__/mac_parser.cpython-312.pyc |
�
-�_gn
� �F � d dl Z d dlmZ d dlmZ dZdZdZ G d� de� Zy) � N)�SoSCleanerParser)� SoSMacMapze((?<!([0-9a-fA-F\'\"]:)|::)([^:|-])?([0-9a-fA-F]{2}(:|-)){7}[0-9a-fA-F]{2}(\'|\")?(\/|\,|\-|\.|\s|$))ze((?<!([0-9a-fA-F\'\"]:)|::)(([^:\-]?[0-9a-fA-F]{4}(:|-)){3}[0-9a-fA-F]{4}(\'|\")?(\/|\,|\-|\.|\s|$)))zW((?<!([0-9a-fA-F\'\"]:)|::)(([^:\-])?(([0-9a-fA-F]{2}([:\-\_])){5,6}([0-9a-fA-F]{2}))))c �R � � e Zd ZdZdZeeegZdZ dgZ
dZdZg f� fd� Z
d� Zd � Z� xZS )
�SoSMacParserz!Handles parsing for MAC addressesz
MAC Parser)z53:4f:53z534f:53zsos_commands/.*/modinfo.*�mac_mapFc �D �� t � | _ t �| �
||� y )N)r �mapping�super�__init__)�self�config�skip_cleaning_files� __class__s ��@/usr/lib/python3/dist-packages/sos/cleaner/parsers/mac_parser.pyr zSoSMacParser.__init__5 s �� � �{���
����!4�5� c �r � |d dvr
|dd }|d dvr�
|d dvr
|dd }|d dvr�
|j � S )z�Strips away leading and trailing non-alphanum characters from any
matched string to leave us with just the bare MAC addr
r �0123456789abcdefABCDEF� N���)�strip)r �matchs r �reduce_mac_matchzSoSMacParser.reduce_mac_match9 s` � � ��(�6�6��!�"�I�E� ��(�6�6���)�7�7��!�B�K�E� ��)�7�7� �{�{�}�r c � � d}| j D ]� }t j ||t j � D �cg c] }|d �� }}|s�;|t |� z
}|D ]\ }| j |� }|j
| j � r�0| j j |� }|j ||� }�^ �� ||fS c c}w )Nr )�regex_patterns�re�findall�I�lenr �
startswith�obfuscated_patternsr �get�replace) r �line�count�pattern�m�matchesr �stripped_match� new_matchs r �_parse_linezSoSMacParser._parse_lineD s� � ����*�*�
C�G�%'�Z�Z���r�t�t�%D�E��q��t�E�G�E����W��%��$� C�E�%)�%:�%:�5�%A�N�%�0�0��1I�1I�J� � $��� 0� 0�� @�I��<�<�� �B�D�
C�
C� �U�{��� Fs �B?)�__name__�
__module__�__qualname__�__doc__�name�
IPV6_REG_8HEX�
IPV6_REG_4HEX�IPV4_REGr r �parser_skip_files�map_file_key�compile_regexesr r r* �
__classcell__)r s @r r r "