axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sa...@apache.org
Subject svn commit: r399246 - in /webservices/axis2/trunk/c: ./ include/ modules/core/transport/http/sender/ modules/core/transport/http/sender/ssl/ modules/util/
Date Wed, 03 May 2006 10:43:29 GMT
Author: sahan
Date: Wed May  3 03:43:26 2006
New Revision: 399246

URL: http://svn.apache.org/viewcvs?rev=399246&view=rev
Log:
Added ssl support at the client side

Added:
    webservices/axis2/trunk/c/modules/core/transport/http/sender/ssl/
    webservices/axis2/trunk/c/modules/core/transport/http/sender/ssl/ssl_stream.c
    webservices/axis2/trunk/c/modules/core/transport/http/sender/ssl/ssl_stream.h
    webservices/axis2/trunk/c/modules/core/transport/http/sender/ssl/ssl_utils.c
    webservices/axis2/trunk/c/modules/core/transport/http/sender/ssl/ssl_utils.h
Modified:
    webservices/axis2/trunk/c/build.sh
    webservices/axis2/trunk/c/configure.ac
    webservices/axis2/trunk/c/include/axis2_error.h
    webservices/axis2/trunk/c/modules/core/transport/http/sender/Makefile.am
    webservices/axis2/trunk/c/modules/core/transport/http/sender/http_client.c
    webservices/axis2/trunk/c/modules/util/error.c

Modified: webservices/axis2/trunk/c/build.sh
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/build.sh?rev=399246&r1=399245&r2=399246&view=diff
==============================================================================
--- webservices/axis2/trunk/c/build.sh (original)
+++ webservices/axis2/trunk/c/build.sh Wed May  3 03:43:26 2006
@@ -2,7 +2,7 @@
 ./autogen.sh
 AXIS2C_HOME=`pwd`/deploy
 export AXIS2C_HOME
-./configure --prefix=${AXIS2C_HOME} --enable-tests=yes --enable-trace=yes  --with-apache2=/usr/include/apache2
--with-apr=/usr/include/apr-0 --enable-diclient=no --enable-static=no
+./configure --prefix=${AXIS2C_HOME} --enable-tests=yes --enable-trace=yes  --with-apache2=/usr/include/apache2
--with-apr=/usr/include/apr-0 --enable-diclient=no --enable-static=no --enable-openssl=no
 make
 make install
 cd samples

Modified: webservices/axis2/trunk/c/configure.ac
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/configure.ac?rev=399246&r1=399245&r2=399246&view=diff
==============================================================================
--- webservices/axis2/trunk/c/configure.ac (original)
+++ webservices/axis2/trunk/c/configure.ac Wed May  3 03:43:26 2006
@@ -144,7 +144,7 @@
 )
 
 AC_MSG_CHECKING(whether to enable trace)
-AC_ARG_ENABLE(tests, [  --enable-trace    enable trace. default=no],
+AC_ARG_ENABLE(trace, [  --enable-trace    enable trace. default=no],
 [ case "${enableval}" in
   no)
     AC_MSG_RESULT(no)
@@ -159,7 +159,8 @@
   CFLAGS="$CFLAGS"
 )
 
-AC_ARG_ENABLE(tests, [  --enable-multi_threaded  enable trace. default=yes],
+AC_MSG_CHECKING(whether to enable multi threading)
+AC_ARG_ENABLE(multi-thread, [  --enable-multi-thread  enable multi thread. default=yes],
 [ case "${enableval}" in
   no)
     AC_MSG_RESULT(no)
@@ -169,11 +170,30 @@
     AC_MSG_RESULT(yes)
     CFLAGS="$CFLAGS -DAXIS2_SVR_MULTI_THREADED"
     ;;
+  esac ],[
+  AC_MSG_RESULT(yes)
+  CFLAGS="$CFLAGS -DAXIS2_SVR_MULTI_THREADED"]
+)
+
+AC_MSG_CHECKING(whether to use openssl)
+AC_ARG_ENABLE(openssl, [  --enable-openssl  enable ssl. default=no],
+[ case "${enableval}" in
+  no)
+    AC_MSG_RESULT(no)
+    CFLAGS="$CFLAGS"
+    ssl_enabled=false
+    ;;
+  *)
+    AC_MSG_RESULT(yes)
+    CFLAGS="$CFLAGS -DAXIS2_SSL_ENABLED"
+    ssl_enabled=true
+    ;;
   esac ],
   AC_MSG_RESULT(no)
   CFLAGS="$CFLAGS"
 )
 
