[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: plugins.py
File is not writable. Editing disabled.
import asyncio import logging from defence360agent import utils from defence360agent.contracts import messages, plugins logger = logging.getLogger(__name__) class IDSAwareMessageSink(plugins.MessageSink): """A message sink that accepts messages taking into account the current IDS (strategy). """ STRATEGY = None # no IDS preference by default @plugins.expect(messages.MessageType.StrategyChange) async def on_strategy_change(self, message): """De/activate the plugin on strategy change if necessary.""" # - activate sink if it has no IDS preference # - activate sink if it can work with the current IDS (as # indicated by STRATEGY) # - deactivate sink if it can't work with the current IDS if self.STRATEGY is None or message.strategy == self.STRATEGY: if not self.is_active(): try: await self.activate() except asyncio.CancelledError: raise except Exception: logger.exception("Failed to activate %r plugin", self) utils.fail_agent_service() else: logger.info("Plugin %r is activated", self) elif self.is_active(): try: await self.deactivate() except (Exception, asyncio.CancelledError): logger.exception("Failed to deactivate %r plugin", self) utils.fail_agent_service() else: logger.info("Plugin %r is deactivated", self) async def process_message(self, message): if self.is_active() or isinstance( message, messages.MessageType.StrategyChange ): return await super().process_message(message) async def shutdown(self): if self.is_active(): try: await self.deactivate() except (Exception, asyncio.CancelledError): logger.exception("Failed to deactivate %r plugin", self) # NOTE: don't propagate errors on shutdown else: logger.info("Plugin %r is deactivated", self) return await super().shutdown() async def activate(self): """This method will be called for plugins with specified strategy when this strategy becomes active. """ self._mark_as_active() async def deactivate(self): """This method will be called for plugins with specified strategy when this strategy becomes inactive. """ self._mark_as_inactive() def is_active(self): """Indicates if plugin is active.""" return getattr(self, "_is_active", False) def _mark_as_active(self): self._is_active = True def _mark_as_inactive(self): self._is_active = False
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server05.hostinghome.co.in
Server IP: 192.168.74.40
PHP Version: 7.4.33
Server Software: Apache
System: Linux server05.hostinghome.co.in 3.10.0-962.3.2.lve1.5.81.el7.x86_64 #1 SMP Wed May 31 10:36:47 UTC 2023 x86_64
HDD Total: 1.95 TB
HDD Free: 691.68 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Disabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes
gcc:
Yes
pkexec:
No
git:
Yes
User Info
Username: itsweb
User ID (UID): 1619
Group ID (GID): 1621
Script Owner UID: 1619
Current Dir Owner: N/A