Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
import logging
import os
import shutil
from defence360agent.contracts.config import SystemConfig
from defence360agent.contracts.messages import MessageType
from defence360agent.contracts.plugins import MessageSink, expect
from im360.contracts.config import ProactiveDefence
from im360.subsys import proactive
logger = logging.getLogger(__name__)
class PhpImmunityPlugin(MessageSink):
def __init__(self):
self._loop = None
self.config_php_immunity = ProactiveDefence.PHP_IMMUNITY
async def create_sink(self, loop) -> None:
self._loop = loop
@expect(MessageType.ConfigUpdate)
async def on_config_update(self, message: MessageType.ConfigUpdate):
if (
isinstance(message["conf"], SystemConfig)
and self.config_php_immunity != ProactiveDefence.PHP_IMMUNITY
):
self.config_php_immunity = ProactiveDefence.PHP_IMMUNITY
if not ProactiveDefence.PHP_IMMUNITY:
if os.path.isfile(proactive.PHP_IMMUNITY_COMPILED_RULES):
os.unlink(proactive.PHP_IMMUNITY_COMPILED_RULES)
else:
shutil.rmtree(
proactive.PHP_IMMUNITY_COMPILED_RULES,
ignore_errors=True,
)
else:
if os.path.exists(proactive.PHP_IMMUNITY_FILENAME):
await proactive.apply_php_immunity_rules()