Skip to content

Commit

Permalink
Merge pull request #9 from lucagiove/dev
Browse files Browse the repository at this point in the history
Introduced incremental versioning from git tag and -r option to ndpiReader to print revision
  • Loading branch information
lucaderi committed May 21, 2015
2 parents e4923a5 + b3b0ce7 commit 9542227
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 26 deletions.
31 changes: 15 additions & 16 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -10,32 +10,31 @@ AC_PROG_CC
AX_PTHREAD

if test -d ".git"; then :
GIT_TAG=`git rev-parse HEAD`
GIT_DATE=`date +%Y%m%d`
GIT_RELEASE="${PACKAGE_VERSION} (${GIT_TAG}:${GIT_DATE})"
GIT_TAG=`git log -1 --format=%H`
GIT_DATE=`git log -1 --format=%cd`
GIT_RELEASE=`git describe --tags --long --dirty --always`
else
GIT_RELEASE="${PACKAGE_VERSION}"
SVN_DATE=`date`
GIT_RELEASE="${PACKAGE_VERSION}"
GIT_DATE=`date`
fi

AC_DEFINE_UNQUOTED(NDPI_GIT_RELEASE, "r${GIT_RELEASE}", [SVN Release])
AC_DEFINE_UNQUOTED(NDPI_SVN_DATE, "${SVN_DATE}", [Last SVN change])
AC_DEFINE_UNQUOTED(NDPI_GIT_RELEASE, "${GIT_RELEASE}", [GIT Release])
AC_DEFINE_UNQUOTED(NDPI_GIT_DATE, "${GIT_DATE}", [Last GIT change])

AC_CHECK_HEADERS([netinet/in.h stdint.h stdlib.h string.h unistd.h])

PCAP_HOME=$HOME/PF_RING/userland

if test -d $PCAP_HOME; then :
echo -n ""
echo -n ""
else
PCAP_HOME=`pwd`/../../PF_RING/userland
PCAP_HOME=`pwd`/../../PF_RING/userland
fi

SHORT_MACHINE=`uname -m | cut -b1-3`
if test $SHORT_MACHINE = "arm"; then
LIBNUMA=""
LIBNUMA=""
else
LIBNUMA="-lnuma"
LIBNUMA="-lnuma"
fi

if test -f $PCAP_HOME/libpcap/libpcap.a; then :
Expand All @@ -57,11 +56,11 @@ else
fi

if test -d /usr/local/include/json-c/; then :
CFLAGS="$CFLAGS -I/usr/local/include/json-c/"
LDFLAGS="$LDFLAGS -L/usr/local/lib -ljson-c"
CFLAGS="$CFLAGS -I/usr/local/include/json-c/"
LDFLAGS="$LDFLAGS -L/usr/local/lib -ljson-c"
else
CFLAGS="$CFLAGS $(pkg-config --cflags json-c)"
LDFLAGS="$LDFLAGS $(pkg-config --libs json-c)"
CFLAGS="$CFLAGS $(pkg-config --cflags json-c)"
LDFLAGS="$LDFLAGS $(pkg-config --libs json-c)"
fi

OLD_LIBS=$LIBS
Expand Down
25 changes: 15 additions & 10 deletions example/ndpiReader.c
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ static u_int32_t size_id_struct = 0; //< ID tracking structure size
#endif

