"""IRC client tunnel — connects local IRC client to I2P IRC servers. Extends GenericClientTask with IRC protocol filtering to strip CTCP/DCC messages that could leak identity information. Ported from net.i2p.i2ptunnel.I2PTunnelIRCClient. """ from __future__ import annotations import logging from i2p_apps.i2ptunnel.config import TunnelDefinition, TunnelType from i2p_apps.i2ptunnel.client_task import GenericClientTask logger = logging.getLogger(__name__) class IRCClientTask(GenericClientTask): """IRC client tunnel with protocol filtering. Like GenericClientTask but applies IRC-specific filtering to strip CTCP/DCC messages that could reveal user identity. Supports multiple comma-separated IRC server destinations. """ def __init__(self, config: TunnelDefinition, session) -> None: super().__init__(config, session) self._uses_irc_filter = True