Beispiel #1
0
 def normalize_jid(self, jid):
     if isinstance(jid, JID):
         return jid
     elif isinstance(jid, basestring):
         return JID(jid=unicode(jid))
     raise ValueError(
         "JID value is not a JID or basestring, cannot normalize to JID object: %r"
         % jid)
Beispiel #2
0
 def read(self):
     buf = self.socket.recv(2000)
     self.buffer = buf = self.buffer + buf
     if len(buf) >= 2:
         len_ = (ord(buf[0]) << 8) + ord(buf[1])
         if len(buf) >= (2 + len_):
             jid = JID(buf[2:2 + len_])
             host = hosts.by_jid(jid)
             if host:
                 host.set_link(self.socket, buf[2 + len_:])
             else:
                 self.socket.close()
             listener.close_link(self)
Beispiel #3
0
    def __init__(self):
        self.jid = JID(config.get('im', 'account'))
        self.jid.setResource('xtunnel')
        self.password = config.get('im', 'password')
        self.debug = config.get('config', 'debug') == 'true'

        self.status = 'Internal %s %s' % (tap.ip, tap.mac)
        if config.has_option('im', 'ip'):
            eip = config.get('im', 'ip')
            eport = int(config.get('im', 'port'))
            self.status = 'External %s %s %s %s' % (tap.ip, tap.mac, eip,
                                                    eport)

        self.reconnect()
Beispiel #4
0
 def send(self, recipients, message):
     """Send message to recipients via xmpp."""
     jid = JID(self.user)
     if self.server:
         server = self.server
     else:
         server = jid.getDomain()
     cl = Client(server, port=self.port, debug=[])
     if not cl.connect():
         raise IOError("Couldn't connect to xmpp server %s" % server)
     if not cl.auth(jid.getNode(), self.password, resource=self.resource):
         cl.Connection.disconnect()
         raise IOError("Xmpp auth erro using %s to %s", jid, server)
     for recip in recipients:
         cl.send(Message(recip[2], message))