Compare commits
	
		
			7 Commits
		
	
	
		
			1.1.2
			...
			sleek-1.1.
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 6997261c6b | ||
|   | 6cfb5cb14c | ||
|   | 8567d6034f | ||
|   | e06368f8cd | ||
|   | 4b37a4706f | ||
|   | 7b1564947d | ||
|   | f5652a667b | 
| @@ -45,7 +45,7 @@ The latest source code for SleekXMPP may be found on `Github | ||||
| ``develop`` branch. | ||||
|  | ||||
| **Latest Release** | ||||
|     - `1.1.2 <http://github.com/fritzy/SleekXMPP/zipball/1.1.2>`_ | ||||
|     - `1.1.3 <http://github.com/fritzy/SleekXMPP/zipball/1.1.3>`_ | ||||
|  | ||||
| **Develop Releases** | ||||
|     - `Latest Develop Version <http://github.com/fritzy/SleekXMPP/zipball/develop>`_ | ||||
|   | ||||
| @@ -737,7 +737,8 @@ class BaseXMPP(XMLStream): | ||||
|         if not self.is_component and not presence['to'].bare: | ||||
|             presence['to'] = self.boundjid | ||||
|  | ||||
|         self.event("presence_%s" % presence['type'], presence) | ||||
|         self.event('presence', presence) | ||||
|         self.event('presence_%s' % presence['type'], presence) | ||||
|  | ||||
|         # Check for changes in subscription state. | ||||
|         if presence['type'] in ('subscribe', 'subscribed', | ||||
|   | ||||
| @@ -79,7 +79,7 @@ class ComponentXMPP(BaseXMPP): | ||||
|                                self._handle_probe) | ||||
|  | ||||
|     def connect(self, host=None, port=None, use_ssl=False,  | ||||
|                       use_tls=True, reattempt=True): | ||||
|                       use_tls=False, reattempt=True): | ||||
|         """Connect to the server. | ||||
|  | ||||
|         Setting ``reattempt`` to ``True`` will cause connection attempts to | ||||
| @@ -104,10 +104,13 @@ class ComponentXMPP(BaseXMPP): | ||||
|  | ||||
|         self.server_name = self.boundjid.host | ||||
|  | ||||
|         if use_tls: | ||||
|             log.info("XEP-0114 components can not use TLS") | ||||
|  | ||||
|         log.debug("Connecting to %s:%s", host, port) | ||||
|         return XMLStream.connect(self, host=host, port=port, | ||||
|                                        use_ssl=use_ssl, | ||||
|                                        use_tls=use_tls, | ||||
|                                        use_tls=False, | ||||
|                                        reattempt=reattempt) | ||||
|  | ||||
|     def incoming_filter(self, xml): | ||||
|   | ||||
| @@ -9,5 +9,5 @@ | ||||
| # We don't want to have to import the entire library | ||||
| # just to get the version info for setup.py | ||||
|  | ||||
| __version__ = '1.1.2' | ||||
| __version_info__ = (1, 1, 2, '', 0) | ||||
| __version__ = '1.1.3' | ||||
| __version_info__ = (1, 1, 3, '', 0) | ||||
|   | ||||
| @@ -493,7 +493,8 @@ class XMLStream(object): | ||||
|  | ||||
|             ssl_socket = ssl.wrap_socket(self.socket, | ||||
|                                          ca_certs=self.ca_certs, | ||||
|                                          cert_reqs=cert_policy) | ||||
|                                          cert_reqs=cert_policy, | ||||
|                                          do_handshake_on_connect=False) | ||||
|  | ||||
|             if hasattr(self.socket, 'socket'): | ||||
|                 # We are using a testing socket, so preserve the top | ||||
| @@ -511,6 +512,16 @@ class XMLStream(object): | ||||
|                 self.socket.connect(self.address) | ||||
|  | ||||
|                 if self.use_ssl and self.ssl_support: | ||||
|                     try: | ||||
|                         self.socket.do_handshake() | ||||
|                     except (Socket.error, ssl.SSLError): | ||||
|                         log.error('CERT: Invalid certificate trust chain.') | ||||
|                         if not self.event_handled('ssl_invalid_chain'): | ||||
|                             self.disconnect(self.auto_reconnect, send_close=False) | ||||
|                         else: | ||||
|                             self.event('ssl_invalid_chain', direct=True) | ||||
|                         return False | ||||
|  | ||||
|                     self._der_cert = self.socket.getpeercert(binary_form=True) | ||||
|                     pem_cert = ssl.DER_cert_to_PEM_cert(self._der_cert) | ||||
|                     log.debug('CERT: %s', pem_cert) | ||||
| @@ -520,8 +531,10 @@ class XMLStream(object): | ||||
|                         cert.verify(self._expected_server_name, self._der_cert) | ||||
|                     except cert.CertificateError as err: | ||||
|                         log.error(err.message) | ||||
|                         self.event('ssl_invalid_cert', cert, direct=True) | ||||
|                         self.disconnect(send_close=False) | ||||
|                         if not self.event_handled('ssl_invalid_cert'): | ||||
|                             self.disconnect(send_close=False) | ||||
|                         else: | ||||
|                             self.event('ssl_invalid_cert', cert, direct=True) | ||||
|  | ||||
|             self.set_socket(self.socket, ignore=True) | ||||
|             #this event is where you should set your application state | ||||
| @@ -788,10 +801,12 @@ class XMLStream(object): | ||||
|  | ||||
|             try: | ||||
|                 self.socket.do_handshake() | ||||
|             except: | ||||
|             except (Socket.error, ssl.SSLError): | ||||
|                 log.error('CERT: Invalid certificate trust chain.') | ||||
|                 self.event('ssl_invalid_chain', direct=True) | ||||
|                 self.disconnect(self.auto_reconnect, send_close=False) | ||||
|                 if not self.event_handled('ssl_invalid_chain'): | ||||
|                     self.disconnect(self.auto_reconnect, send_close=False) | ||||
|                 else: | ||||
|                     self.event('ssl_invalid_chain', direct=True) | ||||
|                 return False | ||||
|  | ||||
|             self._der_cert = self.socket.getpeercert(binary_form=True) | ||||
| @@ -803,9 +818,10 @@ class XMLStream(object): | ||||
|                 cert.verify(self._expected_server_name, self._der_cert) | ||||
|             except cert.CertificateError as err: | ||||
|                 log.error(err.message) | ||||
|                 self.event('ssl_invalid_cert', cert, direct=True) | ||||
|                 if not self.event_handled('ssl_invalid_cert'): | ||||
|                     self.disconnect(self.auto_reconnect, send_close=False) | ||||
|                 else: | ||||
|                     self.event('ssl_invalid_cert', cert, direct=True) | ||||
|  | ||||
|             self.set_socket(self.socket) | ||||
|             return True | ||||
| @@ -819,9 +835,17 @@ class XMLStream(object): | ||||
|         if not self.use_tls and not self.use_ssl: | ||||
|             return | ||||
|  | ||||
|         if not self._der_cert: | ||||
|             log.warn("TLS or SSL was enabled, but no certificate was found.") | ||||
|             return | ||||
|  | ||||
|         def restart(): | ||||
|             log.warn("The server certificate has expired. Restarting.") | ||||
|             self.reconnect() | ||||
|             if not self.event_handled('ssl_expired_cert'): | ||||
|                 log.warn("The server certificate has expired. Restarting.") | ||||
|                 self.reconnect() | ||||
|             else: | ||||
|                 pem_cert = ssl.DER_cert_to_PEM_cert(self._der_cert) | ||||
|                 self.event('ssl_expired_cert', pem_cert) | ||||
|  | ||||
|         cert_ttl = cert.get_ttl(self._der_cert) | ||||
|         if cert_ttl is None: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user