diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/include/ndpi_api.h | 19 | ||||
-rw-r--r-- | src/include/ndpi_typedefs.h | 6 | ||||
-rw-r--r-- | src/lib/ndpi_main.c | 19 |
3 files changed, 39 insertions, 5 deletions
diff --git a/src/include/ndpi_api.h b/src/include/ndpi_api.h index 0a420accb..eac4bcd25 100644 --- a/src/include/ndpi_api.h +++ b/src/include/ndpi_api.h @@ -1942,6 +1942,25 @@ extern "C" { char *out, u_int out_len, u_int8_t use_json); + /* ******************************* */ + + /** + * Set user data which can later retrieved with `ndpi_get_user_data()`. + * + * @par ndpi_str = the struct created for the protocol detection + * @par user_data = user data pointer you want to retrieve later with `ndpi_get_user_data()` + * + */ + void ndpi_set_user_data(struct ndpi_detection_module_struct *ndpi_str, void *user_data); + + /** + * Get user data which was previously set with `ndpi_set_user_data()`. + * + * @return the user data pointer + * + */ + void *ndpi_get_user_data(struct ndpi_detection_module_struct *ndpi_str); + #ifdef __cplusplus } #endif diff --git a/src/include/ndpi_typedefs.h b/src/include/ndpi_typedefs.h index d857899da..1cc55047c 100644 --- a/src/include/ndpi_typedefs.h +++ b/src/include/ndpi_typedefs.h @@ -221,8 +221,10 @@ typedef struct ndpi_protocol_bitmask_struct { ndpi_ndpi_mask fds_bits[NDPI_NUM_FDS_BITS]; } ndpi_protocol_bitmask_struct_t; +struct ndpi_detection_module_struct; + /* NDPI_DEBUG_FUNCTION_PTR (cast) */ -typedef void (*ndpi_debug_function_ptr) (u_int32_t protocol, void *module_struct, +typedef void (*ndpi_debug_function_ptr) (u_int32_t protocol, struct ndpi_detection_module_struct *module_struct, ndpi_log_level_t log_level, const char *file, const char *func, unsigned line, const char *format, ...); @@ -1158,9 +1160,7 @@ struct ndpi_detection_module_struct { u_int8_t skip_tls_blocks_until_change_cipher:1, enable_ja3_plus:1, _notused:6; u_int8_t tls_certificate_expire_in_x_days; -#ifdef NDPI_ENABLE_DEBUG_MESSAGES void *user_data; -#endif char custom_category_labels[NUM_CUSTOM_CATEGORIES][CUSTOM_CATEGORY_LABEL_LEN]; /* callback function buffer */ diff --git a/src/lib/ndpi_main.c b/src/lib/ndpi_main.c index 7a5de852f..b37ae40ab 100644 --- a/src/lib/ndpi_main.c +++ b/src/lib/ndpi_main.c @@ -2863,9 +2863,7 @@ struct ndpi_detection_module_struct *ndpi_init_detection_module(ndpi_init_prefs ndpi_str->max_packets_to_process = NDPI_DEFAULT_MAX_NUM_PKTS_PER_FLOW_TO_DISSECT; NDPI_BITMASK_SET_ALL(ndpi_str->detection_bitmask); -#ifdef NDPI_ENABLE_DEBUG_MESSAGES ndpi_str->user_data = NULL; -#endif ndpi_str->tcp_max_retransmission_window_size = NDPI_DEFAULT_MAX_TCP_RETRANSMISSION_WINDOW_SIZE; ndpi_str->tls_certificate_expire_in_x_days = 30; /* NDPI_TLS_CERTIFICATE_ABOUT_TO_EXPIRE flow risk */ @@ -9801,3 +9799,20 @@ u_int32_t ndpi_get_protocol_aggressiveness(struct ndpi_detection_module_struct * return -1; } } + +/* ******************************************************************** */ + +void ndpi_set_user_data(struct ndpi_detection_module_struct *ndpi_str, void *user_data) +{ + if (ndpi_str->user_data != NULL) + { + NDPI_LOG_ERR(ndpi_str, "%s", "User data is already set. Overwriting.") + } + + ndpi_str->user_data = user_data; +} + +void *ndpi_get_user_data(struct ndpi_detection_module_struct *ndpi_str) +{ + return ndpi_str->user_data; +} |