// flow tracking
typedef struct ndpi_flow {
typedef struct ndpi_flow {
u_int32_t lower_ip;
u_int32_t upper_ip;
u_int16_t lower_port;
Expand Down Expand Up @@ -208,6 +208,7 @@ static void help(u_int long_help) {
" -d | Disable protocol guess and use only DPI\n"
" -q | Quiet mode\n"
" -t | Dissect GTP tunnels\n"
" -r | Print nDPI version and git revision\n"
" -w <path> | Write test output on the specified file. This is useful for\n"
" | testing purposes in order to compare results across runs\n"
" -h | This help\n"
Expand All @@ -232,7 +233,7 @@ static void parseOptions(int argc, char **argv) {
u_int num_cores = sysconf(_SC_NPROCESSORS_ONLN);
#endif

while ((opt = getopt(argc, argv, "df:g:i:hp:l:s:tv:V:n:j:w:q")) != EOF) {
while ((opt = getopt(argc, argv, "df:g:i:hp:l:s:tv:V:n:j:rp:w:q")) != EOF) {
switch (opt) {
case 'd':
enable_protocol_guess = 0;
Expand Down Expand Up @@ -271,6 +272,10 @@ static void parseOptions(int argc, char **argv) {
decode_tunnels = 1;
break;

case 'r':
printf("ndpiReader, nDPI (%s)\n\n", ndpi_revision());
exit(0);

case 'v':
verbose = atoi(optarg);
break;
Expand Down Expand Up @@ -304,7 +309,7 @@ static void parseOptions(int argc, char **argv) {
case 'q':
quiet_mode = 1;
break;

default:
help(0);
break;
Expand Down Expand Up @@ -637,7 +642,7 @@ static void node_idle_scan_walker(const void *node, ndpi_VISIT which, int depth,

if (flow->detected_protocol == 0 /* UNKNOWN */ && !undetected_flows_deleted)
undetected_flows_deleted = 1;

free_ndpi_flow(flow);
ndpi_thread_info[thread_id].stats.ndpi_flow_count--;

Expand Down Expand Up @@ -866,7 +871,7 @@ static struct ndpi_flow *get_ndpi_flow6(u_int16_t thread_id,

if(iph.protocol == 0x3C /* IPv6 destination option */) {
u_int8_t *options = (u_int8_t*)iph6 + sizeof(const struct ndpi_ip6_hdr);

iph.protocol = options[0];
}

Expand All @@ -884,7 +889,7 @@ static void setupDetection(u_int16_t thread_id) {
memset(&ndpi_thread_info[thread_id], 0, sizeof(ndpi_thread_info[thread_id]));

// init global detection structure
ndpi_thread_info[thread_id].ndpi_struct = ndpi_init_detection_module(detection_tick_resolution,
ndpi_thread_info[thread_id].ndpi_struct = ndpi_init_detection_module(detection_tick_resolution,
malloc_wrapper, free_wrapper, debug_printf);
if(ndpi_thread_info[thread_id].ndpi_struct == NULL) {
printf("ERROR: global structure initialization failed\n");
Expand Down Expand Up @@ -978,14 +983,14 @@ static unsigned int packet_processing(u_int16_t thread_id,
}

if((
(flow->detected_protocol == NDPI_PROTOCOL_HTTP)
(flow->detected_protocol == NDPI_PROTOCOL_HTTP)
|| (flow->detected_protocol == NDPI_SERVICE_FACEBOOK)
)
&& full_http_dissection) {
char *method;

printf("[URL] %s\n", ndpi_get_http_url(ndpi_thread_info[thread_id].ndpi_struct, ndpi_flow));
printf("[Content-Type] %s\n", ndpi_get_http_content_type(ndpi_thread_info[thread_id].ndpi_struct, ndpi_flow));
printf("[Content-Type] %s\n", ndpi_get_http_content_type(ndpi_thread_info[thread_id].ndpi_struct, ndpi_flow));

switch(ndpi_get_http_method(ndpi_thread_info[thread_id].ndpi_struct, ndpi_flow)) {
case HTTP_METHOD_OPTIONS: method = "HTTP_METHOD_OPTIONS"; break;
Expand Down Expand Up @@ -1271,7 +1276,7 @@ static void printResults(u_int64_t tot_usec) {
ndpi_get_proto_name(ndpi_thread_info[0].ndpi_struct, i),
(long long unsigned int)cumulative_stats.protocol_counter[i],
(long long unsigned int)cumulative_stats.protocol_counter_bytes[i],
cumulative_stats.protocol_flows[i]);
cumulative_stats.protocol_flows[i]);

if((!json_flag) && (!quiet_mode)) {
printf("\t%-20s packets: %-13llu bytes: %-13llu "
Expand Down Expand Up @@ -1594,7 +1599,7 @@ static void pcap_packet_callback(u_char *args, const struct pcap_pkthdr *header,

if(proto == 0x3C /* IPv6 destination option */) {
u_int8_t *options = (u_int8_t*)&packet[ip_offset+ip_len];

proto = options[0];
ip_len += 8 * (options[1] + 1);
}
Expand Down

0 comments on commit 9542227

Please sign in to comment.