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 pi...@apache.org on 2007/11/09 10:41:19 UTC

svn commit: r593466 - /webservices/axis2/trunk/c/src/core/transport/http/server/apache2/mod_axis2.c

Author: pini
Date: Fri Nov  9 01:41:19 2007
New Revision: 593466

URL: http://svn.apache.org/viewvc?rev=593466&view=rev
Log:
Applied lahiru's patch in jira 756

Modified:
    webservices/axis2/trunk/c/src/core/transport/http/server/apache2/mod_axis2.c

Modified: webservices/axis2/trunk/c/src/core/transport/http/server/apache2/mod_axis2.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/transport/http/server/apache2/mod_axis2.c?rev=593466&r1=593465&r2=593466&view=diff
==============================================================================
--- webservices/axis2/trunk/c/src/core/transport/http/server/apache2/mod_axis2.c (original)
+++ webservices/axis2/trunk/c/src/core/transport/http/server/apache2/mod_axis2.c Fri Nov  9 01:41:19 2007
@@ -275,6 +275,8 @@
     request_rec * req)
 {
     int rv = 0;
+    axutil_env_t *thread_env = NULL;
+    axutil_allocator_t *allocator = NULL;
 
     if (strcmp(req->handler, "axis2_module"))
     {
@@ -287,9 +289,28 @@
     }
     ap_should_client_block(req);
 
-    axutil_env->allocator->current_pool = (void *) req->pool;
-    rv = AXIS2_APACHE2_WORKER_PROCESS_REQUEST(axis2_worker, axutil_env, req);
+    thread_env = axutil_init_thread_env(axutil_env);
 
+    /*axutil_env->allocator->current_pool = (void *) req->pool;
+    rv = AXIS2_APACHE2_WORKER_PROCESS_REQUEST(axis2_worker, axutil_env, req);*/
+
+    /* create new allocator for this request */
+    allocator = (axutil_allocator_t *) apr_palloc( req->pool,
+                                                  sizeof(axutil_allocator_t));
+    if (!allocator)
+    {
+        return HTTP_INTERNAL_SERVER_ERROR;
+    }
+    allocator->malloc_fn = axis2_module_malloc;
+    allocator->realloc = axis2_module_realloc;
+    allocator->free_fn = axis2_module_free;
+    allocator->local_pool = (void *) req->pool;
+    allocator->current_pool = (void *) req->pool;
+    allocator->global_pool = axutil_env->allocator->global_pool;
+
+    thread_env->allocator = allocator;
+
+    rv = AXIS2_APACHE2_WORKER_PROCESS_REQUEST(axis2_worker, thread_env, req);
     if (AXIS2_CRITICAL_FAILURE == rv)
     {
         return HTTP_INTERNAL_SERVER_ERROR;



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