axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From p...@apache.org
Subject svn commit: r524104 - in /webservices/axis2/trunk/c: include/ modules/core/deployment/ modules/core/receivers/ test/core/deployment/ tools/codegen/src/util/ util/include/ util/src/
Date Fri, 30 Mar 2007 14:39:02 GMT
Author: pini
Date: Fri Mar 30 07:39:00 2007
New Revision: 524104

URL: http://svn.apache.org/viewvc?view=rev&rev=524104
Log:
Fixing jira issue 292

Added:
    webservices/axis2/trunk/c/util/include/axutil_class_loader.h
      - copied, changed from r524102, webservices/axis2/trunk/c/util/include/axis2_class_loader.h
Removed:
    webservices/axis2/trunk/c/util/include/axis2_class_loader.h
Modified:
    webservices/axis2/trunk/c/include/axis2_util.h
    webservices/axis2/trunk/c/modules/core/deployment/arch_file_data.c
    webservices/axis2/trunk/c/modules/core/deployment/arch_reader.c
    webservices/axis2/trunk/c/modules/core/deployment/conf_builder.c
    webservices/axis2/trunk/c/modules/core/deployment/dep_engine.c
    webservices/axis2/trunk/c/modules/core/deployment/desc_builder.c
    webservices/axis2/trunk/c/modules/core/deployment/svc_builder.c
    webservices/axis2/trunk/c/modules/core/deployment/ws_info_list.c
    webservices/axis2/trunk/c/modules/core/receivers/msg_recv.c
    webservices/axis2/trunk/c/test/core/deployment/test_deployment.c
    webservices/axis2/trunk/c/tools/codegen/src/util/class_loader.c
    webservices/axis2/trunk/c/util/src/class_loader.c
    webservices/axis2/trunk/c/util/src/dll_desc.c

Modified: webservices/axis2/trunk/c/include/axis2_util.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/include/axis2_util.h?view=diff&rev=524104&r1=524103&r2=524104
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_util.h (original)
+++ webservices/axis2/trunk/c/include/axis2_util.h Fri Mar 30 07:39:00 2007
@@ -20,7 +20,7 @@
 
 #include <axutil_allocator.h>
 #include <axutil_array_list.h>
-#include <axis2_class_loader.h>
+#include <axutil_class_loader.h>
 #include <axis2_dir_handler.h>
 #include <axis2_dll_desc.h>
 #include <axis2_env.h>

Modified: webservices/axis2/trunk/c/modules/core/deployment/arch_file_data.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/modules/core/deployment/arch_file_data.c?view=diff&rev=524104&r1=524103&r2=524104
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/arch_file_data.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/arch_file_data.c Fri Mar 30 07:39:00
2007
@@ -17,7 +17,7 @@
 
 #include <axis2_arch_file_data.h>
 #include <string.h>
