summaryrefslogtreecommitdiff
path: root/parallel/sge/patches/patch-bl
blob: 9a39a4a1a752eebbd5fd67d10d7d010f6f8551df (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
$NetBSD: patch-bl,v 1.5 2011/02/17 08:55:11 markd Exp $

--- source/libs/comm/cl_ssl_framework.c.orig	2009-02-16 08:50:41.000000000 +0000
+++ source/libs/comm/cl_ssl_framework.c
@@ -104,6 +104,9 @@
 #define OPENSSL_CONST const
 #endif
 
+#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10000000L
+typedef _STACK STACK;
+#endif
 
 #define cl_com_ssl_func__SSL_CTX_set_mode(ctx,op) \
 	cl_com_ssl_func__SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,(op),NULL)
@@ -161,8 +164,8 @@ static int                  (*cl_com_ssl
 static void                 (*cl_com_ssl_func__SSL_set_bio)                         (SSL *s, BIO *rbio,BIO *wbio);
 static int                  (*cl_com_ssl_func__SSL_accept)                          (SSL *ssl);
 static void                 (*cl_com_ssl_func__SSL_CTX_free)                        (SSL_CTX *);
-static SSL_CTX*             (*cl_com_ssl_func__SSL_CTX_new)                         (SSL_METHOD *meth);
-static SSL_METHOD*          (*cl_com_ssl_func__SSLv23_method)                       (void);
+static SSL_CTX*             (*cl_com_ssl_func__SSL_CTX_new)                         (const SSL_METHOD *meth);
+static const SSL_METHOD*    (*cl_com_ssl_func__SSLv23_method)                       (void);
 static int                  (*cl_com_ssl_func__SSL_CTX_use_certificate_chain_file)  (SSL_CTX *ctx, const char *file);
 static int                  (*cl_com_ssl_func__SSL_CTX_use_certificate)             (SSL_CTX *ctx, X509 *cert);
 static int                  (*cl_com_ssl_func__SSL_CTX_use_PrivateKey_file)         (SSL_CTX *ctx, const char *file, int type);
@@ -243,9 +246,9 @@ static void                 (*cl_com_ssl
 static void                 (*cl_com_ssl_func__X509_STORE_CTX_set_error)            (X509_STORE_CTX *ctx,int s);
 static void                 (*cl_com_ssl_func__X509_OBJECT_free_contents)           (X509_OBJECT *a);
 static ASN1_INTEGER*        (*cl_com_ssl_func__X509_get_serialNumber)               (X509 *x);
-static int                  (*cl_com_ssl_func__X509_cmp_current_time)               (ASN1_TIME *s);
-static int                  (*cl_com_ssl_func__ASN1_INTEGER_cmp)                    (ASN1_INTEGER *x, ASN1_INTEGER *y);
-static long                 (*cl_com_ssl_func__ASN1_INTEGER_get)                    (ASN1_INTEGER *a);
+static int                  (*cl_com_ssl_func__X509_cmp_current_time)               (const ASN1_TIME *s);
+static int                  (*cl_com_ssl_func__ASN1_INTEGER_cmp)                    (const ASN1_INTEGER *x, const ASN1_INTEGER *y);
+static long                 (*cl_com_ssl_func__ASN1_INTEGER_get)                    (const ASN1_INTEGER *a);
 static int                  (*cl_com_ssl_func__X509_CRL_verify)                     (X509_CRL *a, EVP_PKEY *r);
 static EVP_PKEY*            (*cl_com_ssl_func__X509_get_pubkey)                     (X509 *x);
 static int                  (*cl_com_ssl_func__X509_STORE_set_default_paths)        (X509_STORE *ctx);
@@ -1040,7 +1043,7 @@ static int cl_com_ssl_build_symbol_table
    {
       char* func_name = NULL;
       int had_errors = 0;
-#if defined(FREEBSD) || defined(DARWIN)
+#if defined(NETBSD) || defined(FREEBSD) || defined(DARWIN)
       void* cl_com_ssl_crypto_handle_saved = NULL;
 #endif
 
@@ -1062,7 +1065,7 @@ static int cl_com_ssl_build_symbol_table
       cl_com_ssl_crypto_handle = dlopen ("libssl.dylib", RTLD_NOW | RTLD_GLOBAL );
 #endif /* RTLD_NODELETE */
 
-#elif defined(FREEBSD)
+#elif defined(NETBSD) || defined(FREEBSD)
 #ifdef RTLD_NODELETE
       cl_com_ssl_crypto_handle = dlopen ("libssl.so", RTLD_LAZY | RTLD_GLOBAL | RTLD_NODELETE);
 #else
@@ -1091,7 +1094,7 @@ static int cl_com_ssl_build_symbol_table
          return CL_RETVAL_SSL_DLOPEN_SSL_LIB_FAILED;
       }
       
-#if defined(FREEBSD) || defined(DARWIN)
+#if defined(NETBSD) || defined(FREEBSD) || defined(DARWIN)
       cl_com_ssl_crypto_handle_saved = cl_com_ssl_crypto_handle;
       cl_com_ssl_crypto_handle = RTLD_DEFAULT;
 #endif
@@ -1204,14 +1207,14 @@ static int cl_com_ssl_build_symbol_table
       }
 
       func_name = "SSL_CTX_new";
-      cl_com_ssl_func__SSL_CTX_new = (SSL_CTX* (*)(SSL_METHOD *meth))dlsym(cl_com_ssl_crypto_handle, func_name);
+      cl_com_ssl_func__SSL_CTX_new = (SSL_CTX* (*)(const SSL_METHOD *meth))dlsym(cl_com_ssl_crypto_handle, func_name);
       if (cl_com_ssl_func__SSL_CTX_new == NULL) {
          CL_LOG_STR(CL_LOG_ERROR,"dlsym error: can't get function address:", func_name);
          had_errors++;
       }
 
       func_name = "SSLv23_method";
-      cl_com_ssl_func__SSLv23_method = (SSL_METHOD* (*)(void))dlsym(cl_com_ssl_crypto_handle, func_name);
+      cl_com_ssl_func__SSLv23_method = (const SSL_METHOD* (*)(void))dlsym(cl_com_ssl_crypto_handle, func_name);
       if (cl_com_ssl_func__SSLv23_method == NULL) {
          CL_LOG_STR(CL_LOG_ERROR,"dlsym error: can't get function address:", func_name);
          had_errors++;
@@ -1750,21 +1753,21 @@ static int cl_com_ssl_build_symbol_table
       }
 
       func_name = "X509_cmp_current_time";
-      cl_com_ssl_func__X509_cmp_current_time = (int (*)(ASN1_TIME *s))dlsym(cl_com_ssl_crypto_handle, func_name);
+      cl_com_ssl_func__X509_cmp_current_time = (int (*)(const ASN1_TIME *s))dlsym(cl_com_ssl_crypto_handle, func_name);
       if (cl_com_ssl_func__X509_cmp_current_time == NULL) {
          CL_LOG_STR(CL_LOG_ERROR,"dlsym error: can't get function address:", func_name);
          had_errors++;
       }
 
       func_name = "ASN1_INTEGER_cmp";
-      cl_com_ssl_func__ASN1_INTEGER_cmp = (int (*)(ASN1_INTEGER *x, ASN1_INTEGER *y))dlsym(cl_com_ssl_crypto_handle, func_name);
+      cl_com_ssl_func__ASN1_INTEGER_cmp = (int (*)(const ASN1_INTEGER *x, const ASN1_INTEGER *y))dlsym(cl_com_ssl_crypto_handle, func_name);
       if (cl_com_ssl_func__ASN1_INTEGER_cmp == NULL) {
          CL_LOG_STR(CL_LOG_ERROR,"dlsym error: can't get function address:", func_name);
          had_errors++;
       }
 
       func_name = "ASN1_INTEGER_get";
-      cl_com_ssl_func__ASN1_INTEGER_get = (long (*)(ASN1_INTEGER *a))dlsym(cl_com_ssl_crypto_handle, func_name);
+      cl_com_ssl_func__ASN1_INTEGER_get = (long (*)(const ASN1_INTEGER *a))dlsym(cl_com_ssl_crypto_handle, func_name);
       if (cl_com_ssl_func__ASN1_INTEGER_get == NULL) {
          CL_LOG_STR(CL_LOG_ERROR,"dlsym error: can't get function address:", func_name);
          had_errors++;
@@ -1813,7 +1816,7 @@ static int cl_com_ssl_build_symbol_table
          return CL_RETVAL_SSL_CANT_LOAD_ALL_FUNCTIONS;
       }
 
-#if defined(FREEBSD)
+#if defined(FREEBSD) || defined(NETBSD)
       cl_com_ssl_crypto_handle = cl_com_ssl_crypto_handle_saved;
 #endif
 
@@ -1918,7 +1921,7 @@ static int cl_com_ssl_build_symbol_table
       cl_com_ssl_func__SSL_CTX_get_ex_data = (void* (*)(SSL_CTX *ssl,int idx))SSL_CTX_get_ex_data;
       cl_com_ssl_func__SSL_CTX_set_ex_data = SSL_CTX_set_ex_data;
       cl_com_ssl_func__sk_num = sk_num;
-      cl_com_ssl_func__sk_value = sk_value;
+      cl_com_ssl_func__sk_value = (char* (*)(const STACK *, int))sk_value;
       cl_com_ssl_func__X509_STORE_get_by_subject = X509_STORE_get_by_subject;
       cl_com_ssl_func__EVP_PKEY_free = EVP_PKEY_free;      
       cl_com_ssl_func__X509_STORE_CTX_set_error = X509_STORE_CTX_set_error;