@@ -9596,14 +9596,44 @@ static void _webui_print_hex(const char* data, size_t len) {
95969596static void _webui_print_ascii (const char * data , size_t len ) {
95979597 // This function is used to print the protocol binary packets. the packet
95989598 // may have ASCII and `0x00` inside text, as well as other non-ascii bytes
9599- for (size_t i = 0 ; i < len ; i ++ ) {
9600- register unsigned char c = (unsigned char )* data ;
9601- if (c < 32 || c > 126 ) {
9602- _webui_log_debug ("[0x%02X]" , c );
9603- } else {
9604- _webui_log_debug ("%c" , c );
9599+
9600+ if (len <= 128 ) {
9601+ // Print all data if size is 128 or less
9602+ for (size_t i = 0 ; i < len ; i ++ ) {
9603+ register unsigned char c = (unsigned char )* data ;
9604+ if (c < 32 || c > 126 ) {
9605+ _webui_log_debug ("[0x%02X]" , c );
9606+ } else {
9607+ _webui_log_debug ("%c" , c );
9608+ }
9609+ data ++ ;
9610+ }
9611+ } else {
9612+ // Print first 64 bytes
9613+ for (size_t i = 0 ; i < 64 ; i ++ ) {
9614+ register unsigned char c = (unsigned char )* data ;
9615+ if (c < 32 || c > 126 ) {
9616+ _webui_log_debug ("[0x%02X]" , c );
9617+ } else {
9618+ _webui_log_debug ("%c" , c );
9619+ }
9620+ data ++ ;
9621+ }
9622+
9623+ // Print ellipsis
9624+ _webui_log_debug (" ... " );
9625+
9626+ // Print last 64 bytes
9627+ data = data + (len - 64 );
9628+ for (size_t i = 0 ; i < 64 ; i ++ ) {
9629+ register unsigned char c = (unsigned char )* data ;
9630+ if (c < 32 || c > 126 ) {
9631+ _webui_log_debug ("[0x%02X]" , c );
9632+ } else {
9633+ _webui_log_debug ("%c" , c );
9634+ }
9635+ data ++ ;
96059636 }
9606- data ++ ;
96079637 }
96089638}
96099639#endif
0 commit comments