You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by da...@apache.org on 2005/10/24 07:07:10 UTC

svn commit: r327970 - in /webservices/axis2/trunk/c: include/ modules/core/engine/src/ modules/util/src/

Author: damitha
Date: Sun Oct 23 22:06:48 2005
New Revision: 327970

URL: http://svn.apache.org/viewcvs?rev=327970&view=rev
Log:
Changes to stream.c and string.c to handle uninitialized situations

Modified:
    webservices/axis2/trunk/c/include/axis2_error.h
    webservices/axis2/trunk/c/include/axis2_stream.h
    webservices/axis2/trunk/c/modules/core/engine/src/axis2_engine_config.c
    webservices/axis2/trunk/c/modules/util/src/axis2_environment.c
    webservices/axis2/trunk/c/modules/util/src/axis2_file_diff.c
    webservices/axis2/trunk/c/modules/util/src/axis2_stream.c
    webservices/axis2/trunk/c/modules/util/src/axis2_string.c

Modified: webservices/axis2/trunk/c/include/axis2_error.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_error.h?rev=327970&r1=327969&r2=327970&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_error.h (original)
+++ webservices/axis2/trunk/c/include/axis2_error.h Sun Oct 23 22:06:48 2005
@@ -117,7 +117,9 @@
         /** Trying to release unallocated memory */
         AXIS2_ERROR_UNALLOCATED_MEMEORY_RELEASE_REQUESTED,
 		/** Struct is not properly initialized */
-		AXIS2_ERROR_STRUCT_NOT_INITIALIZED
+		AXIS2_ERROR_STRUCT_NOT_INITIALIZED,
+		/** Could not open the file */
+		AXIS2_ERROR_COULD_NOT_OPEN_FILE
     } axis2_error_codes_t;
 
 /** @} */

Modified: webservices/axis2/trunk/c/include/axis2_stream.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_stream.h?rev=327970&r1=327969&r2=327970&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_stream.h (original)
+++ webservices/axis2/trunk/c/include/axis2_stream.h Sun Oct 23 22:06:48 2005
@@ -63,7 +63,7 @@
 		 * @param options file options given.
 		 * @return status code
 		 */
-		AXIS2_DECLARE(axis2_status_t) (*axis2_stream_ops_file_open)
+		AXIS2_DECLARE(void *) (*axis2_stream_ops_file_open)
 				(const char *file_name, const char *options);
 		
 		/**
@@ -101,7 +101,6 @@
     {
         /** Stream related operations */
         struct axis2_stream_ops *ops;
-		void *file;
 		int axis2_eof;
     } axis2_stream_t;
 
@@ -112,7 +111,7 @@
     * @return pointer to the newly created log struct 
     */
     AXIS2_DECLARE(axis2_stream_t *) axis2_stream_create (axis2_allocator_t * allocator,
-                                         axis2_stream_ops_t * operations);
+                                         axis2_stream_t * stream);
 
 #define axis2_stream_read(stream, buffer, count) \
 		((stream)->ops->axis2_stream_ops_read(buffer, count))

Modified: webservices/axis2/trunk/c/modules/core/engine/src/axis2_engine_config.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/engine/src/axis2_engine_config.c?rev=327970&r1=327969&r2=327970&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/engine/src/axis2_engine_config.c (original)
+++ webservices/axis2/trunk/c/modules/core/engine/src/axis2_engine_config.c Sun Oct 23 22:06:48 2005
@@ -41,11 +41,17 @@
 		axis2_environment_t *env, axis2_engine_config_t *engine_config
 		, const axis2_char_t* servicegroup_name);
 
+axis2_status_t axis2_engine_config_ops_add_service(
+		axis2_environment_t *env, axis2_engine_config_t *engine_config
+		, const axis2_description_service_t* service_desc);
+
 axis2_description_service_t *axis2_engine_config_ops_get_service(
-		axis2_engine_config_t *engine_config, const axis2_char_t* service_name);
+		axis2_environment_t *env, axis2_engine_config_t *engine_config
+		, const axis2_char_t* service_name);
 
 axis2_status_t axis2_engine_config_ops_remove_service
-		(axis2_engine_config_t *engine_config, const axis2_char_t *name);
+		(axis2_environment_t *env, axis2_engine_config_t *engine_config
+		, const axis2_char_t *name);
 
 /************************** End of function prototypes ************************/
 
@@ -155,20 +161,25 @@
 		, AXIS2_HASH_KEY_STRING));
 }
 
-axis2_description_service_t *axis2_engine_config_ops_add_service(
-		axis2_engine_config_t *engine_config, const axis2_char_t* service_name)
+axis2_status_t axis2_engine_config_ops_add_service(
+		axis2_environment_t *env, axis2_engine_config_t *engine_config
+		, const axis2_description_service_t *service_desc)
 {
+	if(!engine_config || engine_config->servicegroup_desc) return AXIS2_ERROR_INVALID_NULL_PARAMETER;
+	
 		
 }
 
 axis2_description_service_t *axis2_engine_config_ops_get_service(
-		axis2_engine_config_t *engine_config, const axis2_char_t* service_name)
+		axis2_environment_t *env, axis2_engine_config_t *engine_config
+		, const axis2_char_t* service_name)
 {
 		
 }
 
 axis2_status_t axis2_engine_config_ops_remove_service
