Author: senaka Date: Sat Mar 8 12:23:08 2008 New Revision: 635071 URL: http://svn.apache.org/viewvc?rev=635071&view=rev Log: Fixing mtom bug in TCPMon
Modified: webservices/axis2/trunk/c/tools/tcpmon/include/tcpmon_entry.h webservices/axis2/trunk/c/tools/tcpmon/src/entry.c webservices/axis2/trunk/c/tools/tcpmon/src/tcpmon.c Modified: webservices/axis2/trunk/c/tools/tcpmon/include/tcpmon_entry.h URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/tcpmon/include/tcpmon_entry.h?rev=635071&r1=635070&r2=635071&view=diff ============================================================================== --- webservices/axis2/trunk/c/tools/tcpmon/include/tcpmon_entry.h (original) +++ webservices/axis2/trunk/c/tools/tcpmon/include/tcpmon_entry.h Sat Mar 8 12:23:08 2008 @@ -152,7 +152,13 @@ int( AXIS2_CALL - * get_data_length)( + * get_sent_data_length)( + tcpmon_entry_t * entry, + const axutil_env_t * env); + + int( + AXIS2_CALL + * get_arrived_data_length)( tcpmon_entry_t * entry, const axutil_env_t * env); @@ -213,8 +219,11 @@ #define TCPMON_ENTRY_GET_FORMAT_BIT(entry, env) \ ((entry)->ops->get_format_bit(entry, env)) -#define TCPMON_ENTRY_GET_DATA_LENGTH(entry, env) \ - ((entry)->ops->get_data_length(entry, env)) +#define TCPMON_ENTRY_GET_SENT_DATA_LENGTH(entry, env) \ + ((entry)->ops->get_sent_data_length(entry, env)) + +#define TCPMON_ENTRY_GET_ARRIVED_DATA_LENGTH(entry, env) \ + ((entry)->ops->get_arrived_data_length(entry, env)) /** @} */ Modified: webservices/axis2/trunk/c/tools/tcpmon/src/entry.c URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/tcpmon/src/entry.c?rev=635071&r1=635070&r2=635071&view=diff ============================================================================== --- webservices/axis2/trunk/c/tools/tcpmon/src/entry.c (original) +++ webservices/axis2/trunk/c/tools/tcpmon/src/entry.c Sat Mar 8 12:23:08 2008 @@ -46,7 +46,8 @@ axis2_char_t *time_diff; axis2_char_t *test_file_name; int format_bit; - int data_length; + int sent_data_length; + int arrived_data_length; } tcpmon_entry_impl_t; @@ -111,7 +112,11 @@ tcpmon_entry_t * entry, const axutil_env_t * env); -int AXIS2_CALL tcpmon_entry_get_data_length( +int AXIS2_CALL tcpmon_entry_get_sent_data_length( + tcpmon_entry_t * entry, + const axutil_env_t * env); + +int AXIS2_CALL tcpmon_entry_get_arrived_data_length( tcpmon_entry_t * entry, const axutil_env_t * env); @@ -150,7 +155,8 @@ entry_impl->sent_headers = NULL; entry_impl->is_success = AXIS2_FALSE; entry_impl->format_bit = 0; - entry_impl->data_length = 0; + entry_impl->sent_data_length = 0; + entry_impl->arrived_data_length = 0; entry_impl->entry.ops = AXIS2_MALLOC(env->allocator, sizeof(tcpmon_entry_ops_t)); @@ -172,7 +178,8 @@ entry_impl->entry.ops->is_success = tcpmon_entry_is_success; entry_impl->entry.ops->set_format_bit = tcpmon_entry_set_format_bit; entry_impl->entry.ops->get_format_bit = tcpmon_entry_get_format_bit; - entry_impl->entry.ops->get_data_length = tcpmon_entry_get_data_length; + entry_impl->entry.ops->get_sent_data_length = tcpmon_entry_get_sent_data_length; + entry_impl->entry.ops->get_arrived_data_length = tcpmon_entry_get_arrived_data_length; return &(entry_impl->entry); } @@ -368,7 +375,21 @@ } int AXIS2_CALL -tcpmon_entry_get_data_length( +tcpmon_entry_get_sent_data_length( + tcpmon_entry_t * entry, + const axutil_env_t * env) +{ + tcpmon_entry_impl_t *entry_impl = NULL; + + AXIS2_ENV_CHECK(env, AXIS2_FAILURE); + + entry_impl = AXIS2_INTF_TO_IMPL(entry); + + return entry_impl->sent_data_length; +} + +int AXIS2_CALL +tcpmon_entry_get_arrived_data_length( tcpmon_entry_t * entry, const axutil_env_t * env) { @@ -378,7 +399,7 @@ entry_impl = AXIS2_INTF_TO_IMPL(entry); - return entry_impl->data_length; + return entry_impl->arrived_data_length; } axis2_status_t AXIS2_CALL @@ -512,7 +533,7 @@ entry_impl->sent_headers = headers; entry_impl->sent_data = content; - entry_impl->data_length = buffer_size; + entry_impl->sent_data_length = buffer_size; if (on_new_entry) { @@ -602,7 +623,7 @@ entry_impl->arrived_headers = headers; entry_impl->arrived_data = content; - entry_impl->data_length = buffer_size; + entry_impl->arrived_data_length = buffer_size; if (buffer == NULL || buffer_size == 0) { entry_impl->is_success = 0; Modified: webservices/axis2/trunk/c/tools/tcpmon/src/tcpmon.c URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/tcpmon/src/tcpmon.c?rev=635071&r1=635070&r2=635071&view=diff ============================================================================== --- webservices/axis2/trunk/c/tools/tcpmon/src/tcpmon.c (original) +++ webservices/axis2/trunk/c/tools/tcpmon/src/tcpmon.c Sat Mar 8 12:23:08 2008 @@ -211,6 +211,7 @@ } } while (c != 'q'); + printf("\n\n"); TCPMON_SESSION_STOP(session, env); TCPMON_SESSION_FREE(session, env); @@ -253,7 +254,7 @@ plain_buffer = TCPMON_ENTRY_SENT_DATA(entry, env); if (plain_buffer) /* this can be possible as no xml present */ { - if (TCPMON_ENTRY_GET_DATA_LENGTH(entry, env) == + if (TCPMON_ENTRY_GET_SENT_DATA_LENGTH(entry, env) == strlen(TCPMON_ENTRY_SENT_HEADERS(entry, env)) + strlen(plain_buffer) + 4) { @@ -267,11 +268,11 @@ formated_buffer = ""; } /* 2 screen */ - printf("%s\n", "SENDING DATA.."); + printf("\n\n%s\n", "SENDING DATA.."); printf("/* sending time = %s*/\n", TCPMON_ENTRY_SENT_TIME(entry, env)); printf("---------------------\n"); - if (format || TCPMON_ENTRY_GET_DATA_LENGTH(entry, env) == + if (format || TCPMON_ENTRY_GET_SENT_DATA_LENGTH(entry, env) == strlen(TCPMON_ENTRY_SENT_HEADERS(entry, env)) + strlen(formated_buffer) + 4) { @@ -285,7 +286,7 @@ axis2_char_t *temp = NULL; axis2_char_t *formated_buffer_temp = formated_buffer; printf("%s\n", TCPMON_ENTRY_SENT_HEADERS(entry, env)); - count = TCPMON_ENTRY_GET_DATA_LENGTH(entry, env) - 4 - + count = TCPMON_ENTRY_GET_SENT_DATA_LENGTH(entry, env) - 4 - strlen(TCPMON_ENTRY_SENT_HEADERS(entry, env)); temp = AXIS2_MALLOC(env->allocator, sizeof(axis2_char_t) * count + 1); @@ -308,8 +309,9 @@ formated_buffer = formated_buffer_temp;*/ int count = 0; int printed = 0; + axis2_char_t *formated_buffer_temp = formated_buffer; printf("%s\n", TCPMON_ENTRY_SENT_HEADERS(entry, env)); - count = TCPMON_ENTRY_GET_DATA_LENGTH(entry, env) - 4 - + count = TCPMON_ENTRY_GET_SENT_DATA_LENGTH(entry, env) - 4 - strlen(TCPMON_ENTRY_SENT_HEADERS(entry, env)); while (count > printed) { @@ -326,6 +328,7 @@ formated_buffer += plen; } } + formated_buffer = formated_buffer_temp; } /* 2 file */ @@ -343,7 +346,7 @@ } if (strcmp(formated_buffer, "") != 0) { - if (format || TCPMON_ENTRY_GET_DATA_LENGTH(entry, env) == + if (format || TCPMON_ENTRY_GET_SENT_DATA_LENGTH(entry, env) == strlen(TCPMON_ENTRY_SENT_HEADERS(entry, env)) + strlen(formated_buffer) + 4) { @@ -359,7 +362,7 @@ { int count = 0; int printed = 0; - count = TCPMON_ENTRY_GET_DATA_LENGTH(entry, env) - 4 - + count = TCPMON_ENTRY_GET_SENT_DATA_LENGTH(entry, env) - 4 - strlen(TCPMON_ENTRY_SENT_HEADERS(entry, env)); while (count > printed) { @@ -384,6 +387,12 @@ plain_buffer = TCPMON_ENTRY_ARRIVED_DATA(entry, env); if (plain_buffer) /* this can be possible as no xml present */ { + if (TCPMON_ENTRY_GET_ARRIVED_DATA_LENGTH(entry, env) == + strlen(TCPMON_ENTRY_ARRIVED_HEADERS(entry, env)) + + strlen(plain_buffer) + 4) + { + format = 0; /* mtom scenario */ + } formated_buffer = tcpmon_util_format_as_xml (env, plain_buffer, format); } @@ -399,8 +408,64 @@ TCPMON_ENTRY_TIME_DIFF(entry, env)); printf("---------------------\n"); - printf("%s\n\n%s\n\n", TCPMON_ENTRY_ARRIVED_HEADERS(entry, env), - formated_buffer); + if (format || TCPMON_ENTRY_GET_ARRIVED_DATA_LENGTH(entry, env) == + strlen(TCPMON_ENTRY_ARRIVED_HEADERS(entry, env)) + + strlen(formated_buffer) + 4) + { + printf("%s\n\n%s\n\n", TCPMON_ENTRY_ARRIVED_HEADERS(entry, env), + formated_buffer); + } + else + { + /*int count = 0; + int printed = 0; + axis2_char_t *temp = NULL; + axis2_char_t *formated_buffer_temp = formated_buffer; + printf("%s\n", TCPMON_ENTRY_ARRIVED_HEADERS(entry, env)); + count = TCPMON_ENTRY_GET_ARRIVED_DATA_LENGTH(entry, env) - 4 - + strlen(TCPMON_ENTRY_ARRIVED_HEADERS(entry, env)); + temp = AXIS2_MALLOC(env->allocator, + sizeof(axis2_char_t) * count + 1); + while (count > printed) + { + if (*formated_buffer) + { + temp[printed] = *formated_buffer; + } + else + { + temp[printed] = ' '; + } + printed++; + formated_buffer++; + } + temp[count] = '\0'; + printf("%s\n\n", temp); + AXIS2_FREE(env->allocator, temp); + formated_buffer = formated_buffer_temp;*/ + int count = 0; + int printed = 0; + axis2_char_t *formated_buffer_temp = formated_buffer; + printf("%s\n", TCPMON_ENTRY_ARRIVED_HEADERS(entry, env)); + count = TCPMON_ENTRY_GET_ARRIVED_DATA_LENGTH(entry, env) - 4 - + strlen(TCPMON_ENTRY_ARRIVED_HEADERS(entry, env)); + while (count > printed) + { + int plen = 0; + plen = ((int)strlen(formated_buffer) + 1); + if (plen != 1) + { + printf("%s", formated_buffer); + } + printed += plen; + if (count > printed) + { + printf("%c", '\0'); + formated_buffer += plen; + } + } + formated_buffer = formated_buffer_temp; + } /* 2 file */ fprintf(file, "%s\n", "RETRIEVING DATA.."); @@ -419,19 +484,43 @@ } if (strcmp(formated_buffer, "") != 0) { - convert = axutil_strdup(env, formated_buffer); - convert = str_replace(convert, "; ", ";\n\t"); - convert = str_replace(convert, "><", ">\n<"); - fprintf(file, "%s", convert); - if (convert) + if (format || TCPMON_ENTRY_GET_ARRIVED_DATA_LENGTH(entry, env) == + strlen(TCPMON_ENTRY_ARRIVED_HEADERS(entry, env)) + + strlen(formated_buffer) + 4) { - free(convert); + convert = axutil_strdup(env, formated_buffer); + convert = str_replace(convert, "><", ">\n<"); + fprintf(file, "%s", convert); + if (convert) + { + free(convert); + } + } + else + { + int count = 0; + int printed = 0; + count = TCPMON_ENTRY_GET_ARRIVED_DATA_LENGTH(entry, env) - 4 - + strlen(TCPMON_ENTRY_ARRIVED_HEADERS(entry, env)); + while (count > printed) + { + int plen = 0; + plen = ((int)strlen(formated_buffer) + 1); + if (plen != 1) + { + fprintf(file, "%s", formated_buffer); + } + printed += plen; + if (count > printed) + { + fprintf(file, "%c", '\0'); + formated_buffer += plen; + } + } } } } - fclose(file); - return 0; } @@ -575,6 +664,7 @@ { AXIS2_LOG_INFO(system_env->log, "Received signal SIGINT. Utility " "shutting down"); + printf("\n\n"); TCPMON_SESSION_STOP(session, system_env); TCPMON_SESSION_FREE(session, system_env); AXIS2_FREE(system_env->allocator, target_host); --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]