summaryrefslogtreecommitdiff
path: root/x11/kdelibs2/patches/patch-bt
blob: c6e4cc777ab5c1cbc2b2dc022d07229c214d6a53 (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
126
127
128
$NetBSD: patch-bt,v 1.3 2002/08/25 18:40:36 jlam Exp $

--- kssl/kopenssl.cc.orig	Wed Sep  5 00:08:18 2001
+++ kssl/kopenssl.cc
@@ -92,6 +92,7 @@ static int (*K_SSL_CTX_use_certificate) 
 static int (*K_SSL_get_error) (SSL*, int) = NULL;
 static STACK_OF(X509)* (*K_SSL_get_peer_cert_chain) (SSL*) = NULL;
 static void (*K_X509_STORE_CTX_set_chain) (X509_STORE_CTX *, STACK_OF(X509)*) = NULL;
+static void (*K_X509_STORE_CTX_set_purpose) (X509_STORE_CTX *, int) = NULL;
 static void (*K_sk_free) (STACK*) = NULL;
 static int (*K_sk_num) (STACK*) = NULL;
 static char* (*K_sk_value) (STACK*, int) = NULL;
@@ -117,7 +118,7 @@ void KOpenSSLProxy::destroy() {
   _me = NULL;
 }
 
-#ifdef __OpenBSD__
+#if defined(__OpenBSD__) || defined(__NetBSD__)
 #include <qdir.h>
 #include <qstring.h>
 #include <qstringlist.h>
@@ -180,20 +181,16 @@ KConfig *cfg;
 
    delete cfg;
 
-#ifdef __OpenBSD__
-   {
-   QString libname = findMostRecentLib("/usr/lib", "crypto");
-   if (!libname.isNull())
-         _cryptoLib = ll->globalLibrary(libname.latin1());
-   }
-#else
-   libpaths << "/usr/lib/"
-            << "/usr/local/lib/"
+   libpaths << "/usr/lib/";
+#if !defined(__OpenBSD__) && !defined(__NetBSD__)
+   libpaths << "/usr/local/lib/"
             << "/usr/local/openssl/lib/"
             << "/usr/local/ssl/lib/"
             << "/opt/openssl/lib/"
-            << "";
+#endif
+   libpaths << "";
 
+#if !defined(__OpenBSD__) && !defined(__NetBSD__)
 // FIXME: #define here for the various OS types to optimize
    libnamess << "libssl.so.0"
              << "libssl.so"
@@ -202,10 +199,16 @@ KConfig *cfg;
    libnamesc << "libcrypto.so.0"
              << "libcrypto.so"
              << "libcrypto.sl";
+#endif
 
    for (QStringList::Iterator it = libpaths.begin();
                               it != libpaths.end();
                               ++it) {
+#if defined(__NetBSD__) || defined(__OpenBSD__)
+     QString libname = findMostRecentLib(*it, "crypto");
+     if (!libname.isNull())
+         _cryptoLib = ll->globalLibrary(libname.latin1());
+#else
       for (QStringList::Iterator shit = libnamesc.begin();
                                  shit != libnamesc.end();
                                  ++shit) {
@@ -213,9 +216,9 @@ KConfig *cfg;
          _cryptoLib = ll->globalLibrary(alib.latin1());
          if (_cryptoLib) break;
       }
+#endif
       if (_cryptoLib) break;
    }
-#endif
 
    if (_cryptoLib) {
 #ifdef HAVE_SSL 
@@ -254,6 +257,7 @@ KConfig *cfg;
                 X509**, STACK_OF(X509)**)) _cryptoLib->symbol("PKCS12_parse");
       K_EVP_PKEY_free = (void (*) (EVP_PKEY *)) _cryptoLib->symbol("EVP_PKEY_free");
       K_X509_STORE_CTX_set_chain = (void (*)(X509_STORE_CTX *, STACK_OF(X509)*)) _cryptoLib->symbol("X509_STORE_CTX_set_chain");
+      K_X509_STORE_CTX_set_purpose = (void (*)(X509_STORE_CTX *, int)) _cryptoLib->symbol("X509_STORE_CTX_set_purpose");
       K_sk_free = (void (*) (STACK *)) _cryptoLib->symbol("sk_free");
       K_sk_num = (int (*) (STACK *)) _cryptoLib->symbol("sk_num");
       K_sk_value = (char* (*) (STACK *, int)) _cryptoLib->symbol("sk_value");
@@ -263,16 +267,14 @@ KConfig *cfg;
 #endif
    }
 
-#ifdef __OpenBSD__
-   {
-   QString libname = findMostRecentLib("/usr/lib", "ssl");
-   if (!libname.isNull())
-         _sslLib = ll->globalLibrary(libname.latin1());
-   }
-#else
    for (QStringList::Iterator it = libpaths.begin();
                               it != libpaths.end();
                               ++it) {
+#if defined(__OpenBSD__) || defined(__NetBSD__)
+      QString libname = findMostRecentLib(*it, "ssl");
+      if (!libname.isNull())
+           _sslLib = ll->globalLibrary(libname.latin1());
+#else
       for (QStringList::Iterator shit = libnamess.begin();
                                  shit != libnamess.end();
                                  ++shit) {
@@ -280,9 +282,9 @@ KConfig *cfg;
          _sslLib = ll->globalLibrary(alib.latin1());
          if (_sslLib) break;
       }
+#endif
       if (_sslLib) break;
    }
-#endif
 
    if (_sslLib) {
 #ifdef HAVE_SSL 
@@ -742,6 +744,10 @@ char *KOpenSSLProxy::sk_value(STACK *s, 
 
 void KOpenSSLProxy::X509_STORE_CTX_set_chain(X509_STORE_CTX *v, STACK_OF(X509)* x) {
    if (K_X509_STORE_CTX_set_chain) (K_X509_STORE_CTX_set_chain)(v,x);
+}
+
+void KOpenSSLProxy::X509_STORE_CTX_set_purpose(X509_STORE_CTX *v, int purpose) {
+   if (K_X509_STORE_CTX_set_purpose) (K_X509_STORE_CTX_set_purpose)(v,purpose);
 }