-#include <axis2_class_loader.h>
+#include <axutil_class_loader.h>
 
 struct axis2_arch_file_data
 {

Modified: webservices/axis2/trunk/c/modules/core/deployment/arch_reader.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/modules/core/deployment/arch_reader.c?view=diff&rev=524104&r1=524103&r2=524104
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/arch_reader.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/arch_reader.c Fri Mar 30 07:39:00 2007
@@ -17,7 +17,7 @@
 
 #include <axis2_arch_reader.h>
 #include <string.h>
-#include <axis2_class_loader.h>
+#include <axutil_class_loader.h>
 #include <axis2_svc_builder.h>
 #include <axis2_module_builder.h>
 #include <axis2_svc.h>

Modified: webservices/axis2/trunk/c/modules/core/deployment/conf_builder.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/modules/core/deployment/conf_builder.c?view=diff&rev=524104&r1=524103&r2=524104
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/conf_builder.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/conf_builder.c Fri Mar 30 07:39:00 2007
@@ -18,7 +18,7 @@
 #include <axis2_conf_builder.h>
 #include <axis2_disp.h>
 #include <axis2_conf.h>
-#include <axis2_class_loader.h>
+#include <axutil_class_loader.h>
 #include <axis2_transport_in_desc.h>
 #include <axis2_transport_out_desc.h>
 #include <axis2_utils.h>
@@ -415,8 +415,8 @@
         axis2_param_set_value(impl_info_param, env, dll_desc);
         axis2_param_set_value_free(impl_info_param, env, 
             axis2_dll_desc_free_void_arg);
-        axis2_class_loader_init(env);
-        disp_dll = (axis2_disp_t *) axis2_class_loader_create_dll(env,
+        axutil_class_loader_init(env);
+        disp_dll = (axis2_disp_t *) axutil_class_loader_create_dll(env,
             impl_info_param);
 
         handler = axis2_disp_get_base(disp_dll, env);
@@ -747,8 +747,8 @@
             axis2_param_set_value(impl_info_param, env, dll_desc);
             axis2_param_set_value_free(impl_info_param, env, 
                 axis2_dll_desc_free_void_arg);
-            axis2_class_loader_init(env);
-            transport_sender = axis2_class_loader_create_dll(env, impl_info_param);
+            axutil_class_loader_init(env);
+            transport_sender = axutil_class_loader_create_dll(env, impl_info_param);
             axis2_transport_out_desc_add_param(transport_out, env,
                 impl_info_param);
             status = axis2_transport_out_desc_set_sender(transport_out, env,
@@ -1006,9 +1006,9 @@
                 axis2_param_set_value(impl_info_param, env, dll_desc);
                 axis2_param_set_value_free(impl_info_param, env, 
                     axis2_dll_desc_free_void_arg);
-                axis2_class_loader_init(env);
+                axutil_class_loader_init(env);
                 recv = (axis2_transport_receiver_t *)
-                    axis2_class_loader_create_dll(env, impl_info_param);
+                    axutil_class_loader_create_dll(env, impl_info_param);
                 axis2_transport_in_desc_add_param(transport_in, env,
                     impl_info_param);
                 stat = axis2_transport_in_desc_set_recv(transport_in, env,

Modified: webservices/axis2/trunk/c/modules/core/deployment/dep_engine.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/modules/core/deployment/dep_engine.c?view=diff&rev=524104&r1=524103&r2=524104
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/dep_engine.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/dep_engine.c Fri Mar 30 07:39:00 2007
@@ -26,7 +26,7 @@
 #include <axis2_svc_builder.h>
 #include <axis2_svc_grp_builder.h>
 #include <axiom_node.h>
-#include <axis2_class_loader.h>
+#include <axutil_class_loader.h>
 #include <axis2_string.h>
 #include <axis2_utils.h>
 #include <axis2_core_utils.h>
@@ -1066,8 +1066,8 @@
     impl_info_param = axis2_param_create(env, read_in_dll, NULL);
     axis2_param_set_value(impl_info_param, env, dll_desc);
     axis2_param_set_value_free(impl_info_param, env, axis2_dll_desc_free_void_arg);
-    axis2_class_loader_init(env);
-    module = (axis2_module_t *) axis2_class_loader_create_dll(env,
+    axutil_class_loader_init(env);
+    module = (axis2_module_t *) axutil_class_loader_create_dll(env,
         impl_info_param);
     /* We cannot free the created impl_info_param here because by freeing
      * so, it will free dll_desc which in turn unload the module. So we
@@ -1130,10 +1130,10 @@
     /* TODO set fill dll path here instead of dll lib name only */
     axis2_dll_desc_set_name(dll_desc, env, dll_name);
     axis2_dll_desc_set_type(dll_desc, env, AXIS2_HANDLER_DLL);
-    axis2_class_loader_init(env);
+    axutil_class_loader_init(env);
     impl_info_param = axis2_param_create(env, NULL, NULL);
     axis2_param_set_value(impl_info_param, env, dll_desc);
-    handler = (axis2_handler_t *) axis2_class_loader_create_dll(env,
+    handler = (axis2_handler_t *) axutil_class_loader_create_dll(env,
         impl_info_param);
 
     return handler;

Modified: webservices/axis2/trunk/c/modules/core/deployment/desc_builder.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/modules/core/deployment/desc_builder.c?view=diff&rev=524104&r1=524103&r2=524104
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/desc_builder.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/desc_builder.c Fri Mar 30 07:39:00 2007
@@ -17,7 +17,7 @@
 
 #include <axis2_desc_builder.h>
 #include <axis2_string.h>
-#include <axis2_class_loader.h>
+#include <axutil_class_loader.h>
 #include <axis2_utils.h>
 #include <axis2_generic_obj.h>
 #include <axis2_raw_xml_in_out_msg_recv.h>
@@ -913,8 +913,8 @@
          axis2_conf_add_param(conf, env, impl_info_param);
     }
 
-    axis2_class_loader_init(env);
-    msg_recv = (axis2_msg_recv_t *) axis2_class_loader_create_dll(env,
+    axutil_class_loader_init(env);
+    msg_recv = (axis2_msg_recv_t *) axutil_class_loader_create_dll(env,
         impl_info_param);
     return msg_recv;
 }

Modified: webservices/axis2/trunk/c/modules/core/deployment/svc_builder.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/modules/core/deployment/svc_builder.c?view=diff&rev=524104&r1=524103&r2=524104
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/svc_builder.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/svc_builder.c Fri Mar 30 07:39:00 2007
@@ -16,7 +16,7 @@
  */
 
 #include <axis2_svc_builder.h>
-#include <axis2_class_loader.h>
+#include <axutil_class_loader.h>
 #include <axis2_utils.h>
 #include <axis2_property.h>
 

Modified: webservices/axis2/trunk/c/modules/core/deployment/ws_info_list.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/modules/core/deployment/ws_info_list.c?view=diff&rev=524104&r1=524103&r2=524104
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/ws_info_list.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/ws_info_list.c Fri Mar 30 07:39:00 2007
@@ -17,7 +17,7 @@
 
 #include <axis2_ws_info_list.h>
 #include <string.h>
-#include <axis2_class_loader.h>
+#include <axutil_class_loader.h>
 
 struct axis2_ws_info_list
 {

Modified: webservices/axis2/trunk/c/modules/core/receivers/msg_recv.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/modules/core/receivers/msg_recv.c?view=diff&rev=524104&r1=524103&r2=524104
==============================================================================
--- webservices/axis2/trunk/c/modules/core/receivers/msg_recv.c (original)
+++ webservices/axis2/trunk/c/modules/core/receivers/msg_recv.c Fri Mar 30 07:39:00 2007
@@ -18,7 +18,7 @@
 #include <axis2_msg_recv.h>
 #include <axis2_param.h>
 #include <axis2_description.h>
-#include <axis2_class_loader.h>
+#include <axutil_class_loader.h>
 #include <axis2_engine.h>
 #include <axis2_core_utils.h>
 #include <axis2_property.h>
@@ -149,9 +149,9 @@
 
     axutil_allocator_switch_to_global_pool(env->allocator);
     
-    axis2_class_loader_init(env);
+    axutil_class_loader_init(env);
 
-    impl_class = axis2_class_loader_create_dll(env, impl_info_param);
+    impl_class = axutil_class_loader_create_dll(env, impl_info_param);
     axis2_svc_set_impl_class(svc, env, impl_class);
 
     AXIS2_SVC_SKELETON_INIT((axis2_svc_skeleton_t *)impl_class, env);
@@ -255,7 +255,7 @@
         return AXIS2_FAILURE;
     }
     dll_desc = axis2_param_get_value(impl_info_param, env);
-    return axis2_class_loader_delete_dll(env, dll_desc);
+    return axutil_class_loader_delete_dll(env, dll_desc);
 }
 
 static axis2_status_t AXIS2_CALL

Modified: webservices/axis2/trunk/c/test/core/deployment/test_deployment.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/test/core/deployment/test_deployment.c?view=diff&rev=524104&r1=524103&r2=524104
==============================================================================
--- webservices/axis2/trunk/c/test/core/deployment/test_deployment.c (original)
+++ webservices/axis2/trunk/c/test/core/deployment/test_deployment.c Fri Mar 30 07:39:00 2007
@@ -24,7 +24,7 @@
 #include <axis2_dep_engine.h>
 #include <axis2_env.h>
 #include <axutil_allocator.h>
-#include <axis2_class_loader.h>
+#include <axutil_class_loader.h>
 #include <axis2_error_default.h>
 #include <axis2_log_default.h>
 #include <axis2_transport_sender.h>
@@ -152,8 +152,8 @@
      axis2_dll_desc_set_type(dll_desc, env, AXIS2_TRANSPORT_RECV_DLL);
     impl_info_param = axis2_param_create(env, NULL, NULL);
     axis2_param_set_value(impl_info_param, env, dll_desc);
-    axis2_class_loader_init(env);
-    transport_recv = (axis2_transport_receiver_t *) axis2_class_loader_create_dll(env,
+    axutil_class_loader_init(env);
+    transport_recv = (axis2_transport_receiver_t *) axutil_class_loader_create_dll(env,
             impl_info_param);
     is_running = AXIS2_TRANSPORT_RECEIVER_IS_RUNNING(transport_recv, env);
     printf("is_running:%d\n", is_running);
@@ -186,8 +186,8 @@
      axis2_dll_desc_set_type(dll_desc, env, AXIS2_TRANSPORT_SENDER_DLL);
     impl_info_param = axis2_param_create(env, NULL, NULL);
     axis2_param_set_value(impl_info_param, env, dll_desc);
-    axis2_class_loader_init(env);
-    transport_sender = (axis2_transport_sender_t *) axis2_class_loader_create_dll(env,
+    axutil_class_loader_init(env);
+    transport_sender = (axis2_transport_sender_t *) axutil_class_loader_create_dll(env,
             impl_info_param);
 
     status = AXIS2_TRANSPORT_SENDER_CLEANUP(transport_sender, env, msg_ctx);

Modified: webservices/axis2/trunk/c/tools/codegen/src/util/class_loader.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/codegen/src/util/class_loader.c?view=diff&rev=524104&r1=524103&r2=524104
==============================================================================
--- webservices/axis2/trunk/c/tools/codegen/src/util/class_loader.c (original)
+++ webservices/axis2/trunk/c/tools/codegen/src/util/class_loader.c Fri Mar 30 07:39:00 2007
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
  
-#include <axis2_class_loader.h>
+#include <axutil_class_loader.h>
 #include <w2c_class_loader.h>
 #include <w2c_string.h>
 #include <w2c_messages.h>
@@ -58,8 +58,8 @@
     impl_info_param = axis2_param_create(env, NULL, NULL);
     axis2_param_set_value(impl_info_param, env, dll_desc);
 
-    axis2_class_loader_init(env);
-	obj = axis2_class_loader_create_dll(env, impl_info_param);
+    axutil_class_loader_init(env);
+	obj = axutil_class_loader_create_dll(env, impl_info_param);
 
     AXIS2_FREE ( env->allocator, file_path);
     return obj;
@@ -73,7 +73,7 @@
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, dll_desc, AXIS2_FAILURE);
 
-    axis2_class_loader_delete_dll(env, dll_desc);
+    axutil_class_loader_delete_dll(env, dll_desc);
     /*axis2_dll_desc_free ( dll_desc, env );*/
 
     return AXIS2_SUCCESS;

Copied: webservices/axis2/trunk/c/util/include/axutil_class_loader.h (from r524102, webservices/axis2/trunk/c/util/include/axis2_class_loader.h)
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/include/axutil_class_loader.h?view=diff&rev=524104&p1=webservices/axis2/trunk/c/util/include/axis2_class_loader.h&r1=524102&p2=webservices/axis2/trunk/c/util/include/axutil_class_loader.h&r2=524104
==============================================================================
--- webservices/axis2/trunk/c/util/include/axis2_class_loader.h (original)
+++ webservices/axis2/trunk/c/util/include/axutil_class_loader.h Fri Mar 30 07:39:00 2007
@@ -19,7 +19,7 @@
 #define AXIS2_CLASS_LOADER_H
 
 /**
-  * @file axis2_class_loader.h
+  * @file axutil_class_loader.h
   * @brief axis2 class loader interface
   */
 
@@ -35,20 +35,20 @@
 {
 #endif
 
-/** @defgroup axis2_class_loader class loader 
+/** @defgroup axutil_class_loader class loader 
  * @ingroup axis2_util
  * @{
  */
     
 AXIS2_EXTERN axis2_status_t AXIS2_CALL
-axis2_class_loader_init(const axis2_env_t *env);
+axutil_class_loader_init(const axis2_env_t *env);
 
 AXIS2_EXTERN axis2_status_t AXIS2_CALL
-axis2_class_loader_delete_dll (const axis2_env_t *env,
+axutil_class_loader_delete_dll (const axis2_env_t *env,
                                     axis2_dll_desc_t *dll_desc);
 
 AXIS2_EXTERN void * AXIS2_CALL
-axis2_class_loader_create_dll (const axis2_env_t *env,
+axutil_class_loader_create_dll (const axis2_env_t *env,
                                 axis2_param_t *impl_info_param);
     
  

Modified: webservices/axis2/trunk/c/util/src/class_loader.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/src/class_loader.c?view=diff&rev=524104&r1=524103&r2=524104
==============================================================================
--- webservices/axis2/trunk/c/util/src/class_loader.c (original)
+++ webservices/axis2/trunk/c/util/src/class_loader.c Fri Mar 30 07:39:00 2007
@@ -15,26 +15,26 @@
  * limitations under the License.
  */
 
-#include <axis2_class_loader.h>
+#include <axutil_class_loader.h>
 
 axis2_status_t
-axis2_class_loader_load_lib(const axis2_env_t *env,
+axutil_class_loader_load_lib(const axis2_env_t *env,
         axis2_dll_desc_t *dll_desc);
 
 axis2_status_t
-axis2_class_loader_unload_lib(const axis2_env_t *env,
+axutil_class_loader_unload_lib(const axis2_env_t *env,
         axis2_dll_desc_t *dll_desc);
 
 
 AXIS2_EXTERN axis2_status_t AXIS2_CALL
-axis2_class_loader_init(const axis2_env_t *env)
+axutil_class_loader_init(const axis2_env_t *env)
 {
     AXIS2_PLATFORM_LOADLIBINIT();
     return AXIS2_SUCCESS;
 }
 
 AXIS2_EXTERN axis2_status_t AXIS2_CALL
-axis2_class_loader_delete_dll(const axis2_env_t *env,
+axutil_class_loader_delete_dll(const axis2_env_t *env,
         axis2_dll_desc_t *dll_desc)
 {
     if (!dll_desc)
@@ -43,13 +43,13 @@
                 AXIS2_FAILURE);
         return AXIS2_FAILURE;
     }
-    axis2_class_loader_unload_lib(env, dll_desc);
+    axutil_class_loader_unload_lib(env, dll_desc);
     AXIS2_PLATFORM_LOADLIBEXIT()
     return AXIS2_SUCCESS;
 }
 
 AXIS2_EXTERN void * AXIS2_CALL
-axis2_class_loader_create_dll(const axis2_env_t *env,
+axutil_class_loader_create_dll(const axis2_env_t *env,
         axis2_param_t *impl_info_param)
 {
     void *obj = NULL;
@@ -70,7 +70,7 @@
     dl_handler =  axis2_dll_desc_get_dl_handler(dll_desc, env);
     if (! dl_handler)
     {
-        status = axis2_class_loader_load_lib(env, dll_desc);
+        status = axutil_class_loader_load_lib(env, dll_desc);
         if (AXIS2_SUCCESS != status)
         {
             AXIS2_ERROR_SET(env->error, AXIS2_ERROR_DLL_CREATE_FAILED,
@@ -92,7 +92,7 @@
         status =  axis2_dll_desc_set_create_funct(dll_desc, env, create_funct);
         if (AXIS2_FAILURE == status)
         {
-            axis2_class_loader_unload_lib(env, dll_desc);
+            axutil_class_loader_unload_lib(env, dll_desc);
             AXIS2_ERROR_SET(env->error, AXIS2_ERROR_DLL_CREATE_FAILED,
                     AXIS2_FAILURE);
             return NULL;
@@ -107,7 +107,7 @@
         status =  axis2_dll_desc_set_delete_funct(dll_desc, env, delete_funct);
         if (AXIS2_FAILURE == status)
         {
-            axis2_class_loader_unload_lib(env, dll_desc);
+            axutil_class_loader_unload_lib(env, dll_desc);
             AXIS2_ERROR_SET(env->error, AXIS2_ERROR_DLL_CREATE_FAILED,
                     AXIS2_FAILURE);
             return NULL;
@@ -125,7 +125,7 @@
     create_funct(&obj, env);
     if (! obj)
     {
-        axis2_class_loader_unload_lib(env, dll_desc);
+        axutil_class_loader_unload_lib(env, dll_desc);
         AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "Object create function returned NULL");
         AXIS2_ERROR_SET(env->error, error_code, AXIS2_FAILURE);
         return NULL;
@@ -138,7 +138,7 @@
 }
 
 axis2_status_t
-axis2_class_loader_load_lib(const axis2_env_t *env,
+axutil_class_loader_load_lib(const axis2_env_t *env,
         axis2_dll_desc_t *dll_desc)
 {
     axis2_char_t *dll_name = NULL;
@@ -168,7 +168,7 @@
 }
 
 axis2_status_t
-axis2_class_loader_unload_lib(const axis2_env_t *env,
+axutil_class_loader_unload_lib(const axis2_env_t *env,
         axis2_dll_desc_t *dll_desc)
 {
     AXIS2_DLHANDLER dl_handler =  axis2_dll_desc_get_dl_handler(dll_desc, env);

Modified: webservices/axis2/trunk/c/util/src/dll_desc.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/src/dll_desc.c?view=diff&rev=524104&r1=524103&r2=524104
==============================================================================
--- webservices/axis2/trunk/c/util/src/dll_desc.c (original)
+++ webservices/axis2/trunk/c/util/src/dll_desc.c Fri Mar 30 07:39:00 2007
@@ -16,7 +16,7 @@
  */
 
 #include <axis2_dll_desc.h>
-#include <axis2_class_loader.h>
+#include <axutil_class_loader.h>
 
 struct axis2_dll_desc
 {
@@ -70,7 +70,7 @@
 
     if (dll_desc->dl_handler)
     {
-        axis2_class_loader_delete_dll(env, dll_desc);
+        axutil_class_loader_delete_dll(env, dll_desc);
     }
 
     if (dll_desc->dll_name)



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org


Mime
View raw message