+
 AC_MSG_CHECKING(whether to build dynamic invocation client library)
 AC_ARG_ENABLE(diclient, [  --enable-diclient    build diclient library wrapper. default=no],
 [ case "${enableval}" in
@@ -208,6 +228,7 @@
 AC_SUBST(TESTDIR)
 AC_SUBST(SAMPLES)
 AC_SUBST(APACHE2BUILD)
+AM_CONDITIONAL(AXIS2_SSL_ENABLED, test x$ssl_enabled = xtrue)
 
 AC_CONFIG_FILES([Makefile \
     modules/Makefile \

Modified: webservices/axis2/trunk/c/include/axis2_error.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_error.h?rev=399246&r1=399245&r2=399246&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_error.h (original)
+++ webservices/axis2/trunk/c/include/axis2_error.h Wed May  3 03:43:26 2006
@@ -431,6 +431,8 @@
         AXIS2_ERROR_INVALID_TRANSPORT_PROTOCOL,
         /* Error occured in SSL engine */
         AXIS2_ERROR_SSL_ENGINE,
+        /* Either axis2c cannot find certificates or the env variable is not set*/
+        AXIS2_ERROR_SSL_NO_CA_FILE,
         /** The following has to be the last error value all the time.
             All other error codes should appear above this.
             AXIS2_ERROR_LAST is used to track the number of error codes present

Modified: webservices/axis2/trunk/c/modules/core/transport/http/sender/Makefile.am
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/transport/http/sender/Makefile.am?rev=399246&r1=399245&r2=399246&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/transport/http/sender/Makefile.am (original)
+++ webservices/axis2/trunk/c/modules/core/transport/http/sender/Makefile.am Wed May  3 03:43:26
2006
@@ -4,6 +4,12 @@
                                   soap_over_http_sender.c\
                                   rest_sender.c\
                                   http_client.c
+if AXIS2_SSL_ENABLED
+libaxis2_http_sender_la_SOURCES += ssl/ssl_stream.c\
+                                   ssl/ssl_utils.c
+libaxis2_http_sender_la_LIBADD = -lssl\
+                                 -lcrypto
+endif
 
 INCLUDES = -I$(top_builddir)/include \
            -I$(top_builddir)/modules/util \

Modified: webservices/axis2/trunk/c/modules/core/transport/http/sender/http_client.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/transport/http/sender/http_client.c?rev=399246&r1=399245&r2=399246&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/transport/http/sender/http_client.c (original)
+++ webservices/axis2/trunk/c/modules/core/transport/http/sender/http_client.c Wed May  3
03:43:26 2006
@@ -25,6 +25,10 @@
 #include <axis2_http_chunked_stream.h>
 #include <platforms/axis2_platform_auto_sense.h>
 
+#ifdef AXIS2_SSL_ENABLED
+#include "ssl/ssl_stream.h"
+#endif
+
 
 /** 
  * @brief HTTP Client struct impl
@@ -214,7 +218,7 @@
     {
 #ifdef AXIS2_SSL_ENABLED
         client_impl->data_stream = axis2_stream_create_ssl(env, 
-                        client_impl->sockfd)
+                        client_impl->sockfd);
 #else
         AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_INVALID_TRANSPORT_PROTOCOL,
                         AXIS2_FAILURE);

Added: webservices/axis2/trunk/c/modules/core/transport/http/sender/ssl/ssl_stream.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/transport/http/sender/ssl/ssl_stream.c?rev=399246&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/core/transport/http/sender/ssl/ssl_stream.c (added)
+++ webservices/axis2/trunk/c/modules/core/transport/http/sender/ssl/ssl_stream.c Wed May
 3 03:43:26 2006
@@ -0,0 +1,194 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <string.h>
+#include <stdlib.h>
+#include "ssl_stream.h"
+
+
+/** 
+ * @brief Stream struct impl
+ *	Streaming mechanisms for SSL 
+ */
+typedef struct ssl_stream_impl ssl_stream_impl_t;
+  
+struct ssl_stream_impl
+{
+	axis2_stream_t stream;
+    axis2_stream_type_t stream_type;
+    SSL *ssl;
+    SSL_CTX *ctx;
+    axis2_socket_t socket;
+};
+
+#define AXIS2_INTF_TO_IMPL(stream) ((ssl_stream_impl_t *)(stream))
+
+/********************************Function headers******************************/
+axis2_status_t AXIS2_CALL 
+axis2_ssl_stream_free (axis2_stream_t *stream, axis2_env_t **env);
+
+axis2_stream_type_t AXIS2_CALL
+axis2_ssl_stream_get_type (axis2_stream_t *stream, axis2_env_t **env);
+
+int AXIS2_CALL
+axis2_ssl_stream_write(axis2_stream_t *stream, axis2_env_t **env, 
+						const void *buffer, size_t count);
+int AXIS2_CALL 
+axis2_ssl_stream_read(axis2_stream_t *stream, axis2_env_t **env, 
+						void *buffer, size_t count);
+int AXIS2_CALL 
+axis2_ssl_stream_skip(axis2_stream_t *stream, axis2_env_t **env, int count);
+
+int AXIS2_CALL 
+axis2_ssl_stream_get_char(axis2_stream_t *stream, axis2_env_t **env);
+
+
+AXIS2_DECLARE(axis2_stream_t *)
+axis2_stream_create_ssl(axis2_env_t **env, axis2_socket_t socket)
+{
+    ssl_stream_impl_t *stream_impl = NULL;
+	AXIS2_ENV_CHECK(env, NULL);
+    	
+    stream_impl = (ssl_stream_impl_t *)AXIS2_MALLOC(
+                        (*env)->allocator, sizeof(ssl_stream_impl_t));
+	
+	if(NULL == stream_impl)
+	{
+		AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;
+	}
+    stream_impl->stream.ops = NULL;
+    stream_impl->socket = socket;
+    stream_impl->ctx = NULL;
+    stream_impl->ssl = NULL;
+    
+    stream_impl->ctx = axis2_ssl_utils_initialize_ctx(env);
+    if(NULL == stream_impl->ctx)
+    {
+        axis2_ssl_stream_free((axis2_stream_t*)stream_impl, env);
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_SSL_ENGINE, AXIS2_FAILURE);
+        return NULL;
+    }
+    stream_impl->ssl = axis2_ssl_utils_initialize_ssl(env, stream_impl->ctx, 
+                        stream_impl->socket);
+    if(NULL == stream_impl->ssl)
+    {
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_SSL_ENGINE, AXIS2_FAILURE);
+        return NULL;
+    }                    
+    stream_impl->stream_type = AXIS2_STREAM_MANAGED;
+	stream_impl->stream.ops = (axis2_stream_ops_t *) AXIS2_MALLOC (
+                        (*env)->allocator, sizeof (axis2_stream_ops_t));
+	if (NULL == stream_impl->stream.ops)
+	{
+		axis2_ssl_stream_free(&(stream_impl->stream), env);
+		AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+		return NULL;
+	}
+    	
+	stream_impl->stream.ops->free = axis2_ssl_stream_free;
+    stream_impl->stream.ops->read = axis2_ssl_stream_read;
+    stream_impl->stream.ops->write = axis2_ssl_stream_write;
+    stream_impl->stream.ops->skip = axis2_ssl_stream_skip;
+    stream_impl->stream.ops->get_char = axis2_ssl_stream_get_char;
+    stream_impl->stream.ops->get_type = axis2_ssl_stream_get_type;
+    
+	return &(stream_impl->stream);
+}
+
+
+axis2_status_t AXIS2_CALL
+axis2_ssl_stream_free (axis2_stream_t *stream, axis2_env_t **env)
+{
+    ssl_stream_impl_t *stream_impl = NULL;
+	AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+	
+	stream_impl = AXIS2_INTF_TO_IMPL(stream);
+	if (NULL != stream_impl->stream.ops)
+    {
+        AXIS2_FREE ((*env)->allocator, stream_impl->stream.ops);
+    }
+    axis2_ssl_utils_cleanup_ssl(env, stream_impl->ctx, stream_impl->ssl);
+   	AXIS2_FREE((*env)->allocator, stream_impl);
+	
+    return AXIS2_SUCCESS;
+}
+
+int AXIS2_CALL 
+axis2_ssl_stream_read(axis2_stream_t *stream, axis2_env_t **env, 
+						void *buffer, size_t count)
+{
+    ssl_stream_impl_t *stream_impl = NULL;
+    AXIS2_ENV_CHECK(env, AXIS2_CRTICAL_FAILURE);
+    
+    stream_impl = AXIS2_INTF_TO_IMPL(stream);
+
+    return SSL_read(stream_impl->ssl ,buffer,count);
+}
+
+int AXIS2_CALL
+axis2_ssl_stream_write(axis2_stream_t *stream, axis2_env_t **env, 
+						const void *buf, size_t count)
+{
+	ssl_stream_impl_t *stream_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, AXIS2_CRTICAL_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, buf, AXIS2_FAILURE);
+    stream_impl = AXIS2_INTF_TO_IMPL(stream);
+    return SSL_write(stream_impl->ssl, buf, count);
+
+}
+
+
+int AXIS2_CALL 
+axis2_ssl_stream_skip(axis2_stream_t *stream, axis2_env_t **env, int count)
+{
+	ssl_stream_impl_t *stream_impl = NULL;
+    axis2_char_t *tmp_buffer = NULL;
+    int len = -1;
+	AXIS2_ENV_CHECK(env, AXIS2_CRTICAL_FAILURE);
+	stream_impl = AXIS2_INTF_TO_IMPL(stream);
+    
+    tmp_buffer = AXIS2_MALLOC((*env)->allocator, count * sizeof(axis2_char_t));
+    if(tmp_buffer == NULL)
+    {
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, 
+                          AXIS2_FAILURE);
+        return -1;
+    }
+    len = SSL_read(stream_impl->ssl, tmp_buffer, count);
+    AXIS2_FREE((*env)->allocator, tmp_buffer);
+    return len;
+    
+}
+
+int AXIS2_CALL 
+axis2_ssl_stream_get_char(axis2_stream_t *stream, axis2_env_t **env)
+{
+	int ret = -1;
+	AXIS2_ENV_CHECK(env, AXIS2_CRTICAL_FAILURE);
+    
+    /* TODO implement this */
+    return ret;
+}
+
+axis2_stream_type_t AXIS2_CALL
+axis2_ssl_stream_get_type (axis2_stream_t *stream, axis2_env_t **env)
+{
+    AXIS2_ENV_CHECK(env, AXIS2_CRTICAL_FAILURE);
+    return AXIS2_INTF_TO_IMPL(stream)->stream_type;
+}
+

