53 lines
846 B
C
53 lines
846 B
C
|
#include <sys/socket.h>
|
||
|
#include <netinet/in.h>
|
||
|
#include <arpa/inet.h>
|
||
|
|
||
|
#include "conntrack.h"
|
||
|
#include "database.h"
|
||
|
#include "hashtable.h"
|
||
|
#include "logging.h"
|
||
|
|
||
|
static void purge_hash_cb(struct hash_entry *entry, void *privdata)
|
||
|
{
|
||
|
struct in_addr src_ip = { .s_addr = entry->src_ip };
|
||
|
char *proto;
|
||
|
|
||
|
switch (entry->protonum) {
|
||
|
case IPPROTO_TCP:
|
||
|
proto = "tcp ";
|
||
|
break;
|
||
|
|
||
|
case IPPROTO_UDP:
|
||
|
proto = "udp ";
|
||
|
break;
|
||
|
|
||
|
case IPPROTO_ICMP:
|
||
|
proto = "icmp";
|
||
|
break;
|
||
|
|
||
|
default:
|
||
|
proto = "unkn";
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
log_print(LOG_DEBUG, "%4s %15s:%5d -> %8llu / %8llu (%u)",
|
||
|
proto, inet_ntoa(src_ip), ntohs(entry->dst_port),
|
||
|
entry->src_bytes, entry->dst_bytes, entry->count);
|
||
|
}
|
||
|
|
||
|
int database_analyse(void)
|
||
|
{
|
||
|
conntrack_dump_hash(purge_hash_cb, NULL);
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
int database_init(void)
|
||
|
{
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
int database_close(void)
|
||
|
{
|
||
|
return 0;
|
||
|
}
|