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