diff -up virtuoso-opensource-5.0.11/libsrc/Dk/Dkernel.c.openssl virtuoso-opensource-5.0.11/libsrc/Dk/Dkernel.c --- virtuoso-opensource-5.0.11/libsrc/Dk/Dkernel.c.openssl 2009-04-17 22:07:28.000000000 +0200 +++ virtuoso-opensource-5.0.11/libsrc/Dk/Dkernel.c 2009-08-26 16:03:23.000000000 +0200 @@ -4798,7 +4798,11 @@ dk_ssl_free (void *old) static void ssl_server_init () { +#if (OPENSSL_VERSION_NUMBER >= 0x10000000L) + const SSL_METHOD *ssl_server_method = NULL; +#else SSL_METHOD *ssl_server_method = NULL; +#endif unsigned char tmp[1024]; #ifndef NO_THREAD char err_buf[1024]; @@ -4888,12 +4892,12 @@ ssl_server_init () SSL_CTX_set_session_id_context (ssl_server_ctx, (unsigned char *) &session_id_context, sizeof session_id_context); skCAList = SSL_CTX_get_client_CA_list (ssl_server_ctx); - if (sk_num ((STACK *) skCAList) == 0) + if (sk_X509_NAME_num (skCAList) == 0) log_warning ("ODBC X509 Client authentication requested but no CA known for verification"); - for (i = 0; i < sk_num ((STACK *) skCAList); i++) + for (i = 0; i < sk_X509_NAME_num (skCAList); i++) { char ca_buf[1024]; - X509_NAME *ca_name = (X509_NAME *) sk_value ((STACK *) skCAList, i); + X509_NAME *ca_name = (X509_NAME *) sk_X509_NAME_value (skCAList, i); if (X509_NAME_oneline (ca_name, ca_buf, sizeof (ca_buf))) log_debug ("ODBC Server Using X509 Client CA %s", ca_buf); } @@ -5058,7 +5062,7 @@ ssl_setup: if (ca && ca[0] != 0) { - sk_pop_free ((STACK *) ca_list, (void (*)(void *)) X509_free); + sk_X509_pop_free (ca_list, X509_free); ca_list = NULL; ca_list = PEM_load_certs (ca, passwd); } @@ -5067,30 +5071,30 @@ ssl_setup: { X509_free (cert); EVP_PKEY_free (pkey); - sk_pop_free ((STACK *) ca_list, (void (*)(void *)) X509_free); + sk_X509_pop_free (ca_list, X509_free); return 0; } EVP_PKEY_free (pkey); if (!SSL_use_certificate (ssl, cert)) { X509_free (cert); - sk_pop_free ((STACK *) ca_list, (void (*)(void *)) X509_free); + sk_X509_pop_free (ca_list, X509_free); return 0; } X509_free (cert); if (!SSL_check_private_key (ssl)) { - sk_pop_free ((STACK *) ca_list, (void (*)(void *)) X509_free); + sk_X509_pop_free (ca_list, X509_free); return 0; } - for (i = 0; i < sk_num ((STACK *) ca_list); i++) + for (i = 0; i < sk_X509_num (ca_list); i++) { - X509 *ca = (X509 *) sk_value ((STACK *) ca_list, i); + X509 *ca = sk_X509_value (ca_list, i); SSL_add_client_CA (ssl, ca); X509_STORE_add_cert (SSL_CTX_get_cert_store (ssl_ctx), ca); } - sk_pop_free ((STACK *) ca_list, (void (*)(void *)) X509_free); + sk_X509_pop_free (ca_list, X509_free); return 1; } diff -up virtuoso-opensource-5.0.11/libsrc/Wi/http.c.openssl virtuoso-opensource-5.0.11/libsrc/Wi/http.c --- virtuoso-opensource-5.0.11/libsrc/Wi/http.c.openssl 2009-04-19 23:48:56.000000000 +0200 +++ virtuoso-opensource-5.0.11/libsrc/Wi/http.c 2009-08-26 16:28:03.000000000 +0200 @@ -7601,13 +7601,13 @@ http_set_ssl_listen (dk_session_t * list SSL_CTX_set_client_CA_list (ssl_ctx, skCAList); skCAList = SSL_CTX_get_client_CA_list(ssl_ctx); - if (sk_num((STACK *) skCAList) == 0) + if (sk_X509_NAME_num(skCAList) == 0) log_warning ("HTTPS Client authentication requested but no CA known for verification"); - for (i = 0; i < sk_num((STACK *) skCAList); i++) + for (i = 0; i < sk_X509_NAME_num(skCAList); i++) { char ca_buf[1024]; - X509_NAME *ca_name = (X509_NAME *) sk_value ((STACK *) skCAList, i); + X509_NAME *ca_name = sk_X509_NAME_value (skCAList, i); if (X509_NAME_oneline (ca_name, ca_buf, sizeof (ca_buf))) log_debug ("HTTPS Using X509 Client CA %s", ca_buf); } @@ -9697,13 +9697,13 @@ http_init_part_two () SSL_CTX_set_client_CA_list (ssl_ctx, skCAList); skCAList = SSL_CTX_get_client_CA_list (ssl_ctx); - if (sk_num((STACK *) skCAList) == 0) + if (sk_X509_NAME_num(skCAList) == 0) log_warning ("HTTPS Client authentication requested but no CA known for verification"); - for (i = 0; i < sk_num((STACK *) skCAList); i++) + for (i = 0; i < sk_X509_NAME_num(skCAList); i++) { char ca_buf[1024]; - X509_NAME *ca_name = (X509_NAME *) sk_value ((STACK *) skCAList, i); + X509_NAME *ca_name = sk_X509_NAME_value (skCAList, i); if (X509_NAME_oneline (ca_name, ca_buf, sizeof (ca_buf))) log_debug ("HTTPS Using X509 Client CA %s", ca_buf); }