diff -up gridengine/source/libs/comm/cl_ssl_framework.c.openssl gridengine/source/libs/comm/cl_ssl_framework.c --- gridengine/source/libs/comm/cl_ssl_framework.c.openssl 2009-08-25 17:06:53.000000000 +0200 +++ gridengine/source/libs/comm/cl_ssl_framework.c 2009-08-25 17:06:03.000000000 +0200 @@ -234,8 +234,15 @@ static const char* (*cl_com_ssl static int (*cl_com_ssl_func__SSL_get_ex_data_X509_STORE_CTX_idx) (void); static void* (*cl_com_ssl_func__SSL_CTX_get_ex_data) (SSL_CTX *ssl,int idx); static int (*cl_com_ssl_func__SSL_CTX_set_ex_data) (SSL_CTX *ssl,int idx,void *data); +/* ugly workaround for extremely ugly usage of OpenSSL API */ +#if OPENSSL_VERSION_NUMBER >= 0x10000000L +#define STACK _STACK +#define SKVAL_RTYPE char +#else +#define SKVAL_RTYPE void +#endif static int (*cl_com_ssl_func__sk_num) (const STACK *); -static char* (*cl_com_ssl_func__sk_value) (const STACK *, int); +static SKVAL_RTYPE* (*cl_com_ssl_func__sk_value) (const STACK *, int); static int (*cl_com_ssl_func__X509_STORE_get_by_subject) (X509_STORE_CTX *vs,int type,X509_NAME *name, X509_OBJECT *ret); static void (*cl_com_ssl_func__EVP_PKEY_free) (EVP_PKEY *pkey); static void (*cl_com_ssl_func__X509_STORE_CTX_set_error) (X509_STORE_CTX *ctx,int s); @@ -1706,7 +1713,7 @@ static int cl_com_ssl_build_symbol_table } func_name = "sk_value"; - cl_com_ssl_func__sk_value = (char* (*)(const STACK *, int))dlsym(cl_com_ssl_crypto_handle, func_name); + cl_com_ssl_func__sk_value = (SKVAL_RTYPE* (*)(const STACK *, int))dlsym(cl_com_ssl_crypto_handle, func_name); if (cl_com_ssl_func__sk_value == NULL) { CL_LOG_STR(CL_LOG_ERROR,"dlsym error: can't get function address:", func_name); had_errors++; diff -up gridengine/source/security/sec/HOWTO.openssl gridengine/source/security/sec/HOWTO