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)
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)
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()
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))