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)
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)
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)
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")
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()
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")
def match(self, stanza): if not StanzaPath.match(self, stanza): return False return not is_local_stanza(stanza)
def match(self, stanza): if not StanzaPath.match(self, stanza): return False return is_server_stanza(stanza)