aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYunchih Chen <yunchih.cat@gmail.com>2018-12-07 22:02:40 +0800
committerYunchih Chen <yunchih.cat@gmail.com>2019-03-07 15:02:17 +0800
commit644b830057bcc29d960a89198d3709902a51b8fe (patch)
treef3c4ffa3bc9f8b3a2f53a34e2146da5588e34066
parent5d07a9163a50c3bfd7365bafbab58c40bb6d9a59 (diff)
downloadnfcollect-644b830057bcc29d960a89198d3709902a51b8fe.tar
nfcollect-644b830057bcc29d960a89198d3709902a51b8fe.tar.gz
nfcollect-644b830057bcc29d960a89198d3709902a51b8fe.tar.bz2
nfcollect-644b830057bcc29d960a89198d3709902a51b8fe.tar.lz
nfcollect-644b830057bcc29d960a89198d3709902a51b8fe.tar.xz
nfcollect-644b830057bcc29d960a89198d3709902a51b8fe.tar.zst
nfcollect-644b830057bcc29d960a89198d3709902a51b8fe.zip
Minor fix
-rw-r--r--bin/nfcollect.c10
-rw-r--r--bin/nfextract.c40
-rw-r--r--include/main.h3
-rw-r--r--lib/sql.c2
4 files changed, 25 insertions, 30 deletions
diff --git a/bin/nfcollect.c b/bin/nfcollect.c
index 35d1c34..16a4248 100644
--- a/bin/nfcollect.c
+++ b/bin/nfcollect.c
@@ -43,11 +43,11 @@ const char *help_text =
"Options:\n"
" -c --compression=<algo> compression algorithm to use (default: no "
"compression)\n"
- " -d --storage_file=<filename> sqlite database storage file\n"
- " -h --help print this help\n"
- " -g --nflog-group=<id> the group id to collect\n"
- " -s --storage_size=<dirsize> log files maximum total size in MiB\n"
- " -v --version print version information\n"
+ " -d --storage_file=<filename> sqlite database storage file\n"
+ " -h --help print this help\n"
+ " -g --nflog-group=<id> the group id to collect\n"
+ " -s --storage_size=<max DB size> maximum DB size in MiB\n"
+ " -v --version print version information\n"
"\n";
static Netlink netlink_fd;
diff --git a/bin/nfextract.c b/bin/nfextract.c
index 1b14125..0ca112e 100644
--- a/bin/nfextract.c
+++ b/bin/nfextract.c
@@ -22,7 +22,7 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
-#define _XOPEN_SOURCE 700 // strptime
+#define _XOPEN_SOURCE 700 // strptime
#ifndef _POSIX_C_SOURCE
#define _POSIX_C_SOURCE 200809 // strdup
#endif
@@ -50,9 +50,7 @@
#define DATE_FORMAT "%Y-%m-%d"
#define DATE_FORMAT_FULL DATE_FORMAT " %H:%M"
#define DATE_FORMAT_FULL2 DATE_FORMAT " %H:%M:%S"
-
-sem_t nfl_commit_queue;
-uint16_t nfl_group_id;
+#define DATE_FORMAT_OUTPUT DATE_FORMAT_FULL2
const char *help_text =
"Usage: " PROG " [OPTION]\n"
@@ -72,20 +70,6 @@ void sig_handler(int signo) {
puts("Terminated due to SIGHUP ...");
}
-static inline void format_entry(char *output, Entry *e) {
- sprintf(output,
- " "
- "t=%ld\t"
- "daddr=%s\t"
- "proto=%s\t"
- "uid=%d\t"
- "sport=%d\t"
- "dport=%d",
- e->timestamp, inet_ntoa(e->daddr),
- e->protocol == IPPROTO_TCP ? "TCP" : "UDP", e->uid, e->sport,
- e->dport);
-}
-
static void callback(const State *s, const Timerange *range) {
int nr_entries = s->header->nr_entries;
@@ -95,10 +79,24 @@ static void callback(const State *s, const Timerange *range) {
while (i < nr_entries && s->store[i].timestamp < range->from)
i++;
- char output[1024];
+ time_t last_t = 0;
+ char timestamp[20];
while (i < nr_entries && s->store[i].timestamp < range->until) {
- format_entry(output, &s->store[i]);
- puts((char *)output);
+ if (last_t != s->store[i].timestamp || !last_t) {
+ last_t = s->store[i].timestamp;
+ strftime(timestamp, 20, DATE_FORMAT_OUTPUT, localtime(&last_t));
+ }
+
+ printf(" "
+ "%-18s:\t"
+ "daddr=%-16s\t"
+ "proto=%s\t"
+ "uid=%d\t"
+ "sport=%d\t"
+ "dport=%d\n",
+ timestamp, inet_ntoa(s->store[i].daddr),
+ s->store[i].protocol == IPPROTO_TCP ? "TCP" : "UDP",
+ s->store[i].uid, s->store[i].sport, s->store[i].dport);
++i;
}
}
diff --git a/include/main.h b/include/main.h
index 4a860d4..8d5b628 100644
--- a/include/main.h
+++ b/include/main.h
@@ -44,8 +44,7 @@
#define g_sqlite_nr_fail_retry 8
#define g_gc_rate 16
// Default number of packets stored in a block
-//#define g_max_nr_entries_default (256*1024)
-#define g_max_nr_entries_default (1 * 128)
+#define g_max_nr_entries_default (256*1024/24)
#ifdef DEBUG_OUTPUT
#define DEBUG_ON 1
#else
diff --git a/lib/sql.c b/lib/sql.c
index 8ac4dbd..d383790 100644
--- a/lib/sql.c
+++ b/lib/sql.c
@@ -111,8 +111,6 @@ int db_insert(sqlite3 *db, const Header *header, const Entry *entries) {
for (int i = 0; i < 2;) {
rc = db_prepare(db, insert_sql[i], "Can't insert data", &stmt[i]);
if (i == 0) {
- printf("Inserting raw data: %02X:%02X", ((char *)entries)[0],
- ((char *)entries)[1]);
sqlite3_bind_blob(stmt[i], 1, entries, header->raw_size,
SQLITE_STATIC);
} else {