-		(axis2_engine_config_t *engine_config, const axis2_char_t *name)
+		(axis2_environment_t *env, axis2_engine_config_t *engine_config
+		, const axis2_char_t *name)
 {
 	
 }

Modified: webservices/axis2/trunk/c/modules/util/src/axis2_environment.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/util/src/axis2_environment.c?rev=327970&r1=327969&r2=327970&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/util/src/axis2_environment.c (original)
+++ webservices/axis2/trunk/c/modules/util/src/axis2_environment.c Sun Oct 23 22:06:48 2005
@@ -39,17 +39,14 @@
     else
         environment->error = error;
 
-    environment->stream = axis2_stream_create (allocator, NULL);    
+    environment->stream = axis2_stream_create (allocator, stream);    
 
     if (!log)
         environment->log = axis2_log_create (allocator, NULL);
     else
         environment->log = log;
 
-    if (!string)
-        environment->string = axis2_string_create (allocator, NULL);
-    else
-        environment->string = string;
+    environment->string = axis2_string_create (allocator, string);
 
     return environment;
 }

Modified: webservices/axis2/trunk/c/modules/util/src/axis2_file_diff.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/util/src/axis2_file_diff.c?rev=327970&r1=327969&r2=327970&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/util/src/axis2_file_diff.c (original)
+++ webservices/axis2/trunk/c/modules/util/src/axis2_file_diff.c Sun Oct 23 22:06:48 2005
@@ -19,7 +19,7 @@
 void *expected_file, *actual_file; /* File pointers */
 
 /* private function header */
-axis2_status_t axis2_file_diff_clean(axis2_environment_t *env, int);
+axis2_status_t axis2_file_diff_clean(axis2_environment_t *env);
 
 axis2_status_t axis2_file_diff(axis2_environment_t *env
 		, axis2_char_t* expected_file_name, axis2_char_t* actual_file_name)
@@ -31,9 +31,10 @@
 		, "rt");
 	
 	if( expected_file == NULL || actual_file == NULL ) {
-		printf("Unable to open one of datafile %s, %s\n", expected_file_name
-			, actual_file_name );
-		axis2_file_diff_clean(env, 1 );
+		/*printf("Unable to open one of datafile %s, %s\n", expected_file_name
+			, actual_file_name );*/
+		axis2_file_diff_clean(env);
+		return AXIS2_ERROR_COULD_NOT_OPEN_FILE;
 	}
 	
    	int ch1, ch2;
@@ -99,7 +100,7 @@
 				axis2_stream_write(env->stream, buffer2, k);
 				axis2_stream_write(env->stream, "\n", 1);
 
-                axis2_file_diff_clean(env, 1);
+                axis2_file_diff_clean(env);
             }
             j++;k++;
             buffer1[j] = ch1;
@@ -128,11 +129,11 @@
    	return AXIS2_SUCCESS;
 }
 
-axis2_status_t axis2_file_diff_clean (axis2_environment_t *env, int exitcode )
+axis2_status_t axis2_file_diff_clean (axis2_environment_t *env)
 {
 	if(expected_file != NULL )
     	axis2_stream_file_close(env->stream, expected_file);
    	if(actual_file != NULL )
     	axis2_stream_file_close(env->stream, actual_file);
-    exit(exitcode);
+	return AXIS2_SUCCESS;
 }

