diff options
-rw-r--r-- | src/include/ndpi_define.h.in | 5 | ||||
-rw-r--r-- | src/include/ndpi_typedefs.h | 18 | ||||
-rw-r--r-- | src/lib/ndpi_geoip.c | 29 | ||||
-rw-r--r-- | src/lib/ndpi_utils.c | 9 |
4 files changed, 30 insertions, 31 deletions
diff --git a/src/include/ndpi_define.h.in b/src/include/ndpi_define.h.in index 996cdfa8f..e63a137b9 100644 --- a/src/include/ndpi_define.h.in +++ b/src/include/ndpi_define.h.in @@ -179,11 +179,6 @@ #define NDPI_JABBER_FT_TIMEOUT 5 #define NDPI_SOULSEEK_CONNECTION_IP_TICK_TIMEOUT 600 -#ifndef _NDPI_CONFIG_H_ -#include "ndpi_config.h" /* To have access to NDPI_ENABLE_DEBUG_MESSAGES */ -#define _NDPI_CONFIG_H_ -#endif - #ifdef NDPI_ENABLE_DEBUG_MESSAGES #define NDPI_LOG(proto, m, log_level, args...) \ { \ diff --git a/src/include/ndpi_typedefs.h b/src/include/ndpi_typedefs.h index 123c9edec..c3dc63e3a 100644 --- a/src/include/ndpi_typedefs.h +++ b/src/include/ndpi_typedefs.h @@ -31,10 +31,6 @@ /* Used by both nDPI core and patricia code under third-party */ #include "ndpi_patricia_typedefs.h" -#ifdef HAVE_MAXMINDDB -#include <maxminddb.h> -#endif - /* NDPI_LOG_LEVEL */ typedef enum { NDPI_LOG_ERROR, @@ -1034,15 +1030,6 @@ typedef struct ndpi_proto { #define _NDPI_CONFIG_H_ #endif -#ifdef HAVE_PCRE -#include <pcre.h> - -struct pcre_struct { - pcre *compiled; - pcre_extra *optimized; -}; -#endif - typedef enum { ndpi_stun_cache, ndpi_hangout_cache @@ -1171,10 +1158,9 @@ struct ndpi_detection_module_struct { #include "../../../nDPI-custom/custom_ndpi_typedefs.h" #endif -#ifdef HAVE_MAXMINDDB - MMDB_s mmdb_city, mmdb_as; + /* GeoIP */ + void *mmdb_city, *mmdb_as; u_int8_t mmdb_city_loaded, mmdb_as_loaded; -#endif /* Current packet */ struct ndpi_packet_struct packet; diff --git a/src/lib/ndpi_geoip.c b/src/lib/ndpi_geoip.c index 23fb0b752..c3308b48b 100644 --- a/src/lib/ndpi_geoip.c +++ b/src/lib/ndpi_geoip.c @@ -21,10 +21,6 @@ * */ -#ifdef HAVE_CONFIG_H -#include "ndpi_config.h" -#endif - #include <stdlib.h> #include <errno.h> #include <sys/types.h> @@ -33,6 +29,10 @@ #include "ndpi_api.h" #include "ndpi_config.h" +#ifdef HAVE_MAXMINDDB +#include <maxminddb.h> +#endif + /* ********************************************************************************* */ int ndpi_load_geoip(struct ndpi_detection_module_struct *ndpi_str, @@ -40,13 +40,19 @@ int ndpi_load_geoip(struct ndpi_detection_module_struct *ndpi_str, #ifdef HAVE_MAXMINDDB int status; + ndpi_str->mmdb_city = (void*)ndpi_malloc(sizeof(MMDB_s)); + ndpi_str->mmdb_as = (void*)ndpi_malloc(sizeof(MMDB_s)); + + if((ndpi_str->mmdb_city == NULL) || (ndpi_str->mmdb_as == NULL)) + return(-1); + /* Open the MMDB files */ - if((status = MMDB_open(ip_city_data, MMDB_MODE_MMAP, &ndpi_str->mmdb_city)) != MMDB_SUCCESS) + if((status = MMDB_open(ip_city_data, MMDB_MODE_MMAP, (MMDB_s*)ndpi_str->mmdb_city)) != MMDB_SUCCESS) return(-1); else ndpi_str->mmdb_city_loaded = 1; - if((status = MMDB_open(ip_as_data, MMDB_MODE_MMAP, &ndpi_str->mmdb_as)) != MMDB_SUCCESS) + if((status = MMDB_open(ip_as_data, MMDB_MODE_MMAP, (MMDB_s*)ndpi_str->mmdb_as)) != MMDB_SUCCESS) return(-2); else ndpi_str->mmdb_as_loaded = 1; @@ -61,8 +67,11 @@ int ndpi_load_geoip(struct ndpi_detection_module_struct *ndpi_str, void ndpi_free_geoip(struct ndpi_detection_module_struct *ndpi_str) { #ifdef HAVE_MAXMINDDB - if(ndpi_str->mmdb_city_loaded) MMDB_close(&ndpi_str->mmdb_city); - if(ndpi_str->mmdb_as_loaded) MMDB_close(&ndpi_str->mmdb_as); + if(ndpi_str->mmdb_city_loaded) MMDB_close((MMDB_s*)ndpi_str->mmdb_city); + if(ndpi_str->mmdb_as_loaded) MMDB_close((MMDB_s*)ndpi_str->mmdb_as); + + ndpi_free(ndpi_str->mmdb_city); + ndpi_free(ndpi_str->mmdb_as); #endif } @@ -75,7 +84,7 @@ int ndpi_get_geoip_asn(struct ndpi_detection_module_struct *ndpi_str, char *ip, MMDB_entry_data_s entry_data; if(ndpi_str->mmdb_as_loaded) { - result = MMDB_lookup_string(&ndpi_str->mmdb_as, ip, &gai_error, &mmdb_error); + result = MMDB_lookup_string((MMDB_s*)ndpi_str->mmdb_as, ip, &gai_error, &mmdb_error); if((gai_error != 0) || (mmdb_error != MMDB_SUCCESS) @@ -112,7 +121,7 @@ int ndpi_get_geoip_country_continent(struct ndpi_detection_module_struct *ndpi_s if(ndpi_str->mmdb_city_loaded) { int status; - result = MMDB_lookup_string(&ndpi_str->mmdb_city, ip, &gai_error, &mmdb_error); + result = MMDB_lookup_string((MMDB_s*)ndpi_str->mmdb_city, ip, &gai_error, &mmdb_error); if((gai_error != 0) || (mmdb_error != MMDB_SUCCESS) diff --git a/src/lib/ndpi_utils.c b/src/lib/ndpi_utils.c index 9839d8863..18e9f424a 100644 --- a/src/lib/ndpi_utils.c +++ b/src/lib/ndpi_utils.c @@ -59,6 +59,15 @@ // #define DEBUG_REASSEMBLY +#ifdef HAVE_PCRE +#include <pcre.h> + +struct pcre_struct { + pcre *compiled; + pcre_extra *optimized; +}; +#endif + /* ****************************************** */ /* implementation of the punycode check function */ |