Example #1
0
    def __init__(self, stream):
        self.stream = stream
        self.auth_task = None
        self.bind_func = None
        self.response_fut = None
        self.responses = None
        stream.credentials = {}  # feature_mechanisms need this
        stream.register_plugin('feature_mechanisms')
        stream.register_handler(
            Callback('Auth', StanzaPath('auth'), self._handle_auth))
        stream.register_handler(
            Callback('Auth Response', StanzaPath('response'),
                     self._handle_response))
        stream.register_handler(
            Callback('Auth Abort', StanzaPath('abort'), self._handle_abort))
        if LegacyAuth.available(self):
            # need to explicitly specify module here since xep_0078
            # is purposefully unavailable by default
            stream.register_plugin('xep_0078', module=xep_0078)
            stream.register_handler(
                Callback('LegacyAuth', StanzaPath('iq/auth'),
                         self._handle_legacy_auth))

        stream.register_plugin('feature_bind')
        stream.register_handler(
            Callback('Bind', StanzaPath('iq/bind'), self._handle_bind))

        stream.register_plugin('feature_session')
        stream.register_handler(
            Callback('Session', StanzaPath('iq/session'),
                     self._handle_session))

        stream.add_event_handler('disconnected', self._disconnected)
Example #2
0
    def __init__(self, stream):
        self.stream = stream
        self.available = False
        self.last_presence = None
        self.directed_presence = set()

        stream.register_stanza(stanza.Presence)
        stream.register_handler(
            Callback('Presence',
                     StanzaPath('presence'),
                     self._handle_presence))

        stream.add_event_handler('disconnected',
                                 self._disconnected)
Example #3
0
 def handle_start_event(self, event):
     """Registers custom event handlers at the start of XMPP session"""
     self._sig.log("LOG_DEBUG", "XMPP Signalling started for overlay: %s",
                   self._overlay_id)
     # pylint: disable=broad-except
     try:
         # Register evio message with the server
         register_stanza_plugin(Message, EvioSignal)
         self.register_handler(
             Callback("evio", StanzaPath("message/evio"),
                      self.handle_message))
         # Get the friends list for the user
         asyncio.ensure_future(self.get_roster(), loop=self.loop)
         # Send initial sign-on presence
         self.send_presence(pstatus="ident#" + self._node_id)
         self._init_event.set()
     except Exception as err:
         self._sig.log("LOG_ERROR", "XmppTransport: Exception:%s Event:%s",
                       err, event)
Example #4
0
 def testtransport_send_message(self, msg_mock):
     """
     Test to check the send message method of transport instance of the signal class.
     """
     register_stanza_plugin(Message, EvioSignal)
     sig_dict, signal = self.setup_vars_mocks()
     transport = XmppTransport.factory(
         "1", sig_dict["Signal"]["Overlays"]["A0FB389"], signal,
         signal._presence_publisher, None, None)
     transport.loop.call_soon_threadsafe = MagicMock()
     transport.register_handler(
         Callback("ipop", StanzaPath("message/ipop"),
                  transport.message_listener))
     msg = transport.Message()
     msg_mock.return_value = msg
     msg.send = MagicMock()
     transport.send_msg("2", "invk", "Data")
     transport.loop.call_soon_threadsafe.assert_called_once()
     transport.loop.call_soon_threadsafe.assert_called_with(msg.send)
     print("Passed : testtransport_send_message")
Example #5
0
 def __init__(self, protocol):
     super(TCPStream, self).__init__()
     self.update_logger({'transport': 'TCP'})
     self.protocol = protocol
     self.protocol_logger = protocol.logger
     self.transport = protocol.transport
     self.tls_options = protocol.factory.options
     self.socket = None
     if self.tls_options:
         register_stanza_plugin(StreamFeatures,
                                tls_stanza.STARTTLS)
         self.register_stanza(StartTLS)
         self.register_handler(
             Callback('STARTTLS',
                      StanzaPath('starttls'),
                      self._handle_starttls))
     self.add_event_handler('auth_success',
                            self._auth_success)
     self.add_event_handler('session_bind',
                            self._session_bind)
     self.init_parser()
Example #6
0
 def start_event_handler(self, event):
     """Registers custom event handlers at the start of XMPP session"""
     self._sig.sig_log("XMPP Signalling started for overlay: {0}".format(
         self._overlay_id))
     # pylint: disable=broad-except
     try:
         # Notification of peer signon
         self.add_event_handler("presence_available",
                                self.presence_event_handler)
         # Register IPOP message with the server
         register_stanza_plugin(Message, IpopSignal)
         self.register_handler(
             Callback("ipop", StanzaPath("message/ipop"),
                      self.message_listener))
         # Get the friends list for the user
         asyncio.ensure_future(self.get_roster(), loop=self.loop)
         # Send sign-on presence
         self.send_presence(pstatus="ident#" + self._node_id)
     except Exception as err:
         self._sig.sig_log(
             "XmppTransport: Exception:{0} Event:{1}".format(err, event),
             "LOG_ERROR")
Example #7
0
 def match(self, stanza):
     if not StanzaPath.match(self, stanza):
         return False
     return not is_local_stanza(stanza)
Example #8
0
 def match(self, stanza):
     if not StanzaPath.match(self, stanza):
         return False
     return is_server_stanza(stanza)