rpms/pyOpenSSL/devel pyOpenSSL-threadsafe.patch,1.4,1.5

Dennis Gilmore ausil at fedoraproject.org
Fri Sep 19 23:53:27 UTC 2008


Author: ausil

Update of /cvs/pkgs/rpms/pyOpenSSL/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv9357

Modified Files:
	pyOpenSSL-threadsafe.patch 
Log Message:
 fix whitespace


pyOpenSSL-threadsafe.patch:

Index: pyOpenSSL-threadsafe.patch
===================================================================
RCS file: /cvs/pkgs/rpms/pyOpenSSL/devel/pyOpenSSL-threadsafe.patch,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- pyOpenSSL-threadsafe.patch	19 Sep 2008 23:48:25 -0000	1.4
+++ pyOpenSSL-threadsafe.patch	19 Sep 2008 23:52:57 -0000	1.5
@@ -1,157 +1,157 @@
 diff -Nur pyOpenSSL-0.7-bad/src/crypto/crypto.c pyOpenSSL-0.7/src/crypto/crypto.c
---- pyOpenSSL-0.7-bad/src/crypto/crypto.c       2008-03-21 17:34:42.000000000 -0500
-+++ pyOpenSSL-0.7/src/crypto/crypto.c   2008-09-19 17:22:12.000000000 -0500        
- -694,6 +694,74 @@                                                               
-     { NULL, NULL }                                                                
- };                                                                                
-                                                                                   
-+                                                                                  
-+#ifdef WITH_THREAD                                                                
-+                                                                                  
-+#include <pthread.h>                                                              
-+                                                                                  
-+#define MUTEX_TYPE pthread_mutex_t                                                
-+#define MUTEX_SETUP(x) pthread_mutex_init(&(x), NULL)                             
-+#define MUTEX_CLEANUP(x) pthread_mutex_destroy(&(x))                              
-+#define MUTEX_LOCK(x) pthread_mutex_lock(&(x))                                    
-+#define MUTEX_UNLOCK(x) pthread_mutex_unlock(&(x))                                
-+#define THREAD_ID pthread_self()                                                  
-+                                                                                  
-+void handle_error(const char *file, int lineno, const char *msg)                  
-+{                                                                                 
-+     fprintf(stderr, "** %s:%i %s\n", file, lineno, msg);                         
-+     ERR_print_errors_fp(stderr);                                                 
-+}                                                                                 
-+                                                                                  
-+                                                                                  
-+/* This array will store all of the mutexes available to OpenSSL. */              
-+static MUTEX_TYPE *mutex_buf = NULL;                                              
-+                                                                                  
-+                                                                                  
-+static void locking_function(int mode, int n, const char * file, int line)        
-+{                                                                                 
-+    if (mode & CRYPTO_LOCK)                                                       
-+        MUTEX_LOCK(mutex_buf[n]);                                                 
-+    else                                                                          
-+        MUTEX_UNLOCK(mutex_buf[n]);                                               
-+}                                                                                 
-+                                                                                  
-+static unsigned long id_function(void)                                            
-+{                                                                                 
-+    return ((unsigned long)THREAD_ID);                                            
-+}                                                                                 
-+                                                                                  
-+int init_openssl_threads(void)                                                    
-+{                                                                                 
-+    int i;                                                                        
-+                                                                                  
-+    mutex_buf = (MUTEX_TYPE *)malloc(CRYPTO_num_locks() * sizeof(MUTEX_TYPE));    
-+    if (!mutex_buf)                                                               
-+        return 0;                                                                 
-+    for (i = 0; i < CRYPTO_num_locks(); i++)                                      
-+        MUTEX_SETUP(mutex_buf[i]);                                                
-+    CRYPTO_set_id_callback(id_function);                                          
-+    CRYPTO_set_locking_callback(locking_function);                                
-+    return 1;                                                                     
-+}                                                                                 
-+                                                                                  
-+int deinit_openssl_threads(void)                                                  
-+{                                                                                 
-+    int i;                                                                        
-+                                                                                  
-+    if (!mutex_buf)                                                               
-+        return 0;                                                                 
-+    CRYPTO_set_id_callback(NULL);                                                 
-+    CRYPTO_set_locking_callback(NULL);                                            
-+    for (i = 0; i < CRYPTO_num_locks(); i++)                                      
-+        MUTEX_CLEANUP(mutex_buf[i]);                                              
-+    free(mutex_buf);                                                              
-+    mutex_buf = NULL;                                                             
-+    return 1;                                                                     
-+}                                                                                 
-+                                                                                  
-+#endif                                                                            
-+                                                                                  
-+                                                                                  
- /*                                                                                
-  * Initialize crypto sub module                                                   
-  *                                                                                
- -739,6 +807,10 @@                                                               
-     PyModule_AddIntConstant(module, "TYPE_DSA", crypto_TYPE_DSA);                 
-                                                                                   
-     dict = PyModule_GetDict(module);                                              
-+#ifdef WITH_THREAD                                                                
-+    if (!init_openssl_threads())                                                  
-+        goto error;                                                               
-+#endif                                                                            
-     if (!init_crypto_x509(dict))                                                  
-         goto error;                                                               
-     if (!init_crypto_x509name(dict))                                              
-diff -Nur pyOpenSSL-0.7-bad/src/ssl/context.c pyOpenSSL-0.7/src/ssl/context.c      
---- pyOpenSSL-0.7-bad/src/ssl/context.c 2008-03-21 17:34:42.000000000 -0500        
-+++ pyOpenSSL-0.7/src/ssl/context.c     2008-09-19 17:22:12.000000000 -0500        
- -64,39 +64,33 @@                                                                
- static int                                                                        
- global_passphrase_callback(char *buf, int maxlen, int verify, void *arg)          
- {                                                                                 
--    int len;                                                                      
-+    int len = 0;                                                                  
-     char *str;                                                                    
-     PyObject *argv, *ret = NULL;                                                  
-     ssl_ContextObj *ctx = (ssl_ContextObj *)arg;                                  
-                                                                                   
-+    if (!ctx->tstate)                                                             
-+        fprintf (stderr, "ERROR: ctx->tstate == NULL!\n");                        
-+    MY_END_ALLOW_THREADS(ctx->tstate);                                            
-+                                                                                  
-     /* The Python callback is called with a (maxlen,verify,userdata) tuple */     
-     argv = Py_BuildValue("(iiO)", maxlen, verify, ctx->passphrase_userdata);      
--    if (ctx->tstate != NULL)                                                      
--    {                                                                             
--        /* We need to get back our thread state before calling the callback */    
--        MY_END_ALLOW_THREADS(ctx->tstate);                                        
--        ret = PyEval_CallObject(ctx->passphrase_callback, argv);                  
--        MY_BEGIN_ALLOW_THREADS(ctx->tstate);                                      
--    }                                                                             
--    else                                                                          
--    {                                                                             
--        ret = PyEval_CallObject(ctx->passphrase_callback, argv);                  
--    }                                                                             
-+    ret = PyEval_CallObject(ctx->passphrase_callback, argv);                      
-     Py_DECREF(argv);                                                              
-                                                                                   
-     if (ret == NULL)                                                              
--        return 0;                                                                 
-+        goto out;                                                                 
-                                                                                   
-     if (!PyObject_IsTrue(ret))                                                    
-     {                                                                             
-         Py_DECREF(ret);                                                           
--       return 0;                                                                  
-+        goto out;                                                                 
-     }                                                                             
-                                                                                   
-     if (!PyString_Check(ret))                                                     
-     {                                                                             
-         Py_DECREF(ret);                                                           
--        return 0;                                                                 
-+        goto out;                                                                 
-     }                                                                             
-                                                                                   
-     len = PyString_Size(ret);                                                     
- -107,6 +101,8 @@                                                                
-     strncpy(buf, str, len);                                                       
-     Py_XDECREF(ret);                                                              
-                                                                                   
-+out:                                                                              
-+    MY_BEGIN_ALLOW_THREADS(ctx->tstate);                                          
-     return len;                                                                   
- }                                                                                 
-                                                                                   
- -173,28 +169,19 @@                                                              
-     ssl_ConnectionObj *conn = (ssl_ConnectionObj *)SSL_get_app_data(ssl);         
-     PyObject *argv, *ret;                                                         
-
+--- pyOpenSSL-0.7-bad/src/crypto/crypto.c	2008-03-21 17:34:42.000000000 -0500
++++ pyOpenSSL-0.7/src/crypto/crypto.c	2008-09-19 18:06:08.000000000 -0500
+@@ -694,6 +694,74 @@
+     { NULL, NULL }
+ };
+ 
++
++#ifdef WITH_THREAD
++
++#include <pthread.h>
++
++#define MUTEX_TYPE pthread_mutex_t
++#define MUTEX_SETUP(x) pthread_mutex_init(&(x), NULL)
++#define MUTEX_CLEANUP(x) pthread_mutex_destroy(&(x))
++#define MUTEX_LOCK(x) pthread_mutex_lock(&(x))
++#define MUTEX_UNLOCK(x) pthread_mutex_unlock(&(x))
++#define THREAD_ID pthread_self()
++ 
++void handle_error(const char *file, int lineno, const char *msg)
++{
++     fprintf(stderr, "** %s:%i %s\n", file, lineno, msg);
++     ERR_print_errors_fp(stderr);
++}
++ 
++ 
++/* This array will store all of the mutexes available to OpenSSL. */
++static MUTEX_TYPE *mutex_buf = NULL;
++
++
++static void locking_function(int mode, int n, const char * file, int line)
++{
++    if (mode & CRYPTO_LOCK)
++        MUTEX_LOCK(mutex_buf[n]);
++    else
++        MUTEX_UNLOCK(mutex_buf[n]);
++}
++  
++static unsigned long id_function(void)
++{
++    return ((unsigned long)THREAD_ID);
++}
++
++int init_openssl_threads(void)
++{
++    int i;
++  
++    mutex_buf = (MUTEX_TYPE *)malloc(CRYPTO_num_locks() * sizeof(MUTEX_TYPE));
++    if (!mutex_buf)
++        return 0;
++    for (i = 0; i < CRYPTO_num_locks(); i++)
++        MUTEX_SETUP(mutex_buf[i]);
++    CRYPTO_set_id_callback(id_function);
++    CRYPTO_set_locking_callback(locking_function);
++    return 1;
++}
++  
++int deinit_openssl_threads(void)
++{
++    int i;
++  
++    if (!mutex_buf)
++        return 0;
++    CRYPTO_set_id_callback(NULL);
++    CRYPTO_set_locking_callback(NULL);
++    for (i = 0; i < CRYPTO_num_locks(); i++)
++        MUTEX_CLEANUP(mutex_buf[i]);
++    free(mutex_buf);
++    mutex_buf = NULL;
++    return 1;
++} 
++
++#endif
++
++
+ /*
+  * Initialize crypto sub module
+  *
+@@ -739,6 +807,10 @@
+     PyModule_AddIntConstant(module, "TYPE_DSA", crypto_TYPE_DSA);
+ 
+     dict = PyModule_GetDict(module);
++#ifdef WITH_THREAD
++    if (!init_openssl_threads())
++        goto error;
++#endif
+     if (!init_crypto_x509(dict))
+         goto error;
+     if (!init_crypto_x509name(dict))
+diff -Nur pyOpenSSL-0.7-bad/src/ssl/context.c pyOpenSSL-0.7/src/ssl/context.c
+--- pyOpenSSL-0.7-bad/src/ssl/context.c	2008-03-21 17:34:42.000000000 -0500
++++ pyOpenSSL-0.7/src/ssl/context.c	2008-09-19 18:27:00.000000000 -0500
+@@ -64,39 +64,33 @@
+ static int
+ global_passphrase_callback(char *buf, int maxlen, int verify, void *arg)
+ {
+-    int len;
++    int len = 0;
+     char *str;
+     PyObject *argv, *ret = NULL;
+     ssl_ContextObj *ctx = (ssl_ContextObj *)arg;
+ 
++    if (!ctx->tstate)
++        fprintf (stderr, "ERROR: ctx->tstate == NULL!\n");
++    MY_END_ALLOW_THREADS(ctx->tstate);
++
+     /* The Python callback is called with a (maxlen,verify,userdata) tuple */
+     argv = Py_BuildValue("(iiO)", maxlen, verify, ctx->passphrase_userdata);
+-    if (ctx->tstate != NULL)
+-    {
+-        /* We need to get back our thread state before calling the callback */
+-        MY_END_ALLOW_THREADS(ctx->tstate);
+-        ret = PyEval_CallObject(ctx->passphrase_callback, argv);
+-        MY_BEGIN_ALLOW_THREADS(ctx->tstate);
+-    }
+-    else
+-    {
+-        ret = PyEval_CallObject(ctx->passphrase_callback, argv);
+-    }
++    ret = PyEval_CallObject(ctx->passphrase_callback, argv);
+     Py_DECREF(argv);
+ 
+     if (ret == NULL)
+-        return 0;
++        goto out;
+ 
+     if (!PyObject_IsTrue(ret))
+     {
+         Py_DECREF(ret);
+-	return 0;
++        goto out;
+     }
+ 
+     if (!PyString_Check(ret))
+     {
+         Py_DECREF(ret);
+-        return 0;
++        goto out;
+     }
+ 
+     len = PyString_Size(ret);
+@@ -107,6 +101,8 @@
+     strncpy(buf, str, len);
+     Py_XDECREF(ret);
+ 
++out:
++    MY_BEGIN_ALLOW_THREADS(ctx->tstate);
+     return len;
+ }
+ 
+@@ -173,28 +169,19 @@
+     ssl_ConnectionObj *conn = (ssl_ConnectionObj *)SSL_get_app_data(ssl);
+     PyObject *argv, *ret;
+ 
 +    if (!conn->tstate)
 +        fprintf (stderr, "ERROR: ctx->tstate == NULL!\n");
 +    MY_END_ALLOW_THREADS(conn->tstate);
@@ -181,15 +181,15 @@
 -    }
 +        Py_DECREF(ret);
      Py_DECREF(argv);
-
+ 
 +    MY_BEGIN_ALLOW_THREADS(conn->tstate);
      return;
  }
-
- -447,6 +434,8 @@
+ 
+@@ -447,6 +434,8 @@
      if (!PyArg_ParseTuple(args, "s|i:use_privatekey_file", &keyfile, &filetype))
          return NULL;
-
+ 
 +    if (self->tstate)
 +        fprintf (stderr, "ERROR: ctx->tstate != NULL!\n");
      MY_BEGIN_ALLOW_THREADS(self->tstate);




More information about the fedora-extras-commits mailing list