Edit File: export_wblist.cpython-311.pyc
� ��\h � � � d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ d dl m Z d dlmZ d dl mZ d dlmZ d d lmZ ej e� � Zd Z G d� de � � ZdS ) � N)�Path)�ensure_line_in_file_bytes)�files)�IDSAwareMessageSink)�strategy)�send_to_socket)�RULES_CHECK_IN_PROGRESS)�csfsq /opt/imunify360/venv/bin/python3 /opt/imunify360/venv/share/imunify360/scripts/rules_checker.py ipsets-consistentc �B � e Zd Zej j ZdZd� Zd� Z d� Z d� ZdS )�ExportWBListFc � � K � || _ d S )N)�_loop)�self�loops �P/opt/imunify360/venv/lib/python3.11/site-packages/im360/plugins/export_wblist.py�create_sinkzExportWBList.create_sink s � � � ��� � � � c �� � t t j � � � � � r&t � d� � t j S t � d� � t j S )a@ Determine which CSF post-hook script to use based on priority rules: - If /usr/local/csf/bin/csfpost.sh exists, use it (higher priority) - Otherwise use /etc/csf/csfpost.sh - Preserve any custom content from either script Returns path to the script that should be used. z7Using /usr/local/csf/bin/csfpost.sh as post-hook scriptz-Using /etc/csf/csfpost.sh as post-hook script)r r �CSF_POST_HOOK_SCRIPT_USR_LOCAL�exists�logger�info�CSF_POST_HOOK_SCRIPT_ETC)r s r �_determine_csf_post_hook_scriptz,ExportWBList._determine_csf_post_hook_script sc � � ��2�3�3�:�:�<�<� 0��K�K�I� � � � �5�5��K�K�G�H�H�H��/�/r c �| � t |� � }|j � dd�� � |� � � sH|� dt � d� � � d�� � |� d� � dS t |t � � }|rt � d|� �� � |S )z� Preserve custom content in the CSF post-hook script by ensuring our IPSET_RESTORE_SCRIPT is added without removing other content T)�parents�exist_okz #!/bin/sh �utf8� i� z#Added command to restore ipsets to )r �parent�mkdirr � write_text�IPSET_RESTORE_SCRIPT�decode�chmodr r r )r �script_path�script�ipset_line_addeds r �_preserve_custom_contentz%ExportWBList._preserve_custom_content0 s� � � �k�"�"��� ���D�4��8�8�8��}�}��� ����E�2�9�9�&�A�A�E�E�E� � � � �L�L������4�4�� � � �� � M��K�K�K�k�K�K�L�L�L��r c � �H K � t j � t j � � }t j � |d� � } t t j dt j |� � z � � }|rt � d� � | � � � }| � |� � }|s|r�t � d� � t j � � r-t# j d� � � d{V �� t j � � �-t j � � � d{V �� t) ddid � � � � d{V �� | � � � dS # t"