HEX
Server: LiteSpeed
System: Linux cpir1.prohostdns.com 4.18.0-553.123.2.lve.el8.x86_64 #1 SMP Thu May 7 23:17:13 UTC 2026 x86_64
User: pelakir (2976)
PHP: 8.2.31
Disabled: exec, shell_exec, system, passthru, proc_open, proc_close, proc_terminate, proc_get_status, popen, pclose, pcntl_exec
Upload Files
File: //opt/imunify360/venv/lib64/python3.11/site-packages/im360/plugins/remoteip_install.py
import logging

from defence360agent.contracts.plugins import MessageSink

from defence360agent.subsys.web_server import NotRunningError

from im360.subsys.remoteip import ModRemoteIp

logger = logging.getLogger(__name__)


class RemoteIpInstall(MessageSink):
    async def create_sink(self, loop):
        self._loop = loop
        self._task = self._loop.create_task(self._check_remoteip())

    async def shutdown(self):
        self._task.cancel()
        await self._task

    async def _check_remoteip(self):
        remoteip = ModRemoteIp()
        if not remoteip.is_supported():
            logger.warning(
                "Automatic mod_remoteip installation is not supported"
                " on this server"
            )
        try:
            if not await remoteip.is_installed():
                await remoteip.install()
                logger.info("mod_remoteip successfully installed")
        except NotRunningError:
            logger.warning(
                "skipping installation due to apache server not running"
            )