Added: webservices/axis2/trunk/c/modules/core/transport/http/sender/ssl/ssl_stream.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/transport/http/sender/ssl/ssl_stream.h?rev=399246&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/core/transport/http/sender/ssl/ssl_stream.h (added)
+++ webservices/axis2/trunk/c/modules/core/transport/http/sender/ssl/ssl_stream.h Wed May
 3 03:43:26 2006
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain count copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_SSL_STREAM_H
+#define AXIS2_SSL_STREAM_H
+
+#include <axis2_const.h>
+#include <axis2_defines.h>
+#include <axis2_env.h>
+#include <axis2_stream.h>
+#include <platforms/axis2_platform_auto_sense.h>
+#include <openssl/ssl.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+
+/** \brief Constructor for creating ssl stream
+  * @return axis2_stream (ssl)
+  */
+AXIS2_DECLARE(axis2_stream_t *) 
+axis2_stream_create_ssl(axis2_env_t **env, axis2_socket_t socket);
+
+/** @} */
+    
+#ifdef __cplusplus
+}
+#endif
+
+#endif                          /* AXIS2_SSL_STREAM_H */

Added: webservices/axis2/trunk/c/modules/core/transport/http/sender/ssl/ssl_utils.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/transport/http/sender/ssl/ssl_utils.c?rev=399246&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/core/transport/http/sender/ssl/ssl_utils.c (added)
+++ webservices/axis2/trunk/c/modules/core/transport/http/sender/ssl/ssl_utils.c Wed May 
3 03:43:26 2006
@@ -0,0 +1,110 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include "ssl_utils.h"
+
+
+AXIS2_DECLARE (SSL_CTX *)
+axis2_ssl_utils_initialize_ctx(axis2_env_t **env)
+{
+    SSL_METHOD *meth = NULL;
+    axis2_char_t *ca_file = NULL;
+    SSL_CTX *ctx = NULL;
+    
+    AXIS2_ENV_CHECK(env, NULL);
+    
+    /*TODO getenv */
+    ca_file = AXIS2_GETENV("AXIS2_SSL_CA_FILE");
+    if(NULL == ca_file)
+    {
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_SSL_NO_CA_FILE,
+                        AXIS2_FAILURE);
+        return NULL;
+    }
+    if(!bio_err)
+    {
+      /* Global system initialization*/
+      SSL_library_init();
+      SSL_load_error_strings();
+
+      /* An error write context */
+      bio_err=BIO_new_fp(stderr, BIO_NOCLOSE);
+    }
+
+    /* Create our context*/
+    meth = SSLv23_method();
+    ctx = SSL_CTX_new(meth);
+
+    /* Load our keys and certificates
+     * If we need client certificates it has to be done here
+     */
+    /*if(!(SSL_CTX_use_certificate_chain_file(ctx, keyfile)))
+    {
+        SSL_CTX_free(ctx);
+        return NULL;
+    }*/
+    /* Load the CAs we trust*/
+    if(!(SSL_CTX_load_verify_locations(ctx, ca_file, 0)))
+    {
+        SSL_CTX_free(ctx);
+        return NULL;
+    }
+    
+#if (OPENSSL_VERSION_NUMBER < 0x00905100L)
+    SSL_CTX_set_verify_depth(ctx, 1);
+#endif
+
+    return ctx;
+}
+
+AXIS2_DECLARE (SSL *)
+axis2_ssl_utils_initialize_ssl(axis2_env_t **env, SSL_CTX *ctx, 
+                        axis2_socket_t socket)
+{
+    SSL *ssl = NULL;
+    BIO *sbio = NULL;
+    
+    AXIS2_ENV_CHECK(env, NULL);
+    AXIS2_PARAM_CHECK((*env)->error, ctx, NULL);
+    
+    ssl = SSL_new(ctx);
+    if(NULL == ssl)
+    {
+        return NULL;
+    }
+    sbio = BIO_new_socket(socket, BIO_NOCLOSE);
+    if(NULL == sbio)
+    {
+        return NULL;
+    }
+    SSL_set_bio(ssl, sbio, sbio);
+    return ssl;
+}
+
+AXIS2_DECLARE (axis2_status_t)
+axis2_ssl_utils_cleanup_ssl(axis2_env_t **env, SSL_CTX *ctx, SSL *ssl)
+{
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+   
+    if(NULL != ssl)
+    {    
+        SSL_shutdown(ssl);
+    }
+    if(NULL != ctx)
+    {
+        SSL_CTX_free(ctx);
+    }
+    return AXIS2_SUCCESS;
+}

