コード例 #1
0
def get_roster(options, jid):
    my = MyStream()
    my.options = options
    my.connect(jid=iksemel.JID(jid), tls=False)

    while 1:
        select.select([my], [], [])
        my.recv()
コード例 #2
0
 def __run_tx(self):
     buf = ''
     first_time = True
     while True:
         if self.__owner._shutdown:
             return
         if self.__reconnect:
             buf = '' # throw away unsent data
         if len(buf) == 0:
             data, addr = None, None
             if not self.__reconnect:
                 self.__owner._wi_available.acquire()
                 while len(self.__owner._wi) == 0 and not self.__reconnect:
                     self.__owner._wi_available.wait()
                     if self.__owner._shutdown:
                         os.close(self.fileno())
                         self.__owner._wi_available.release()
                         return
                 if len(self.__owner._wi) > 0:
                     data, addr, laddress = self.__owner._wi.pop(0)
                 self.__owner._wi_available.release()
             if self.__reconnect:
                 #print self, self.__reconnect_count
                 if not first_time:
                     time.sleep(0.1)
                     try:
                         os.close(self.fileno())
                     except:
                         pass
                 try:
                     self.connect(jid=iksemel.JID('127.0.0.1'), tls=False, port=22223)
                     first_time = False
                     os.write(self.fileno(), '<b2bua_slot id="%s"/>' % self.__id)
                     pollobj = poll()
                     pollobj.register(self.fileno(), POLLOUT)
                 except iksemel.StreamError:
                     continue
                 except:
                     traceback.print_exc(file = sys.stdout)
                     sys.stdout.flush()
                     continue
                 self.__reconnect = False
                 self.__reconnect_count += 1
             if data == None:
                 continue
             dst_addr, dst_port = addr
             buf = '<outgoing_packet dst_addr="%s" dst_port="%s" ' \
                             'src_addr="%s" src_port="%s" ' \
                             'msg="%s"/>' % (dst_addr, dst_port, 
                                             laddress[0], laddress[1], 
                                             base64.b64encode(data))
         if self.__owner._shutdown:
             os.close(self.fileno())
             return
         pollret = dict(pollobj.poll())
         if pollret.get(self.fileno(), 0) & POLLOUT == 0:
             continue
         try:
             sent = os.write(self.fileno(), buf)
             buf = buf[sent:]
         except IOError:
             # wait for reconnect
             self.__reconnect = True
         except OSError:
             # wait for reconnect
             self.__reconnect = True
コード例 #3
0
ファイル: tst_jid.py プロジェクト: wutiejun/iksemel
#!/usr/bin/python
# -*- coding: utf-8 -*-

import iksemel

# Try JID class

jid = iksemel.JID("xmpp:[email protected]/lala")
assert jid.local == "guybrush"
assert jid.domain == "example.com"
assert jid.resource == "lala"
assert str(jid) == "[email protected]/lala"

jid = iksemel.JID("*****@*****.**")
assert jid.local == "guybrush"
assert jid.domain == "example.com"
assert jid.resource is None

jid = iksemel.JID("example.com")
assert jid.local is None
assert jid.domain == "example.com"
assert jid.resource is None