def __init__(self):
        PlugIn.__init__(self)
        self.handlers = {}
        self._expected = {}
        self._defaultHandler = None
        self._pendingExceptions = []
        self._eventHandler = None
        self._cycleHandlers = []
        self._exported_methods=[self.RegisterHandler, self.RegisterDefaultHandler,
                self.RegisterEventHandler, self.UnregisterCycleHandler,
                self.RegisterCycleHandler, self.RegisterHandlerOnce,
                self.UnregisterHandler, self.RegisterProtocol,
                self.SendAndWaitForResponse, self.SendAndCallForResponse,
                self.getAnID, self.Event, self.send]

        # Let the dispatcher know if there is support for stream management
        self.sm = None

        # \ufddo -> \ufdef range
        c = u'\ufdd0'
        r = c.encode('utf8')
        while (c < u'\ufdef'):
            c = unichr(ord(c) + 1)
            r += '|' + c.encode('utf8')

        # \ufffe-\uffff, \u1fffe-\u1ffff, ..., \u10fffe-\u10ffff
        c = u'\ufffe'
        r += '|' + c.encode('utf8')
        r += '|' + unichr(ord(c) + 1).encode('utf8')
        while (c < u'\U0010fffe'):
            c = unichr(ord(c) + 0x10000)
            r += '|' + c.encode('utf8')
            r += '|' + unichr(ord(c) + 1).encode('utf8')

        self.invalid_chars_re = re.compile(r)
Beispiel #2
0
 def __init__(self, cacerts, mycerts):
     """
     :param cacerts: path to pem file with certificates of known XMPP servers
     :param mycerts: path to pem file with certificates of user trusted servers
     """
     PlugIn.__init__(self)
     self.cacerts = cacerts
     self.mycerts = mycerts
 def __init__(self, version=None):
     """
     Init internal variables
     """
     PlugIn.__init__(self)
     self.version = version
     self._data = {}
     self._set=None
     self._exported_methods=[self.getRoster]
     self.received_from_server = False
    def __init__(self, raise_event, on_disconnect, idlequeue, estabilish_tls,
                    certs):
        """
        Each trasport class can have different constructor but it has to have at
        least all the arguments of NonBlockingTransport constructor

        :param raise_event: callback for monitoring of sent and received data
        :param on_disconnect: callback called on disconnection during runtime
        :param idlequeue: processing idlequeue
        :param estabilish_tls: boolean whether to estabilish TLS connection after
                TCP connection is done
        :param certs: tuple of (cacerts, mycerts) see constructor of
                tls_nb.NonBlockingTLS for more details
        """
        PlugIn.__init__(self)
        self.raise_event = raise_event
        self.on_disconnect = on_disconnect
        self.on_connect = None
        self.on_connect_failure = None
        self.idlequeue = idlequeue
        self.on_receive = None
        self.server = None
        self.port = None
        self.conn_5tuple = None
        self.set_state(DISCONNECTED)
        self.estabilish_tls = estabilish_tls
        self.certs = certs
        # type of used ssl lib (if any) will be assigned to this member var
        self.ssl_lib = None
        self._exported_methods=[self.onreceive, self.set_send_timeout,
                self.set_send_timeout2, self.set_timeout, self.remove_timeout,
                self.start_disconnect]

        # time to wait for SOME stanza to come and then send keepalive
        self.sendtimeout = 0

        # in case we want to something different than sending keepalives
        self.on_timeout = None
        self.on_timeout2 = None