aboutsummaryrefslogtreecommitdiff
path: root/src/lib/ndpi_main.c
diff options
context:
space:
mode:
authorVito Piserchia <vito.piserchia@dreamlab.net>2016-11-03 17:41:31 +0100
committerVito Piserchia <vito.piserchia@dreamlab.net>2016-11-03 17:41:31 +0100
commit04e45f503b86a58a3cf26a5d9fc81bebcb04b271 (patch)
treefe5620d3c962f9b1a2cff692b5f2bd3e65009e27 /src/lib/ndpi_main.c
parente3d15ef4e7f896ca62773cbd9b207967055d96b0 (diff)
setup the debug function
Diffstat (limited to 'src/lib/ndpi_main.c')
-rw-r--r--src/lib/ndpi_main.c31
1 files changed, 26 insertions, 5 deletions
diff --git a/src/lib/ndpi_main.c b/src/lib/ndpi_main.c
index c8d2d3d7d..2f0b5c336 100644
--- a/src/lib/ndpi_main.c
+++ b/src/lib/ndpi_main.c
@@ -1714,12 +1714,29 @@ void set_ndpi_malloc(void* (*__ndpi_malloc)(size_t size)) { _ndpi_malloc = __ndp
void set_ndpi_free(void (*__ndpi_free)(void *ptr)) { _ndpi_free = __ndpi_free; }
+void ndpi_debug_printf(unsigned int proto, struct ndpi_detection_module_struct *ndpi_str, ndpi_log_level_t log_level, const char * format, ...)
+{
+#ifdef NDPI_ENABLE_DEBUG_MESSAGES
+ va_list args;
+ #define MAX_STR_LEN 120
+ char str[MAX_STR_LEN];
+ va_start(args, format);
+ vsprintf(str, format, args);
+ va_end(args);
+
+ if (ndpi_str != NULL) {
+ char proto_name[64];
+ snprintf(proto_name, sizeof(proto_name), "%s", ndpi_get_proto_name(ndpi_str, proto));
+ printf("%s:%s:%u - Proto: %s, %s\n", ndpi_str->ndpi_debug_print_file, ndpi_str->ndpi_debug_print_function, ndpi_str->ndpi_debug_print_line, proto_name, str);
+ } else {
+ printf("Proto: %u, %s\n", proto, str);
+ }
+#endif
+}
+
void set_ndpi_debug_function(struct ndpi_detection_module_struct *ndpi_str, ndpi_debug_function_ptr ndpi_debug_printf) {
#ifdef NDPI_ENABLE_DEBUG_MESSAGES
- if (ndpi_debug_printf != NULL)
- ndpi_str->ndpi_debug_printf = ndpi_debug_printf;
- else
- ndpi_str->ndpi_debug_printf = (ndpi_debug_function_ptr) printf;
+ ndpi_str->ndpi_debug_printf = ndpi_debug_printf;
#endif
}
@@ -1731,11 +1748,15 @@ struct ndpi_detection_module_struct *ndpi_init_detection_module(void) {
if(ndpi_str == NULL) {
#ifdef NDPI_ENABLE_DEBUG_MESSAGES
printf(0, NULL, NDPI_LOG_DEBUG, "ndpi_init_detection_module initial malloc failed\n");
-#endif
+#endif /* NDPI_ENABLE_DEBUG_MESSAGES */
return NULL;
}
memset(ndpi_str, 0, sizeof(struct ndpi_detection_module_struct));
+#ifdef NDPI_ENABLE_DEBUG_MESSAGES
+ set_ndpi_debug_function(ndpi_str, (ndpi_debug_function_ptr)ndpi_debug_printf);
+#endif /* NDPI_ENABLE_DEBUG_MESSAGES */
+
if((ndpi_str->protocols_ptree = ndpi_New_Patricia(32 /* IPv4 */)) != NULL)
ndpi_init_ptree_ipv4(ndpi_str, ndpi_str->protocols_ptree, host_protocol_list);