Module Name:    src
Committed By:   christos
Date:           Wed Dec 28 03:02:54 UTC 2016

Modified Files:
        src/usr.sbin/npf/npfd: npfd.c npfd_log.c

Log Message:
starts running


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/usr.sbin/npf/npfd/npfd.c \
    src/usr.sbin/npf/npfd/npfd_log.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.sbin/npf/npfd/npfd.c
diff -u src/usr.sbin/npf/npfd/npfd.c:1.2 src/usr.sbin/npf/npfd/npfd.c:1.3
--- src/usr.sbin/npf/npfd/npfd.c:1.2	Tue Dec 27 20:25:48 2016
+++ src/usr.sbin/npf/npfd/npfd.c	Tue Dec 27 22:02:54 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: npfd.c,v 1.2 2016/12/28 01:25:48 christos Exp $	*/
+/*	$NetBSD: npfd.c,v 1.3 2016/12/28 03:02:54 christos Exp $	*/
 
 /*-
  * Copyright (c) 2015 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: npfd.c,v 1.2 2016/12/28 01:25:48 christos Exp $");
+__RCSID("$NetBSD: npfd.c,v 1.3 2016/12/28 03:02:54 christos Exp $");
 
 #include <stdio.h>
 #include <fcntl.h>
@@ -76,6 +76,8 @@ npfd_event_loop(void)
 	npfd_log_t *log;
 
 	log = npfd_log_create(0);
+	if (log == NULL)
+		exit(EXIT_FAILURE);
 	pfd.fd = npfd_log_getsock(log);
 	pfd.events = POLLHUP | POLLIN;
 
@@ -105,7 +107,6 @@ npfd_event_loop(void)
 }
 
 static void
-/*###114 [cc] error: 'sighandler' defined but not used [-Werror=unused-function]%%%*/
 sighandler(int sig)
 {
 	switch (sig) {
Index: src/usr.sbin/npf/npfd/npfd_log.c
diff -u src/usr.sbin/npf/npfd/npfd_log.c:1.2 src/usr.sbin/npf/npfd/npfd_log.c:1.3
--- src/usr.sbin/npf/npfd/npfd_log.c:1.2	Tue Dec 27 20:25:48 2016
+++ src/usr.sbin/npf/npfd/npfd_log.c	Tue Dec 27 22:02:54 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: npfd_log.c,v 1.2 2016/12/28 01:25:48 christos Exp $	*/
+/*	$NetBSD: npfd_log.c,v 1.3 2016/12/28 03:02:54 christos Exp $	*/
 
 /*-
  * Copyright (c) 2015 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: npfd_log.c,v 1.2 2016/12/28 01:25:48 christos Exp $");
+__RCSID("$NetBSD: npfd_log.c,v 1.3 2016/12/28 03:02:54 christos Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -40,6 +40,7 @@ __RCSID("$NetBSD: npfd_log.c,v 1.2 2016/
 #include <inttypes.h>
 #include <limits.h>
 #include <stdlib.h>
+#include <unistd.h>
 #include <syslog.h>
 #include <stdbool.h>
 
@@ -80,6 +81,11 @@ npfd_log_create(unsigned if_idx)
 
 	pcap_set_snaplen(ctx->pcap, 10240);
 
+	if (pcap_activate(ctx->pcap) == -1) {
+		syslog(LOG_ERR, "pcap_activate failed: %s",
+		    pcap_geterr(ctx->pcap));
+		goto err;
+	}
 	snprintf(ctx->path, sizeof(ctx->path), "%s/%s%s",
 	    NPFD_LOG_PATH, ctx->ifname, ".pcap");
 
@@ -100,9 +106,12 @@ npfd_log_reopen(npfd_log_t *ctx)
 	/*
 	 * Open a log file to write for a given interface and dump there.
 	 */
-	ctx->dumper = pcap_dump_open_append(ctx->pcap, ctx->path);
+	if (access(ctx->path, F_OK) == 0)
+		ctx->dumper = pcap_dump_open_append(ctx->pcap, ctx->path);
+	else
+		ctx->dumper = pcap_dump_open(ctx->pcap, ctx->path);
 	if (ctx->dumper == NULL) {
-		syslog(LOG_ERR, "pcap_dump_open_append failed for `%s': %s",
+		syslog(LOG_ERR, "pcap_dump_open failed for `%s': %s",
 		    ctx->path, pcap_geterr(ctx->pcap));
 		return false;
 	}

Reply via email to