aboutsummaryrefslogtreecommitdiff
path: root/src/include/ndpi_typedefs.h
diff options
context:
space:
mode:
authorIvan Nardi <12729895+IvanNardi@users.noreply.github.com>2023-11-09 10:50:59 +0100
committerGitHub <noreply@github.com>2023-11-09 10:50:59 +0100
commitb08c787fe267053afdea82701071f3878c09244b (patch)
treecbdc12984d11e1999ea90c07d1c838442199fa24 /src/include/ndpi_typedefs.h
parent0673da54b5db6be849e5ad3b22e80f3cadfccca9 (diff)
Have a clear distinction between public and private/internal API (#2137)
1) Public API/headers in `src/include/` [as it has always been] 2) Private API/headers in `src/lib/` Try to keep the "ndpi_" prefix only for the public functions
Diffstat (limited to 'src/include/ndpi_typedefs.h')
-rw-r--r--src/include/ndpi_typedefs.h276
1 files changed, 0 insertions, 276 deletions
diff --git a/src/include/ndpi_typedefs.h b/src/include/ndpi_typedefs.h
index 26fcf0be3..68e0365b4 100644
--- a/src/include/ndpi_typedefs.h
+++ b/src/include/ndpi_typedefs.h
@@ -942,45 +942,9 @@ struct ndpi_flow_udp_struct {
/* ************************************************** */
-#define LINE_EQUALS(ndpi_int_one_line_struct, string_to_compare) \
- ((ndpi_int_one_line_struct).len == strlen(string_to_compare) && \
- LINE_CMP(ndpi_int_one_line_struct, string_to_compare, strlen(string_to_compare)) == 1)
-
-#define LINE_STARTS(ndpi_int_one_line_struct, string_to_compare) \
- ((ndpi_int_one_line_struct).len >= strlen(string_to_compare) && \
- LINE_CMP(ndpi_int_one_line_struct, string_to_compare, strlen(string_to_compare)) == 1)
-
-#define LINE_ENDS(ndpi_int_one_line_struct, string_to_compare) \
- ((ndpi_int_one_line_struct).len >= strlen(string_to_compare) && \
- memcmp((ndpi_int_one_line_struct).ptr + \
- ((ndpi_int_one_line_struct).len - strlen(string_to_compare)), \
- string_to_compare, strlen(string_to_compare)) == 0)
-
-#define LINE_CMP(ndpi_int_one_line_struct, string_to_compare, string_to_compare_length) \
- ((ndpi_int_one_line_struct).ptr != NULL && \
- memcmp((ndpi_int_one_line_struct).ptr, string_to_compare, string_to_compare_length) == 0)
-
-struct ndpi_int_one_line_struct {
- const u_int8_t *ptr;
- u_int16_t len;
-};
-
struct ndpi_detection_module_struct;
struct ndpi_flow_struct;
-struct ndpi_call_function_struct {
- NDPI_PROTOCOL_BITMASK detection_bitmask;
- NDPI_PROTOCOL_BITMASK excluded_protocol_bitmask;
- void (*func) (struct ndpi_detection_module_struct *, struct ndpi_flow_struct *flow);
- NDPI_SELECTION_BITMASK_PROTOCOL_SIZE ndpi_selection_bitmask;
- u_int16_t ndpi_protocol_id;
- u_int8_t detection_feature;
-};
-
-struct ndpi_subprotocol_conf_struct {
- void (*func) (struct ndpi_detection_module_struct *, char *attr, char *value, int protocol_id);
-};
-
typedef struct {
u_int16_t port_low, port_high;
} ndpi_port_range;
@@ -1130,11 +1094,6 @@ typedef struct ndpi_proto_defaults {
void (*func) (struct ndpi_detection_module_struct *, struct ndpi_flow_struct *flow);
} ndpi_proto_defaults_t;
-typedef struct ndpi_default_ports_tree_node {
- ndpi_proto_defaults_t *proto;
- u_int8_t customUserProto;
- u_int16_t default_port;
-} ndpi_default_ports_tree_node_t;
typedef struct _ndpi_automa {
void *ac_automa; /* Real type is AC_AUTOMATA_t */
@@ -1183,241 +1142,6 @@ typedef struct {
} classes[MAX_NUM_NDPI_DOMAIN_CLASSIFICATIONS];
} ndpi_domain_classify;
-#ifdef NDPI_LIB_COMPILATION
-
-/* Needed to have access to HAVE_* defines */
-#ifndef _NDPI_CONFIG_H_
-#include "ndpi_config.h"
-#define _NDPI_CONFIG_H_
-#endif
-
-/* PLEASE DO NOT REMOVE OR CHANGE THE ORDER OF WHAT IS DELIMITED BY CFFI.NDPI_MODULE_STRUCT FLAG AS IT IS USED FOR
- PYTHON BINDINGS AUTO GENERATION */
-//CFFI.NDPI_MODULE_STRUCT
-
-typedef struct ndpi_list_struct {
- char *value;
- struct ndpi_list_struct *next;
-} ndpi_list;
-
-#ifdef HAVE_NBPF
-typedef struct {
- void *tree; /* cast to nbpf_filter* */
- u_int16_t l7_protocol;
-} nbpf_filter;
-#endif
-
-struct ndpi_packet_struct {
- const struct ndpi_iphdr *iph;
- const struct ndpi_ipv6hdr *iphv6;
- const struct ndpi_tcphdr *tcp;
- const struct ndpi_udphdr *udp;
- const u_int8_t *generic_l4_ptr; /* is set only for non tcp-udp traffic */
- const u_int8_t *payload;
-
- u_int64_t current_time_ms;
-
- struct ndpi_int_one_line_struct line[NDPI_MAX_PARSE_LINES_PER_PACKET];
- /* HTTP headers */
- struct ndpi_int_one_line_struct host_line;
- struct ndpi_int_one_line_struct forwarded_line;
- struct ndpi_int_one_line_struct referer_line;
- struct ndpi_int_one_line_struct content_line;
- struct ndpi_int_one_line_struct content_disposition_line;
- struct ndpi_int_one_line_struct accept_line;
- struct ndpi_int_one_line_struct authorization_line;
- struct ndpi_int_one_line_struct user_agent_line;
- struct ndpi_int_one_line_struct http_url_name;
- struct ndpi_int_one_line_struct http_encoding;
- struct ndpi_int_one_line_struct http_transfer_encoding;
- struct ndpi_int_one_line_struct http_contentlen;
- struct ndpi_int_one_line_struct http_cookie;
- struct ndpi_int_one_line_struct http_origin;
- struct ndpi_int_one_line_struct http_x_session_type;
- struct ndpi_int_one_line_struct server_line;
- struct ndpi_int_one_line_struct http_method;
- struct ndpi_int_one_line_struct http_response; /* the first "word" in this pointer is the
- response code in the packet (200, etc) */
- u_int8_t http_num_headers; /* number of found (valid) header lines in HTTP request or response */
-
- u_int16_t l3_packet_len;
- u_int16_t payload_packet_len;
- u_int16_t parsed_lines;
- u_int16_t empty_line_position;
- u_int8_t tcp_retransmission;
-
- u_int8_t packet_lines_parsed_complete:1,
- packet_direction:1, empty_line_position_set:1, http_check_content:1, pad:4;
-};
-
-struct ndpi_detection_module_struct {
- NDPI_PROTOCOL_BITMASK detection_bitmask;
-
- u_int64_t current_ts;
- u_int16_t max_packets_to_process;
- u_int16_t num_tls_blocks_to_follow;
- 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;
-
- void *user_data;
- char custom_category_labels[NUM_CUSTOM_CATEGORIES][CUSTOM_CATEGORY_LABEL_LEN];
-
- /* callback function buffer */
- struct ndpi_call_function_struct *callback_buffer;
- struct ndpi_call_function_struct *callback_buffer_tcp_no_payload;
- struct ndpi_call_function_struct *callback_buffer_tcp_payload;
- struct ndpi_call_function_struct *callback_buffer_udp;
- struct ndpi_call_function_struct *callback_buffer_non_tcp_udp;
- u_int32_t callback_buffer_size;
- u_int32_t callback_buffer_size_tcp_no_payload;
- u_int32_t callback_buffer_size_tcp_payload;
- u_int32_t callback_buffer_size_udp;
- u_int32_t callback_buffer_size_non_tcp_udp;
-
- ndpi_default_ports_tree_node_t *tcpRoot, *udpRoot;
-
- ndpi_log_level_t ndpi_log_level; /* default error */
-
-#ifdef NDPI_ENABLE_DEBUG_MESSAGES
- /* debug callback, only set when debug is used */
- ndpi_debug_function_ptr ndpi_debug_printf;
- const char *ndpi_debug_print_file;
- const char *ndpi_debug_print_function;
- u_int32_t ndpi_debug_print_line;
- NDPI_PROTOCOL_BITMASK debug_bitmask;
-#endif
-
- /* misc parameters */
- u_int32_t tcp_max_retransmission_window_size;
-
- /* subprotocol registration handler */
- struct ndpi_subprotocol_conf_struct subprotocol_conf[NDPI_MAX_SUPPORTED_PROTOCOLS + 1];
-
- u_int ndpi_num_supported_protocols;
- u_int ndpi_num_custom_protocols;
-
- int ac_automa_finalized;
- /* HTTP/DNS/HTTPS/QUIC host matching */
- ndpi_automa host_automa, /* Used for DNS/HTTPS */
- risky_domain_automa, tls_cert_subject_automa,
- host_risk_mask_automa, common_alpns_automa;
- /* IMPORTANT: please, whenever you add a new automa:
- * update ndpi_finalize_initialization()
- * update automa_type above
- */
-
- ndpi_str_hash *malicious_ja3_hashmap, *malicious_sha1_hashmap;
-
- ndpi_list *trusted_issuer_dn;
-
- /* Patricia trees */
- ndpi_patricia_tree_t *ip_risk_mask_ptree;
- ndpi_patricia_tree_t *ip_risk_mask_ptree6;
- ndpi_patricia_tree_t *ip_risk_ptree;
- ndpi_patricia_tree_t *ip_risk_ptree6;
- ndpi_patricia_tree_t *protocols_ptree; /* IP-based protocol detection */
- ndpi_patricia_tree_t *protocols_ptree6;
-
- /* *** If you add a new Patricia tree, please update ptree_type above! *** */
-
- struct {
-#ifdef USE_LEGACY_AHO_CORASICK
- ndpi_automa hostnames, hostnames_shadow;
-#else
- ndpi_domain_classify *sc_hostnames, *sc_hostnames_shadow;
-#endif
- void *ipAddresses, *ipAddresses_shadow; /* Patricia */
- void *ipAddresses6, *ipAddresses6_shadow; /* Patricia IPv6*/
- u_int8_t categories_loaded;
- } custom_categories;
-
- u_int8_t ip_version_limit;
-
- /* NDPI_PROTOCOL_TINC */
- struct cache *tinc_cache;
-
- /* NDPI_PROTOCOL_OOKLA */
- struct ndpi_lru_cache *ookla_cache;
- u_int32_t ookla_cache_num_entries;
- u_int32_t ookla_cache_ttl;
-
- /* NDPI_PROTOCOL_BITTORRENT */
- struct ndpi_lru_cache *bittorrent_cache;
- u_int32_t bittorrent_cache_num_entries;
- u_int32_t bittorrent_cache_ttl;
-
- /* NDPI_PROTOCOL_ZOOM */
- struct ndpi_lru_cache *zoom_cache;
- u_int32_t zoom_cache_num_entries;
- u_int32_t zoom_cache_ttl;
-
- /* NDPI_PROTOCOL_STUN and subprotocols */
- struct ndpi_lru_cache *stun_cache;
- u_int32_t stun_cache_num_entries;
- u_int32_t stun_cache_ttl;
- struct ndpi_lru_cache *stun_zoom_cache;
- u_int32_t stun_zoom_cache_num_entries;
- u_int32_t stun_zoom_cache_ttl;
-
- /* NDPI_PROTOCOL_TLS and subprotocols */
- struct ndpi_lru_cache *tls_cert_cache;
- u_int32_t tls_cert_cache_num_entries;
- int32_t tls_cert_cache_ttl;
-
- /* NDPI_PROTOCOL_MINING and subprotocols */
- struct ndpi_lru_cache *mining_cache;
- u_int32_t mining_cache_num_entries;
- u_int32_t mining_cache_ttl;
-
- /* NDPI_PROTOCOL_MSTEAMS */
- struct ndpi_lru_cache *msteams_cache;
- u_int32_t msteams_cache_num_entries;
- u_int32_t msteams_cache_ttl;
-
- /* *** If you add a new LRU cache, please update lru_cache_type above! *** */
-
- int opportunistic_tls_smtp_enabled;
- int opportunistic_tls_imap_enabled;
- int opportunistic_tls_pop_enabled;
- int opportunistic_tls_ftp_enabled;
- int opportunistic_tls_stun_enabled;
-
- u_int32_t monitoring_stun_pkts_to_process;
- u_int32_t monitoring_stun_flags;
-
- u_int32_t aggressiveness_ookla;
-
- int tcp_ack_paylod_heuristic;
- int fully_encrypted_based_on_first_pkt_heuristic;
-
- u_int16_t ndpi_to_user_proto_id[NDPI_MAX_NUM_CUSTOM_PROTOCOLS]; /* custom protocolId mapping */
- ndpi_proto_defaults_t proto_defaults[NDPI_MAX_SUPPORTED_PROTOCOLS+NDPI_MAX_NUM_CUSTOM_PROTOCOLS];
-
- u_int8_t direction_detect_disable:1, /* disable internal detection of packet direction */ _pad:7;
-
-#ifdef CUSTOM_NDPI_PROTOCOLS
- #include "../../../nDPI-custom/custom_ndpi_typedefs.h"
-#endif
-
- /* GeoIP */
- void *mmdb_city, *mmdb_as;
- u_int8_t mmdb_city_loaded, mmdb_as_loaded;
-
- /* Current packet */
- struct ndpi_packet_struct packet;
- const struct ndpi_flow_input_info *input_info;
-
-#ifdef HAVE_NBPF
- u_int8_t num_nbpf_custom_proto;
- nbpf_filter nbpf_custom_proto[MAX_NBPF_CUSTOM_PROTO];
-#endif
-
- u_int16_t max_payload_track_len;
-};
-
-#endif /* NDPI_LIB_COMPILATION */
-//CFFI.NDPI_MODULE_STRUCT
-
typedef enum {
ndpi_cipher_safe = NDPI_CIPHER_SAFE,
ndpi_cipher_weak = NDPI_CIPHER_WEAK,