#include "../include/traffic.h"
/* Compare IP */
int cmp_ip(const void *s1, const void *s2)
{
struct host *h1, *h2;
h1 = (struct host *)s1;
h2 = (struct host *)s2;
if (!opt.rsort)
return (ntohl(h1->ip.s_addr) < ntohl(h2->ip.s_addr))?-1:1;
else
return (ntohl(h1->ip.s_addr) > ntohl(h2->ip.s_addr))?-1:1;
}
/* Compare data current */
int cmp_data_cur(const void *s1, const void *s2)
{
struct host *h1, *h2;
h1 = (struct host *)s1;
h2 = (struct host *)s2;
if (!opt.rsort)
return ((h1->last_in + h1->last_out) > (h2->last_in + h2->last_out))?-1:1;
else
return ((h1->last_in + h1->last_out) < (h2->last_in + h2->last_out))?-1:1;
}
/* Comapare data total and average */
int cmp_data_tot(const void *s1, const void *s2)
{
struct host *h1, *h2;
h1 = (struct host *)s1;
h2 = (struct host *)s2;
if (!opt.rsort)
return ((h1->tot_in + h1->tot_out) > (h2->tot_in + h2->tot_out))?-1:1;
else
return ((h1->tot_in + h1->tot_out) < (h2->tot_in + h2->tot_out))?-1:1;
}
/* Compare data max */
int cmp_data_max(const void *s1, const void *s2)
{
struct host *h1, *h2;
h1 = (struct host *)s1;
h2 = (struct host *)s2;
if (!opt.rsort)
return ((h1->max_in + h1->max_out) > (h2->max_in + h2->max_out))?-1:1;
else
return ((h1->max_in + h1->max_out) < (h2->max_in + h2->max_out))?-1:1;
}
/* Compare packets current */
int cmp_pkt_cur(const void *s1, const void *s2)
{
struct host *h1, *h2;
h1 = (struct host *)s1;
h2 = (struct host *)s2;
if (!opt.rsort)
return ((h1->last_pkt_in + h1->last_pkt_out) > (h2->last_pkt_in + h2->last_pkt_out))?-1:1;
else
return ((h1->last_pkt_in + h1->last_pkt_out) < (h2->last_pkt_in + h2->last_pkt_out))?-1:1;
}
/* Compare packets total and average */
int cmp_pkt_tot(const void *s1, const void *s2)
{
struct host *h1, *h2;
h1 = (struct host *)s1;
h2 = (struct host *)s2;
if (!opt.rsort)
return ((h1->tot_pkt_in + h1->tot_pkt_out) > (h2->tot_pkt_in + h2->tot_pkt_out))?-1:1;
else
return ((h1->tot_pkt_in + h1->tot_pkt_out) < (h2->tot_pkt_in + h2->tot_pkt_out))?-1:1;
}
/* Compare packets max */
int cmp_pkt_max(const void *s1, const void *s2)
{
struct host *h1, *h2;
h1 = (struct host *)s1;
h2 = (struct host *)s2;
if (!opt.rsort)
return ((h1->max_pkt_in + h1->max_pkt_out) > (h2->max_pkt_in + h2->max_pkt_out))?-1:1;
else
return ((h1->max_pkt_in + h1->max_pkt_out) < (h2->max_pkt_in + h2->max_pkt_out))?-1:1;
}
/* Compare MAC */
int cmp_mac(const void *s1, const void *s2)
{
struct host *h1, *h2;
int i;
h1 = (struct host *)s1;
h2 = (struct host *)s2;
for(i=0; i<17; i++)
if (h1->mac[i] < h2->mac[i])
if (!opt.rsort)
return 1;
else
return -1;
return 1;
}
/* Compare hostname */
int cmp_hostname(const void *s1, const void *s2)
{
struct host *h1, *h2;
int i;
h1 = (struct host *)s1;
h2 = (struct host *)s2;
for(i=0; i<24; i++)
if (h1->hostname[i] < h2->hostname[i])
if (!opt.rsort)
return 1;
else
return -1;
return 1;
}
/* Compare TCP current */
int cmp_tcp(const void *s1, const void *s2)
{
struct host *h1, *h2;
h1 = (struct host *)s1;
h2 = (struct host *)s2;
if (!opt.rsort)
return ((h1->last_tcp_in + h1->last_tcp_out) > (h2->last_tcp_in + h2->last_tcp_out))?-1:1;
else
return ((h1->last_tcp_in + h1->last_tcp_out) < (h2->last_tcp_in + h2->last_tcp_out))?-1:1;
}
/* Compare UDP current */
int cmp_udp(const void *s1, const void *s2)
{
struct host *h1, *h2;
h1 = (struct host *)s1;
h2 = (struct host *)s2;
if (!opt.rsort)
return ((h1->last_udp_in + h1->last_udp_out) > (h2->last_udp_in + h2->last_udp_out))?-1:1;
else
return ((h1->last_udp_in + h1->last_udp_out) < (h2->last_udp_in + h2->last_udp_out))?-1:1;
}
/* Compare ICMP current */
int cmp_icmp(const void *s1, const void *s2)
{
struct host *h1, *h2;
h1 = (struct host *)s1;
h2 = (struct host *)s2;
if (!opt.rsort)
return ((h1->last_icmp_in + h1->last_icmp_out) > (h2->last_icmp_in + h2->last_icmp_out))?-1:1;
else
return ((h1->last_icmp_in + h1->last_icmp_out) < (h2->last_icmp_in + h2->last_icmp_out))?-1:1;
}
/* Comapare TCP total */
int cmp_tcp_tot(const void *s1, const void *s2)
{
struct host *h1, *h2;
h1 = (struct host *)s1;
h2 = (struct host *)s2;
if (!opt.rsort)
return ((h1->tot_tcp_in + h1->tot_tcp_out) > (h2->tot_tcp_in + h2->tot_tcp_out))?-1:1;
else
return ((h1->tot_tcp_in + h1->tot_tcp_out) < (h2->tot_tcp_in + h2->tot_tcp_out))?-1:1;
}
/* Comapare UDP total */
int cmp_udp_tot(const void *s1, const void *s2)
{
struct host *h1, *h2;
h1 = (struct host *)s1;
h2 = (struct host *)s2;
if (!opt.rsort)
return ((h1->tot_udp_in + h1->tot_udp_out) > (h2->tot_udp_in + h2->tot_udp_out))?-1:1;
else
return ((h1->tot_udp_in + h1->tot_udp_out) < (h2->tot_udp_in + h2->tot_udp_out))?-1:1;
}
/* Comapare ICMP total */
int cmp_icmp_tot(const void *s1, const void *s2)
{
struct host *h1, *h2;
h1 = (struct host *)s1;
h2 = (struct host *)s2;
if (!opt.rsort)
return ((h1->tot_icmp_in + h1->tot_icmp_out) > (h2->tot_icmp_in + h2->tot_icmp_out))?-1:1;
else
return ((h1->tot_icmp_in + h1->tot_icmp_out) < (h2->tot_icmp_in + h2->tot_icmp_out))?-1:1;
}
syntax highlighted by Code2HTML, v. 0.9.1