Exemple #1
0
class XmppService(client.XMPPClient):

    _seed1 = object()
    _seed2 = random.randint(0, 1<<32)

    def __init__(self, config, collector):
        self.config = config
        self.collector = collector
        self.setName("XMPP service")
        client.XMPPClient.__init__(self, 
                                   JID(self.config['login']),
                                   self.config['password'])
        self.logTraffic = True
        self.authorized = []    # List of authorized users

    def startService(self):
        # Set protocol handler
        ping = PingHandler()
        ping.setHandlerParent(self)
        roster = xmppim.RosterClientProtocol()
        roster.setHandlerParent(self)
        self.presence = PresenceClientProtocol(self, roster)
        self.presence.setHandlerParent(self)
        message = MessageProtocol(self, self.collector)
        message.setHandlerParent(self)
        # Start client
        client.XMPPClient.startService(self)

    def stopService(self):
        if self.presence is not None:
            self.presence.unavailable()
        client.XMPPClient.stopService(self)

    def getPassword(self):
        """Return the password needed to register"""
        # We want a temporary password that changes every hour
        if self.config.get('protected', False):
            h = hashlib.sha256("%r %d %d" % (self._seed1,
                                             self._seed2,
                                             int(time.time()/60/60)))
            return h.hexdigest()
        return None
Exemple #2
0
 def startService(self):
     # Set protocol handler
     ping = PingHandler()
     ping.setHandlerParent(self)
     roster = xmppim.RosterClientProtocol()
     roster.setHandlerParent(self)
     self.presence = PresenceClientProtocol(self, roster)
     self.presence.setHandlerParent(self)
     message = MessageProtocol(self, self.collector)
     message.setHandlerParent(self)
     # Start client
     client.XMPPClient.startService(self)