Added: webservices/axis2/trunk/c/modules/core/transport/http/sender/ssl/ssl_utils.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/transport/http/sender/ssl/ssl_utils.h?rev=399246&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/core/transport/http/sender/ssl/ssl_utils.h (added)
+++ webservices/axis2/trunk/c/modules/core/transport/http/sender/ssl/ssl_utils.h Wed May 
3 03:43:26 2006
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_SSL_UTILS_H
+#define AXIS2_SSL_UTILS_H
+
+#include <openssl/ssl.h>
+#include <platforms/axis2_platform_auto_sense.h>
+#include <axis2_const.h>
+#include <axis2_defines.h>
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+BIO *bio_err = 0;
+
+AXIS2_DECLARE (SSL_CTX *)
+axis2_ssl_utils_initialize_ctx(axis2_env_t **env);
+
+AXIS2_DECLARE (SSL *)
+axis2_ssl_utils_initialize_ssl(axis2_env_t **env, SSL_CTX *ctx, 
+                        axis2_socket_t socket);
+                        
+AXIS2_DECLARE (axis2_status_t)
+axis2_ssl_utils_cleanup_ssl(axis2_env_t **env, SSL_CTX *ctx, SSL *ssl);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif                          /* AXIS2_SSL_UTILS_H */

Modified: webservices/axis2/trunk/c/modules/util/error.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/util/error.c?rev=399246&r1=399245&r2=399246&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/util/error.c (original)
+++ webservices/axis2/trunk/c/modules/util/error.c Wed May  3 03:43:26 2006
@@ -433,7 +433,8 @@
      "Transport protocol is unsupported by axis2";
     axis2_error_messages[AXIS2_ERROR_SSL_ENGINE] = 
      "Error occured in SSL engine";
-
+    axis2_error_messages[AXIS2_ERROR_SSL_NO_CA_FILE] = 
+    "Either axis2c cannot find certificates or the env variable is not set";
     return AXIS2_SUCCESS;
 }
 



Mime
View raw message