diff --git a/lib/output.c b/lib/output.c index 994d87dfb..8e72b7dce 100644 --- a/lib/output.c +++ b/lib/output.c @@ -65,41 +65,50 @@ libwebsocket_0405_frame_mask_generate(struct libwebsocket *wsi) return 0; } +#ifdef _DEBUG -void lws_stderr_hexdump(unsigned char *buf, size_t len) +void lwsl_hexdump(void *vbuf, size_t len) { int n; int m; int start; + unsigned char *buf = (unsigned char *)vbuf; + char line[80]; + char *p; lwsl_parser("\n"); for (n = 0; n < len;) { start = n; + p = line; - lwsl_debug("%04X: ", start); + p += sprintf(p, "%04X: ", start); for (m = 0; m < 16 && n < len; m++) - lwsl_debug("%02X ", buf[n++]); + p += sprintf(p, "%02X ", buf[n++]); while (m++ < 16) - lwsl_debug(" "); + p += sprintf(p, " "); - lwsl_debug(" "); + p += sprintf(p, " "); for (m = 0; m < 16 && (start + m) < len; m++) { if (buf[start + m] >= ' ' && buf[start + m] <= 127) - lwsl_debug("%c", buf[start + m]); + *p++ = buf[start + m]; else - lwsl_debug("."); + *p++ = '.'; } while (m++ < 16) - lwsl_debug(" "); + *p++ = ' '; - lwsl_debug("\n"); + *p++ = '\n'; + *p = '\0'; + lwsl_debug(line); } lwsl_debug("\n"); } +#endif + int lws_issue_raw(struct libwebsocket *wsi, unsigned char *buf, size_t len) { int n; diff --git a/lib/private-libwebsockets.h b/lib/private-libwebsockets.h index 3d16a32f1..a43a207b4 100644 --- a/lib/private-libwebsockets.h +++ b/lib/private-libwebsockets.h @@ -103,6 +103,7 @@ extern void _lws_log(int filter, const char *format, ...); #define lwsl_header(...) _lws_log(LLL_HEADER, __VA_ARGS__) #define lwsl_ext(...) _lws_log(LLL_HEADER, __VA_ARGS__) #define lwsl_client(...) _lws_log(LLL_CLIENT, __VA_ARGS__) +extern void lwsl_hexdump(void *buf, size_t len); #else /* no debug */ #define lwsl_info(...) #define lwsl_debug(...) @@ -110,6 +111,7 @@ extern void _lws_log(int filter, const char *format, ...); #define lwsl_header(...) #define lwsl_ext(...) #define lwsl_client(...) +#define lwsl_hexdump(a, b) #endif /*