You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by ma...@apache.org on 2008/05/13 06:45:14 UTC

svn commit: r655731 - in /webservices/axis2/branches/c/post_1_4_mtom/c/axiom: include/axiom_mime_parser.h src/attachments/mime_parser.c

Author: manjula
Date: Mon May 12 21:45:14 2008
New Revision: 655731

URL: http://svn.apache.org/viewvc?rev=655731&view=rev
Log:
Some bug fixes.

Modified:
    webservices/axis2/branches/c/post_1_4_mtom/c/axiom/include/axiom_mime_parser.h
    webservices/axis2/branches/c/post_1_4_mtom/c/axiom/src/attachments/mime_parser.c

Modified: webservices/axis2/branches/c/post_1_4_mtom/c/axiom/include/axiom_mime_parser.h
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/c/post_1_4_mtom/c/axiom/include/axiom_mime_parser.h?rev=655731&r1=655730&r2=655731&view=diff
==============================================================================
--- webservices/axis2/branches/c/post_1_4_mtom/c/axiom/include/axiom_mime_parser.h (original)
+++ webservices/axis2/branches/c/post_1_4_mtom/c/axiom/include/axiom_mime_parser.h Mon May 12 21:45:14 2008
@@ -38,7 +38,7 @@
 {
 #endif
 
-#define AXIOM_MIME_PARSER_BUFFER_SIZE 1024
+#define AXIOM_MIME_PARSER_BUFFER_SIZE (1024*1024)
 #define AXIOM_MIME_PARSER_MAX_CHUNK_BUFFERS 1000
 
 #define AXIOM_MIME_PARSER_END_OF_MIME_MAX_COUNT 100

Modified: webservices/axis2/branches/c/post_1_4_mtom/c/axiom/src/attachments/mime_parser.c
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/c/post_1_4_mtom/c/axiom/src/attachments/mime_parser.c?rev=655731&r1=655730&r2=655731&view=diff
==============================================================================
--- webservices/axis2/branches/c/post_1_4_mtom/c/axiom/src/attachments/mime_parser.c (original)
+++ webservices/axis2/branches/c/post_1_4_mtom/c/axiom/src/attachments/mime_parser.c Mon May 12 21:45:14 2008
@@ -99,7 +99,7 @@
     axiom_search_info_t *search_info,
     const axutil_env_t *env);
 
-static axis2_status_t axiom_mime_parser_cache(
+static axis2_status_t axis2_caching_callback(
     const axutil_env_t *env,
     axis2_char_t *buf,
     int buf_len,
@@ -714,7 +714,7 @@
                 }
             }
 
-            status = axiom_mime_parser_cache(env, buf_array[*buf_num - 1],
+            status = axis2_caching_callback(env, buf_array[*buf_num - 1],
                 len_array[*buf_num - 1], search_info->handler);
             /*printf("\nBuffer\n%s\n", buf_array[*buf_num - 1]);*/
             if(status == AXIS2_FAILURE)
@@ -780,13 +780,13 @@
     {
         if(search_info->match_len2 == 0)
         {
-            status = axiom_mime_parser_cache(env, buf_array[*buf_num - 1], 
+            status = axis2_caching_callback(env, buf_array[*buf_num - 1], 
                 len_array[*buf_num - 1], search_info->handler);                                     
             if(status == AXIS2_FAILURE) 
             {
                 return NULL;
             }   
-            status = axiom_mime_parser_cache(env, buf_array[*buf_num], 
+            status = axis2_caching_callback(env, buf_array[*buf_num], 
                 found - buf_array[*buf_num], search_info->handler);
             if(status == AXIS2_FAILURE)
             {
@@ -795,7 +795,7 @@
         }
         else if(search_info->match_len2 > 0)
         {
-            status = axiom_mime_parser_cache(env, buf_array[*buf_num - 1], search_info->match_len1, search_info->handler);
+            status = axis2_caching_callback(env, buf_array[*buf_num - 1], search_info->match_len1, search_info->handler);
             if(status == AXIS2_FAILURE)
             {
                 return NULL;
@@ -821,7 +821,7 @@
     return found;
 }
 
-static axis2_status_t axiom_mime_parser_cache(
+static axis2_status_t axis2_caching_callback(
     const axutil_env_t *env,
     axis2_char_t *buf,
     int buf_len,
@@ -936,6 +936,7 @@
     axis2_char_t *old_pos = NULL;
     axis2_char_t *found = NULL;
     int str_length = 0;
+    int search_length = 0;
 
     str_length = strlen(search_info->search_str);
 
@@ -951,11 +952,22 @@
              because the buffer1 can be containg binary data*/
 
             pos = NULL;
+
+            search_length = search_info->buffer1 + search_info->len1
+                                - old_pos - str_length + 1;
+
+            if(search_length < 0)
+            {
+                break;
+            }
+
             if (old_pos)
             {
-                pos = memchr(old_pos, *(search_info->search_str),
+                /*pos = memchr(old_pos, *(search_info->search_str),
                         search_info->buffer1 + search_info->len1
-                        - old_pos - str_length + 1);
+                        - old_pos - str_length + 1);*/
+                pos = memchr(old_pos, *(search_info->search_str),
+                        search_length);
             }
 
             /* found it so lets check the remaining */
@@ -994,6 +1006,7 @@
         pos = NULL;
         old_pos = NULL;
         found = NULL;
+        search_length = 0;
 
         if(search_info->buffer2)
         {
@@ -1003,8 +1016,18 @@
                 /*First check the starting byte*/
                 pos = NULL;
                 found = NULL;
-                pos = memchr(old_pos, *(search_info->search_str),
-                search_info->buffer1 + search_info->len1 - old_pos);
+
+                search_length = search_info->buffer1 + search_info->len1 - old_pos;
+
+                if(search_length < 0)
+                {
+                    break;
+                }
+
+                /*pos = memchr(old_pos, *(search_info->search_str),
+                search_info->buffer1 + search_info->len1 - old_pos);*/
+
+                pos = memchr(old_pos, *(search_info->search_str), search_length);
 
                 if(pos)
                 {



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