mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	Break SSL support out of _socket module and place it into a new
helper module _ssl. The support for the RAND_* APIs in _ssl is now only enabled for OpenSSL 0.9.5 and up since they were added in that release. Note that socketmodule.* should really be renamed to _socket.* -- unfortunately, this seems to lose the CVS history of the file. Please review and test... I was only able to test the header file chaos in socketmodule.c/h on Linux. The test run through fine and compiles don't give errors or warnings. WARNING: This patch does *not* include changes to the various non-Unix build process files.
This commit is contained in:
		
							parent
							
								
									e4418609f7
								
							
						
					
					
						commit
						a5d2b4cb18
					
				
					 7 changed files with 747 additions and 577 deletions
				
			
		
							
								
								
									
										43
									
								
								setup.py
									
										
									
									
									
								
							
							
						
						
									
										43
									
								
								setup.py
									
										
									
									
									
								
							|  | @ -173,21 +173,26 @@ def build_extension(self, ext): | |||
|             self.get_ext_filename(self.get_ext_fullname(ext.name))) | ||||
|         try: | ||||
|             imp.load_dynamic(ext.name, ext_filename) | ||||
|         except ImportError: | ||||
|             self.announce('WARNING: removing "%s" since importing it failed' % | ||||
|                           ext.name) | ||||
|             assert not self.inplace | ||||
|             fullname = self.get_ext_fullname(ext.name) | ||||
|             ext_filename = os.path.join(self.build_lib, | ||||
|                                         self.get_ext_filename(fullname)) | ||||
|             os.remove(ext_filename) | ||||
|         except ImportError, why: | ||||
| 
 | ||||
|             # XXX -- This relies on a Vile HACK in | ||||
|             # distutils.command.build_ext.build_extension().  The | ||||
|             # _built_objects attribute is stored there strictly for | ||||
|             # use here. | ||||
|             for filename in self._built_objects: | ||||
|                 os.remove(filename) | ||||
|             if 1: | ||||
|                 self.announce('*** WARNING: removing "%s" since importing it' | ||||
|                               ' failed: %s' % (ext.name, why)) | ||||
|                 assert not self.inplace | ||||
|                 fullname = self.get_ext_fullname(ext.name) | ||||
|                 ext_filename = os.path.join(self.build_lib, | ||||
|                                             self.get_ext_filename(fullname)) | ||||
|                 os.remove(ext_filename) | ||||
| 
 | ||||
|                 # XXX -- This relies on a Vile HACK in | ||||
|                 # distutils.command.build_ext.build_extension().  The | ||||
|                 # _built_objects attribute is stored there strictly for | ||||
|                 # use here. | ||||
|                 for filename in self._built_objects: | ||||
|                     os.remove(filename) | ||||
|             else: | ||||
|                 self.announce('*** WARNING: importing extension "%s" ' | ||||
|                               'failed: %s' % (ext.name, why)) | ||||
| 
 | ||||
|     def get_platform (self): | ||||
|         # Get value of sys.platform | ||||
|  | @ -359,7 +364,8 @@ def detect_modules(self): | |||
|         exts.append( Extension('crypt', ['cryptmodule.c'], libraries=libs) ) | ||||
| 
 | ||||
|         # socket(2) | ||||
|         # Detect SSL support for the socket module | ||||
|         exts.append( Extension('_socket', ['socketmodule.c']) ) | ||||
|         # Detect SSL support for the socket module (via _ssl) | ||||
|         ssl_incs = find_file('openssl/ssl.h', inc_dirs, | ||||
|                              ['/usr/local/ssl/include', | ||||
|                               '/usr/contrib/ssl/include/' | ||||
|  | @ -372,13 +378,10 @@ def detect_modules(self): | |||
| 
 | ||||
|         if (ssl_incs is not None and | ||||
|             ssl_libs is not None): | ||||
|             exts.append( Extension('_socket', ['socketmodule.c'], | ||||
|             exts.append( Extension('_ssl', ['_ssl.c'], | ||||
|                                    include_dirs = ssl_incs, | ||||
|                                    library_dirs = ssl_libs, | ||||
|                                    libraries = ['ssl', 'crypto'], | ||||
|                                    define_macros = [('USE_SSL',1)] ) ) | ||||
|         else: | ||||
|             exts.append( Extension('_socket', ['socketmodule.c']) ) | ||||
|                                    libraries = ['ssl', 'crypto']) ) | ||||
| 
 | ||||
|         # Modules that provide persistent dictionary-like semantics.  You will | ||||
|         # probably want to arrange for at least one of them to be available on | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Marc-André Lemburg
						Marc-André Lemburg