def connect(self, server=None, proxy=None, ssl=None, use_srv=None): """ Make a tcp/ip connection, protect it with tls/ssl if possible and start XMPP stream. Returns None or 'tcp' or 'tls', depending on the result.""" if not server: server = (self.Server, self.Port) if proxy: sock = transports.HTTPPROXYsocket(proxy, server, use_srv) else: sock = transports.TCPsocket(server, use_srv) connected = sock.PlugIn(self) if not connected: sock.PlugOut() return self._Server, self._Proxy = server, proxy self.connected = 'tcp' if (ssl is None and self.Connection.getPort() in (5223, 443)) or ssl: try: # FIXME. This should be done in transports.py transports.TLS().PlugIn(self, now=1) self.connected = 'ssl' except socket.sslerror: return dispatcher.Dispatcher().PlugIn(self) while self.Dispatcher.Stream._document_attrs is None: if not self.Process(1): return if self.Dispatcher.Stream._document_attrs.has_key( 'version' ) and self.Dispatcher.Stream._document_attrs['version'] == '1.0': while not self.Dispatcher.Stream.features and self.Process(1): pass # If we get version 1.0 stream the features tag MUST BE presented return self.connected
def connect(self, server=None, proxy=None): if not server: server = (self.Server, self.Port) if proxy: connected = transports.HTTPPROXYsocket(proxy, server).PlugIn(self) else: connected = transports.TCPsocket(server).PlugIn(self) if not connected: return self._Server, self._Proxy = server, proxy self.connected = 'tcp' if self.Connection.getPort() == 5223: transports.TLS().PlugIn(self, now=1) self.connected = 'tls' dispatcher.Dispatcher().PlugIn(self) while self.Dispatcher.Stream._document_attrs is None: self.Process(1) return self.connected