aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/stack
diff options
context:
space:
mode:
authorBen Laurie <ben@openssl.org>1999-02-28 17:41:55 +0000
committerBen Laurie <ben@openssl.org>1999-02-28 17:41:55 +0000
commiteb90a483ad85e9dc430610a78362837ad344cac1 (patch)
treebe1d4da1c341e8e570a1f7f445ca67a382ea5e50 /crypto/stack
parent49bc262459b5caf2be68e8ac178df780e6004c1a (diff)
downloadopenssl-eb90a483ad85e9dc430610a78362837ad344cac1.tar.gz
Add functions to add certs to stacks, used for CA file/path stuff in servers.
Diffstat (limited to 'crypto/stack')
-rw-r--r--crypto/stack/stack.c6
-rw-r--r--crypto/stack/stack.h4
2 files changed, 7 insertions, 3 deletions
diff --git a/crypto/stack/stack.c b/crypto/stack/stack.c
index 7b96326156..683468264a 100644
--- a/crypto/stack/stack.c
+++ b/crypto/stack/stack.c
@@ -82,13 +82,17 @@ char *STACK_version="Stack part of OpenSSL 0.9.2 31-Dec-1998";
#include <errno.h>
-void sk_set_cmp_func(sk,c)
+int (*sk_set_cmp_func(sk,c))()
STACK *sk;
int (*c)();
{
+ int (*old)()=sk->comp;
+
if (sk->comp != c)
sk->sorted=0;
sk->comp=c;
+
+ return old;
}
STACK *sk_dup(sk)
diff --git a/crypto/stack/stack.h b/crypto/stack/stack.h
index 615eb6ff94..6dc52db63c 100644
--- a/crypto/stack/stack.h
+++ b/crypto/stack/stack.h
@@ -91,7 +91,7 @@ int sk_unshift(STACK *st,char *data);
char *sk_shift(STACK *st);
char *sk_pop(STACK *st);
void sk_zero(STACK *st);
-void sk_set_cmp_func(STACK *sk, int (*c)());
+int (*sk_set_cmp_func(STACK *sk, int (*c)()))();
STACK *sk_dup(STACK *st);
#else
@@ -108,7 +108,7 @@ int sk_unshift();
char *sk_shift();
char *sk_pop();
void sk_zero();
-void sk_set_cmp_func();
+int (*sk_set_cmp_func())();
STACK *sk_dup();
#endif