mturk 2004/11/11 09:03:29 Modified: jk/native/common jk_msg_buff.c Log: Backport message dumping from JK2. The message will dump if loglevel is trace Revision Changes Path 1.22 +49 -7 jakarta-tomcat-connectors/jk/native/common/jk_msg_buff.c Index: jk_msg_buff.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_msg_buff.c,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- jk_msg_buff.c 11 Nov 2004 11:56:22 -0000 1.21 +++ jk_msg_buff.c 11 Nov 2004 17:03:29 -0000 1.22 @@ -39,11 +39,15 @@ int maxlen; }; +static char *jk_HEX = "0123456789ABCDEFX"; /* * Simple marshaling code. */ +/* Deprecated: We need smarter way for that. + Do not use stderr for logging + */ #if defined(DEBUG) || defined(_DEBUG) static void jk_b_dump(jk_msg_buf_t *msg, char *err) { @@ -388,12 +392,50 @@ int line, const char *funcname, int level, char *what, jk_msg_buf_t *msg) { -#ifdef USE_ALSO_BODY - jk_log(l, file, line, funcname, level, "%s #%d %.*s\n", - what, jk_b_get_len(msg), jk_b_get_len(msg), jk_b_get_buff(msg)); -#else - jk_log(l, file, line, funcname, level, "%s #%d\n", what, jk_b_get_len(msg)); -#endif + int i = 0; + char lb[80]; + char *current; + int j; + int len = msg->len; + + if (l->level == JK_LOG_DEBUG_LEVEL) { + len = 0; + } + else if (len > 1024) + len = 1024; + + jk_log(l, file, line, funcname, level, + "%s pos=%d len=%d max=%d \n", + what, msg->pos, msg->len, msg->maxlen); + + for (i = 0; i < len; i += 16) { + current = &lb[0]; + + for (j = 0; j < 16; j++) { + unsigned char x = (msg->buf[i + j]); + + *current++ = jk_HEX[x >> 4]; + *current++ = jk_HEX[x & 0x0f]; + *current++ = ' '; + } + *current++ = ' '; + *current++ = '-'; + *current++ = ' '; + for (j = 0; j < 16; j++) { + unsigned char x = msg->buf[i + j]; + + if (x > 0x20 && x < 0x7F) { + *current++ = x; + } + else { + *current++ = '.'; + } + } + *current++ = '\n'; + *current++ = '\0'; + jk_log(l, file, line, funcname, level, + "%.4x %s", i, line); + } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]