Exemplo n.º 1
0
    def __init__(self):
        config = XMPPGatewayConfig

        self.stopped = False

        self.domains = set(config.domains)
        self.muc_domains = set(
            ['%s.%s' % (config.muc_prefix, domain) for domain in self.domains])

        router = SylkRouter()
        self._server_service = ServerService(router)
        self._server_service.domains = self.domains | self.muc_domains
        self._server_service.logTraffic = False  # done manually

        self._s2s_factory = SylkS2SServerFactory(self._server_service)
        self._s2s_factory.logTraffic = False  # done manually

        # Setup internal components

        self._internal_component = SylkInternalComponent(router)
        self._internal_component.domains = self.domains
        self._internal_component.manager = self
        self._muc_component = SylkInternalComponent(router)
        self._muc_component.domains = self.muc_domains
        self._muc_component.manager = self

        # Setup protocols

        self.message_protocol = MessageProtocol()
        self.message_protocol.setHandlerParent(self._internal_component)

        self.presence_protocol = PresenceProtocol()
        self.presence_protocol.setHandlerParent(self._internal_component)

        self.disco_protocol = DiscoProtocol()
        self.disco_protocol.setHandlerParent(self._internal_component)

        self.disco_client_protocol = DiscoClientProtocol()
        self.disco_client_protocol.setHandlerParent(self._internal_component)

        self.muc_protocol = MUCServerProtocol()
        self.muc_protocol.setHandlerParent(self._muc_component)

        self.muc_presence_protocol = MUCPresenceProtocol()
        self.muc_presence_protocol.setHandlerParent(self._muc_component)

        self.disco_muc_protocol = DiscoProtocol()
        self.disco_muc_protocol.setHandlerParent(self._muc_component)

        self.version_protocol = VersionHandler('SylkServer', SYLK_VERSION)
        self.version_protocol.setHandlerParent(self._internal_component)

        self.fallback_protocol = FallbackHandler()
        self.fallback_protocol.setHandlerParent(self._internal_component)

        self.fallback_muc_protocol = FallbackHandler()
        self.fallback_muc_protocol.setHandlerParent(self._muc_component)

        self.ping_protocol = PingHandler()
        self.ping_protocol.setHandlerParent(self._internal_component)

        self.jingle_protocol = JingleProtocol()
        self.jingle_protocol.setHandlerParent(self._internal_component)

        self.jingle_coin_protocol = JingleProtocol()
        self.jingle_coin_protocol.setHandlerParent(self._muc_component)

        self._s2s_listener = None

        self.chat_session_manager = XMPPChatSessionManager()
        self.muc_session_manager = XMPPMucSessionManager()
        self.subscription_manager = XMPPSubscriptionManager()
        self.jingle_session_manager = JingleSessionManager()