Adjust date in ChangeLog.
[darkstat] / hosts_db.h
index 69d6544..6abb777 100644 (file)
@@ -1,5 +1,5 @@
 /* darkstat 3
- * copyright (c) 2001-2008 Emil Mikulic.
+ * copyright (c) 2001-2014 Emil Mikulic.
  *
  * hosts_db.h: database of hosts, ports, protocols.
  *
@@ -9,7 +9,7 @@
 #ifndef __DARKSTAT_HOSTS_DB_H
 #define __DARKSTAT_HOSTS_DB_H
 
-#include <sys/types.h> /* for time_t and uint64_t (esp on FreeBSD) */
+#include <sys/types.h> /* for uint64_t */
 
 #include "addr.h"
 
@@ -19,8 +19,15 @@ struct host {
    struct addr addr;
    char *dns;
    uint8_t mac_addr[6];
-   time_t last_seen;
-   struct hashtable *ports_tcp, *ports_udp, *ip_protos;
+   /* last_seen_mono is converted to/from time_t in export/import.
+    * It can be negative (due to machine reboots).
+    */
+   int64_t last_seen_mono;
+   struct hashtable *ports_tcp;
+   struct hashtable *ports_tcp_remote;
+   struct hashtable *ports_udp;
+   struct hashtable *ports_udp_remote;
+   struct hashtable *ip_protos;
 };
 
 struct port_tcp {
@@ -49,13 +56,7 @@ struct bucket {
 
 enum sort_dir { IN, OUT, TOTAL, LASTSEEN };
 
-extern int show_mac_addrs;
-
-/*
- * Table reduction - when the number of entries is about to exceed <max>, we
- * reduce the table to the top <keep> entries.
- */
-extern unsigned int hosts_max, hosts_keep, ports_max, ports_keep;
+extern int hosts_db_show_macs;
 
 void hosts_db_init(void);
 void hosts_db_reduce(void);
@@ -67,7 +68,11 @@ int hosts_db_export(const int fd);
 struct bucket *host_find(const struct addr *const a); /* can return NULL */
 struct bucket *host_get(const struct addr *const a);
 struct bucket *host_get_port_tcp(struct bucket *host, const uint16_t port);
+struct bucket *host_get_port_tcp_remote(struct bucket *host,
+                                        const uint16_t port);
 struct bucket *host_get_port_udp(struct bucket *host, const uint16_t port);
+struct bucket *host_get_port_udp_remote(struct bucket *host,
+                                        const uint16_t port);
 struct bucket *host_get_ip_proto(struct bucket *host, const uint8_t proto);
 
 /* Web pages. */