aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--epan/dissectors/packet-dtls.c2
-rw-r--r--epan/dissectors/packet-ssl-utils.c30
-rw-r--r--epan/dissectors/packet-ssl-utils.h3
-rw-r--r--epan/dissectors/packet-ssl.c2
4 files changed, 13 insertions, 24 deletions
diff --git a/epan/dissectors/packet-dtls.c b/epan/dissectors/packet-dtls.c
index af485b0c26..4747d98317 100644
--- a/epan/dissectors/packet-dtls.c
+++ b/epan/dissectors/packet-dtls.c
@@ -950,7 +950,7 @@ dissect_dtls_record(tvbuff_t *tvb, packet_info *pinfo,
/* find out a dissector using server port*/
if (association && association->handle) {
ssl_debug_printf("dissect_dtls_record found association %p\n", (void *)association);
- ssl_print_text_data("decrypted app data",appl_data->plain_data.data, appl_data->plain_data.data_len);
+ ssl_print_data("decrypted app data",appl_data->plain_data.data, appl_data->plain_data.data_len);
dissected = call_dissector_only(association->handle, next_tvb, pinfo, top_tree, NULL);
}
diff --git a/epan/dissectors/packet-ssl-utils.c b/epan/dissectors/packet-ssl-utils.c
index 41b062cf89..99034df4dc 100644
--- a/epan/dissectors/packet-ssl-utils.c
+++ b/epan/dissectors/packet-ssl-utils.c
@@ -29,6 +29,7 @@
#include <zlib.h>
#endif
+#include <ctype.h>
#include "packet-ssl-utils.h"
#include "packet-ssl.h"
@@ -3901,31 +3902,22 @@ ssl_debug_printf(const gchar* fmt, ...)
}
void
-ssl_print_text_data(const gchar* name, const guchar* data, size_t len)
-{
- size_t i;
- if (!ssl_debug_file)
- return;
- fprintf(ssl_debug_file,"%s: ",name);
- for (i=0; i< len; i++) {
- fprintf(ssl_debug_file,"%c",data[i]);
- }
- fprintf(ssl_debug_file,"\n");
-}
-
-void
ssl_print_data(const gchar* name, const guchar* data, size_t len)
{
- size_t i;
+ size_t i, j, k;
if (!ssl_debug_file)
return;
fprintf(ssl_debug_file,"%s[%d]:\n",name, (int) len);
- for (i=0; i< len; i++) {
- if ((i > 0) && (i%16 == 0))
- fprintf(ssl_debug_file,"\n");
- fprintf(ssl_debug_file,"%.2x ",data[i]&255);
+ for (i=0; i<len; i+=16) {
+ for (j=i, k=0; k<16 && j<len; ++j, ++k)
+ fprintf(ssl_debug_file,"%.2x ",data[j]);
+ for (; k<16; ++k)
+ fprintf(ssl_debug_file," ");
+ fprintf(ssl_debug_file,"|");
+ for (j=i, k=0; k<16 && j<len; ++j, ++k)
+ fprintf(ssl_debug_file,"%c",isprint(data[j]) ? data[j] : '.');
+ fprintf(ssl_debug_file,"|\n");
}
- fprintf(ssl_debug_file,"\n");
}
void
diff --git a/epan/dissectors/packet-ssl-utils.h b/epan/dissectors/packet-ssl-utils.h
index 2f326745a7..3d3a65e63a 100644
--- a/epan/dissectors/packet-ssl-utils.h
+++ b/epan/dissectors/packet-ssl-utils.h
@@ -548,8 +548,6 @@ ssl_print_data(const gchar* name, const guchar* data, size_t len);
extern void
ssl_print_string(const gchar* name, const StringInfo* data);
extern void
-ssl_print_text_data(const gchar* name, const guchar* data, size_t len);
-extern void
ssl_set_debug(const gchar* name);
extern void
ssl_debug_flush(void);
@@ -562,7 +560,6 @@ ssl_debug_printf(const gchar* fmt _U_,...)
}
#define ssl_print_data(a, b, c)
#define ssl_print_string(a, b)
-#define ssl_print_text_data(a, b, c)
#define ssl_set_debug(name)
#define ssl_debug_flush()
diff --git a/epan/dissectors/packet-ssl.c b/epan/dissectors/packet-ssl.c
index 95ea4ed29b..2aa9c3cff0 100644
--- a/epan/dissectors/packet-ssl.c
+++ b/epan/dissectors/packet-ssl.c
@@ -1365,7 +1365,7 @@ dissect_ssl_payload(tvbuff_t *tvb, packet_info *pinfo, int offset, proto_tree *t
/* try to dissect decrypted data*/
ssl_debug_printf("dissect_ssl3_record decrypted len %d\n", appl_data->plain_data.data_len);
- ssl_print_text_data("decrypted app data fragment", appl_data->plain_data.data, appl_data->plain_data.data_len);
+ ssl_print_data("decrypted app data fragment", appl_data->plain_data.data, appl_data->plain_data.data_len);
/* create a new TVB structure for desegmented data */
next_tvb = tvb_new_child_real_data(tvb, appl_data->plain_data.data, appl_data->plain_data.data_len, appl_data->plain_data.data_len);