mirror of
https://github.com/vel21ripn/nDPI.git
synced 2026-05-05 10:41:40 +00:00
Win32 compilation fixes
This commit is contained in:
parent
98ef945d2e
commit
cb68d4d00a
7 changed files with 51 additions and 15 deletions
|
|
@ -54,8 +54,10 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
|
#ifndef __LITTLE_ENDIAN__
|
||||||
#define __LITTLE_ENDIAN__ 1
|
#define __LITTLE_ENDIAN__ 1
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#if !(defined(__LITTLE_ENDIAN__) || defined(__BIG_ENDIAN__))
|
#if !(defined(__LITTLE_ENDIAN__) || defined(__BIG_ENDIAN__))
|
||||||
#if defined(__mips__)
|
#if defined(__mips__)
|
||||||
|
|
@ -286,4 +288,8 @@
|
||||||
/* define memory callback function */
|
/* define memory callback function */
|
||||||
#define match_first_bytes(payload,st) (memcmp((payload),(st),(sizeof(st)-1))==0)
|
#define match_first_bytes(payload,st) (memcmp((payload),(st),(sizeof(st)-1))==0)
|
||||||
|
|
||||||
|
#ifdef WIN32
|
||||||
|
#define snprintf(buf,len, format,...) _snprintf_s(buf, len,len, format, __VA_ARGS__)
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* __NDPI_DEFINE_INCLUDE_FILE__ */
|
#endif /* __NDPI_DEFINE_INCLUDE_FILE__ */
|
||||||
|
|
|
||||||
|
|
@ -34,12 +34,15 @@
|
||||||
#endif
|
#endif
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef WIN32
|
||||||
|
#include <winsock2.h>
|
||||||
|
#include <ws2tcpip.h>
|
||||||
|
#else
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
|
|
||||||
|
|
||||||
#ifndef WIN32
|
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
|
#include <sys/socket.h>
|
||||||
#if !defined __APPLE__ && !defined __FreeBSD__ && !defined __NetBSD__ && !defined __OpenBSD__
|
#if !defined __APPLE__ && !defined __FreeBSD__ && !defined __NetBSD__ && !defined __OpenBSD__
|
||||||
#include <endian.h>
|
#include <endian.h>
|
||||||
#include <byteswap.h>
|
#include <byteswap.h>
|
||||||
|
|
|
||||||
|
|
@ -56,6 +56,18 @@ typedef struct node_t
|
||||||
struct node_t *left, *right;
|
struct node_t *left, *right;
|
||||||
} ndpi_node;
|
} ndpi_node;
|
||||||
|
|
||||||
|
#ifdef WIN32
|
||||||
|
typedef unsigned char u_char;
|
||||||
|
typedef unsigned short u_short;
|
||||||
|
typedef unsigned int uint;
|
||||||
|
typedef unsigned long u_long;
|
||||||
|
typedef u_char u_int8_t;
|
||||||
|
typedef u_short u_int16_t;
|
||||||
|
typedef uint u_int32_t;
|
||||||
|
typedef uint u_int;
|
||||||
|
typedef unsigned __int64 u_int64_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* NDPI_MASK_SIZE */
|
/* NDPI_MASK_SIZE */
|
||||||
typedef u_int32_t ndpi_ndpi_mask;
|
typedef u_int32_t ndpi_ndpi_mask;
|
||||||
|
|
||||||
|
|
@ -93,7 +105,7 @@ struct ndpi_chdlc
|
||||||
u_int8_t addr; /* 0x0F (Unicast) - 0x8F (Broadcast) */
|
u_int8_t addr; /* 0x0F (Unicast) - 0x8F (Broadcast) */
|
||||||
u_int8_t ctrl; /* always 0x00 */
|
u_int8_t ctrl; /* always 0x00 */
|
||||||
u_int16_t proto_code; /* protocol type (e.g. 0x0800 IP) */
|
u_int16_t proto_code; /* protocol type (e.g. 0x0800 IP) */
|
||||||
} PACK_OFF;
|
}; PACK_OFF
|
||||||
|
|
||||||
/* SLARP - Serial Line ARP http://tinyurl.com/qa54e95 */
|
/* SLARP - Serial Line ARP http://tinyurl.com/qa54e95 */
|
||||||
PACK_ON
|
PACK_ON
|
||||||
|
|
@ -269,6 +281,11 @@ struct ndpi_udphdr
|
||||||
u_int16_t check;
|
u_int16_t check;
|
||||||
} PACK_OFF;
|
} PACK_OFF;
|
||||||
|
|
||||||
|
PACK_ON
|
||||||
|
struct ndpi_dns_packet_header {
|
||||||
|
u_int16_t transaction_id, flags, num_queries, answer_rrs, authority_rrs, additional_rrs;
|
||||||
|
} PACK_OFF;
|
||||||
|
|
||||||
typedef union
|
typedef union
|
||||||
{
|
{
|
||||||
u_int32_t ipv4;
|
u_int32_t ipv4;
|
||||||
|
|
|
||||||
|
|
@ -62,7 +62,7 @@ typedef unsigned __int64 u_int64_t;
|
||||||
#define pthread_rwlock_unlock pthread_mutex_unlock
|
#define pthread_rwlock_unlock pthread_mutex_unlock
|
||||||
#define pthread_rwlock_destroy pthread_mutex_destroy
|
#define pthread_rwlock_destroy pthread_mutex_destroy
|
||||||
|
|
||||||
#define gmtime_r(a, b) gmtime(a) /* Already thread safe on windows */
|
#define gmtime_r(a, b) memcpy(b, gmtime(a), sizeof(struct tm))
|
||||||
|
|
||||||
extern unsigned long waitForNextEvent(unsigned long ulDelay /* ms */);
|
extern unsigned long waitForNextEvent(unsigned long ulDelay /* ms */);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1833,6 +1833,22 @@ u_int ndpi_get_num_supported_protocols(struct ndpi_detection_module_struct *ndpi
|
||||||
|
|
||||||
/* ******************************************************************** */
|
/* ******************************************************************** */
|
||||||
|
|
||||||
|
#ifdef WIN32
|
||||||
|
char * strsep(char **sp, char *sep)
|
||||||
|
{
|
||||||
|
char *p, *s;
|
||||||
|
if (sp == NULL || *sp == NULL || **sp == '\0') return(NULL);
|
||||||
|
s = *sp;
|
||||||
|
p = s + strcspn(s, sep);
|
||||||
|
if (*p != '\0') *p++ = '\0';
|
||||||
|
*sp = p;
|
||||||
|
return(s);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* ******************************************************************** */
|
||||||
|
|
||||||
|
|
||||||
int ndpi_handle_rule(struct ndpi_detection_module_struct *ndpi_mod, char* rule, u_int8_t do_add) {
|
int ndpi_handle_rule(struct ndpi_detection_module_struct *ndpi_mod, char* rule, u_int8_t do_add) {
|
||||||
char *at, *proto, *elem;
|
char *at, *proto, *elem;
|
||||||
ndpi_proto_defaults_t *def;
|
ndpi_proto_defaults_t *def;
|
||||||
|
|
|
||||||
|
|
@ -85,10 +85,6 @@ static u_int16_t get16(int *i, const u_int8_t *payload) {
|
||||||
|
|
||||||
/* *********************************************** */
|
/* *********************************************** */
|
||||||
|
|
||||||
struct dns_packet_header {
|
|
||||||
u_int16_t transaction_id, flags, num_queries, answer_rrs, authority_rrs, additional_rrs;
|
|
||||||
} __attribute__((packed));
|
|
||||||
|
|
||||||
void ndpi_search_dns(struct ndpi_detection_module_struct *ndpi_struct, struct ndpi_flow_struct *flow)
|
void ndpi_search_dns(struct ndpi_detection_module_struct *ndpi_struct, struct ndpi_flow_struct *flow)
|
||||||
{
|
{
|
||||||
struct ndpi_packet_struct *packet = &flow->packet;
|
struct ndpi_packet_struct *packet = &flow->packet;
|
||||||
|
|
@ -107,9 +103,9 @@ void ndpi_search_dns(struct ndpi_detection_module_struct *ndpi_struct, struct nd
|
||||||
}
|
}
|
||||||
|
|
||||||
if(((dport == 53) || (sport == 53) || (dport == 5355))
|
if(((dport == 53) || (sport == 53) || (dport == 5355))
|
||||||
&& (packet->payload_packet_len > sizeof(struct dns_packet_header))) {
|
&& (packet->payload_packet_len > sizeof(struct ndpi_dns_packet_header))) {
|
||||||
int i = packet->tcp ? 2 : 0;
|
int i = packet->tcp ? 2 : 0;
|
||||||
struct dns_packet_header header, *dns = (struct dns_packet_header*)&packet->payload[i];
|
struct ndpi_dns_packet_header header, *dns = (struct ndpi_dns_packet_header*)&packet->payload[i];
|
||||||
u_int8_t is_query, ret_code, is_dns = 0;
|
u_int8_t is_query, ret_code, is_dns = 0;
|
||||||
u_int32_t a_record[NDPI_MAX_DNS_REQUESTS] = { 0 }, query_offset, num_a_records = 0;
|
u_int32_t a_record[NDPI_MAX_DNS_REQUESTS] = { 0 }, query_offset, num_a_records = 0;
|
||||||
|
|
||||||
|
|
@ -121,7 +117,7 @@ void ndpi_search_dns(struct ndpi_detection_module_struct *ndpi_struct, struct nd
|
||||||
header.additional_rrs = ntohs(dns->additional_rrs);
|
header.additional_rrs = ntohs(dns->additional_rrs);
|
||||||
is_query = (header.flags & 0x8000) ? 0 : 1;
|
is_query = (header.flags & 0x8000) ? 0 : 1;
|
||||||
ret_code = is_query ? 0 : (header.flags & 0x0F);
|
ret_code = is_query ? 0 : (header.flags & 0x0F);
|
||||||
i += sizeof(struct dns_packet_header);
|
i += sizeof(struct ndpi_dns_packet_header);
|
||||||
query_offset = i;
|
query_offset = i;
|
||||||
|
|
||||||
if(is_query) {
|
if(is_query) {
|
||||||
|
|
|
||||||
|
|
@ -30,8 +30,6 @@
|
||||||
#ifdef NDPI_SERVICE_KAKAOTALK_VOICE
|
#ifdef NDPI_SERVICE_KAKAOTALK_VOICE
|
||||||
void ndpi_search_kakaotalk_voice(struct ndpi_detection_module_struct *ndpi_struct, struct ndpi_flow_struct *flow) {
|
void ndpi_search_kakaotalk_voice(struct ndpi_detection_module_struct *ndpi_struct, struct ndpi_flow_struct *flow) {
|
||||||
struct ndpi_packet_struct *packet = &flow->packet;
|
struct ndpi_packet_struct *packet = &flow->packet;
|
||||||
unsigned char *vers;
|
|
||||||
int ver_offs;
|
|
||||||
|
|
||||||
if(packet->iph
|
if(packet->iph
|
||||||
&& packet->udp
|
&& packet->udp
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue