[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: config_watcher.py
File is not writable. Editing disabled.
import time from defence360agent.contracts import config from defence360agent.contracts.messages import MessageType from defence360agent.contracts.plugins import ( MessageSink, MessageSource, expect, ) from defence360agent.utils import recurring_check, Scope POLLING_INTERVAL = config.int_from_envvar("READ_CONFIG_POLLING_INTERVAL", 30) class ConfigWatcher(MessageSink, MessageSource): """Send ConfigUpdate message on [root's] config update. The config update is detected by polling config file's modification time. """ SCOPE = Scope.AV def __init__(self): self._config = config.ConfigFile() self._last_notify_time = 0 self._sink = None self._task = None async def create_sink(self, loop): "plugins.MessageSink method" @expect(MessageType.ConfigUpdate) async def on_config_update_message(self, message): # update the time, to avoid sending duplicate ConfigUpdate # messages after the "config update" command self._last_notify_time = message["timestamp"] async def create_source(self, loop, sink): self._sink = sink self._task = loop.create_task(self._check_config()) async def shutdown(self): if self._task is not None: t, self._task = self._task, None t.cancel() await t self._sink = None @recurring_check(POLLING_INTERVAL) async def _check_config(self): if config.any_layer_modified_since(self._last_notify_time): # notify about the update message = MessageType.ConfigUpdate( conf=self._config, timestamp=time.time() ) await self._sink.process_message(message) # update the time here, in case ConfigUpdate might stuck # in the queue for longer than the polling interval self._last_notify_time = message["timestamp"]
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: premium707.web-hosting.com
Server IP: 198.177.120.115
PHP Version: 8.1.34
Server Software: LiteSpeed
System: Linux premium707.web-hosting.com 4.18.0-553.45.1.lve.el8.x86_64 #1 SMP Wed Mar 26 12:08:09 UTC 2025 x86_64
HDD Total: 97.87 GB
HDD Free: 76.3 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:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
No
git:
Yes
User Info
Username: urbaoubp
User ID (UID): 1252
Group ID (GID): 1257
Script Owner UID: 1252
Current Dir Owner: N/A