Modified: webservices/axis2/trunk/c/modules/util/src/axis2_stream.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/util/src/axis2_stream.c?rev=327970&r1=327969&r2=327970&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/util/src/axis2_stream.c (original)
+++ webservices/axis2/trunk/c/modules/util/src/axis2_stream.c Sun Oct 23 22:06:48 2005
@@ -33,22 +33,64 @@
 
 axis2_stream_t *
 axis2_stream_create (axis2_allocator_t * allocator,
-                     axis2_stream_ops_t * operations)
+                     axis2_stream_t * stream)
 {
-    axis2_stream_t *stream;
-    if (!allocator)
-        return NULL;
-    stream =
-        (axis2_stream_t *) axis2_malloc (allocator, sizeof (axis2_stream_t));
+	if(stream)
+	{
+		if(stream->ops)
+		{
+			if(!stream->ops->axis2_stream_ops_read)
+				stream->ops->axis2_stream_ops_read = axis2_stream_impl_read;
+			if(!stream->ops->axis2_stream_ops_write)
+				stream->ops->axis2_stream_ops_write = axis2_stream_impl_write;
+			if(!stream->ops->axis2_stream_ops_file_open)
+				stream->ops->axis2_stream_ops_file_open = axis2_stream_impl_file_open;
+			if(!stream->ops->axis2_stream_ops_file_close)
+				stream->ops->axis2_stream_ops_file_close = axis2_stream_impl_file_close;
+			if(!stream->ops->axis2_stream_ops_file_get_char)
+				stream->ops->axis2_stream_ops_file_get_char 
+				= axis2_stream_impl_file_get_char;
+			if(!stream->ops->axis2_stream_ops_file_unget_char)
+				stream->ops->axis2_stream_ops_file_unget_char 
+				= axis2_stream_impl_file_unget_char;
+		}
+		else if (allocator)
+		{
+			stream->ops =
+            (axis2_stream_ops_t *) axis2_malloc (allocator,
+                                                 sizeof (axis2_stream_ops_t));
 
-    if (!stream)
-        return NULL;
+			if (!stream->ops)
+			{
+				axis2_free (allocator, stream->ops);
+				return NULL;
+			}
 
-    if (operations)
-        stream->ops = operations;
-    else
-    {
-        stream->ops =
+			stream->ops->axis2_stream_ops_read = axis2_stream_impl_read;
+			stream->ops->axis2_stream_ops_write = axis2_stream_impl_write;
+			stream->ops->axis2_stream_ops_file_open = axis2_stream_impl_file_open;
+			stream->ops->axis2_stream_ops_file_close = axis2_stream_impl_file_close;
+			stream->ops->axis2_stream_ops_file_get_char 
+				= axis2_stream_impl_file_get_char;
+			stream->ops->axis2_stream_ops_file_unget_char 
+				= axis2_stream_impl_file_unget_char;
+		}
+		else 
+			return NULL;
+		
+		if(!stream->axis2_eof)
+			stream->axis2_eof = EOF;
+		
+		return stream;
+	}
+	else if(allocator)
+	{
+		stream =
+        (axis2_stream_t *) axis2_malloc (allocator, sizeof (axis2_stream_t));
+
+		if (!stream)
+			return NULL;
+		stream->ops =
             (axis2_stream_ops_t *) axis2_malloc (allocator,
                                                  sizeof (axis2_stream_ops_t));
 
@@ -57,19 +99,20 @@
             axis2_free (allocator, stream);
             return NULL;
         }
-
-        stream->ops->axis2_stream_ops_read = axis2_stream_impl_read;
+		stream->ops->axis2_stream_ops_read = axis2_stream_impl_read;
         stream->ops->axis2_stream_ops_write = axis2_stream_impl_write;
 		stream->ops->axis2_stream_ops_file_open = axis2_stream_impl_file_open;
 		stream->ops->axis2_stream_ops_file_close = axis2_stream_impl_file_close;
-		stream->ops->axis2_stream_ops_file_get_char = axis2_stream_impl_file_get_char;
-		stream->ops->axis2_stream_ops_file_unget_char = axis2_stream_impl_file_unget_char;
-		
-		stream->file = NULL;
+		stream->ops->axis2_stream_ops_file_get_char 
+			= axis2_stream_impl_file_get_char;
+		stream->ops->axis2_stream_ops_file_unget_char 
+			= axis2_stream_impl_file_unget_char;
 		stream->axis2_eof = EOF;
-    }
-
-    return stream;
+		
+		return stream;
+	}
+	
+    return NULL;
 }
 
 axis2_status_t

Modified: webservices/axis2/trunk/c/modules/util/src/axis2_string.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/util/src/axis2_string.c?rev=327970&r1=327969&r2=327970&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/util/src/axis2_string.c (original)
+++ webservices/axis2/trunk/c/modules/util/src/axis2_string.c Sun Oct 23 22:06:48 2005
@@ -18,8 +18,6 @@
 #include <stdlib.h>
 #include <string.h>
 
-axis2_status_t check_validity(axis2_string_t *string);
-
 void *
 axis2_string_ops_strdup (const void *ptr)
 {
@@ -45,15 +43,12 @@
 axis2_string_t *
 axis2_string_create (axis2_allocator_t * allocator, axis2_string_t * string)
 {
-    if (string && AXIS2_SUCCESS == check_validity(string))
-	{
-		return string;	
-	}
-	else if(string)
+	if(string)
 	{
-		string->axis2_string_strdup = axis2_string_ops_strdup;
-        string->axis2_string_strcmp = axis2_string_ops_strcmp;	
-		return string;
+		if(!string->axis2_string_strdup)
+			string->axis2_string_strdup = axis2_string_ops_strdup;
+		if(!string->axis2_string_strcmp)
+			string->axis2_string_strcmp = axis2_string_ops_strcmp;
 	}
 	else if (allocator)
 	{
@@ -68,21 +63,4 @@
         }
     }
     return NULL;
-}
-
-/** This will check whether the passed string is properly initialized
-  * @param string to be validated
-  * @return status code
-  */
-axis2_status_t check_validity(axis2_string_t *string)
-{
-	if(!string)
-	{
-		return AXIS2_ERROR_INVALID_NULL_PARAMETER;
-	}
-	if(!string->axis2_string_strdup) return AXIS2_ERROR_STRUCT_NOT_INITIALIZED;
-		
-	if(!string->axis2_string_strcmp) return AXIS2_ERROR_STRUCT_NOT_INITIALIZED;
-		
-	return AXIS2_SUCCESS;
 }