Module Name:    src
Committed By:   rmind
Date:           Sun Aug 24 20:36:30 UTC 2014

Modified Files:
        src/sys/net/npf: npf_conn.c npf_ctl.c npf_nat.c

Log Message:
- npf_conn_import: add a missing stat counter increment.
- npf_nat_import: add a missing reference and make a comment.


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/sys/net/npf/npf_conn.c
cvs rdiff -u -r1.39 -r1.40 src/sys/net/npf/npf_ctl.c
cvs rdiff -u -r1.33 -r1.34 src/sys/net/npf/npf_nat.c

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

Modified files:

Index: src/sys/net/npf/npf_conn.c
diff -u src/sys/net/npf/npf_conn.c:1.11 src/sys/net/npf/npf_conn.c:1.12
--- src/sys/net/npf/npf_conn.c:1.11	Mon Aug 11 23:48:01 2014
+++ src/sys/net/npf/npf_conn.c	Sun Aug 24 20:36:30 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: npf_conn.c,v 1.11 2014/08/11 23:48:01 rmind Exp $	*/
+/*	$NetBSD: npf_conn.c,v 1.12 2014/08/24 20:36:30 rmind Exp $	*/
 
 /*-
  * Copyright (c) 2014 Mindaugas Rasiukevicius <rmind at netbsd org>
@@ -99,7 +99,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: npf_conn.c,v 1.11 2014/08/11 23:48:01 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: npf_conn.c,v 1.12 2014/08/24 20:36:30 rmind Exp $");
 
 #include <sys/param.h>
 #include <sys/types.h>
@@ -899,6 +899,7 @@ npf_conn_import(npf_conndb_t *cd, prop_d
 	con = pool_cache_get(conn_cache, PR_WAITOK);
 	memset(con, 0, sizeof(npf_conn_t));
 	mutex_init(&con->c_lock, MUTEX_DEFAULT, IPL_SOFTNET);
+	npf_stats_inc(NPF_STAT_CONN_CREATE);
 
 	prop_dictionary_get_uint32(cdict, "proto", &con->c_proto);
 	prop_dictionary_get_uint32(cdict, "flags", &con->c_flags);
@@ -952,6 +953,8 @@ npf_conn_import(npf_conndb_t *cd, prop_d
 		npf_conndb_remove(cd, fw);
 		goto err;
 	}
+
+	NPF_PRINTF(("NPF: imported conn %p\n", con));
 	npf_conndb_enqueue(cd, con);
 	return 0;
 err:

Index: src/sys/net/npf/npf_ctl.c
diff -u src/sys/net/npf/npf_ctl.c:1.39 src/sys/net/npf/npf_ctl.c:1.40
--- src/sys/net/npf/npf_ctl.c:1.39	Mon Aug 11 23:48:01 2014
+++ src/sys/net/npf/npf_ctl.c	Sun Aug 24 20:36:30 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: npf_ctl.c,v 1.39 2014/08/11 23:48:01 rmind Exp $	*/
+/*	$NetBSD: npf_ctl.c,v 1.40 2014/08/24 20:36:30 rmind Exp $	*/
 
 /*-
  * Copyright (c) 2009-2014 The NetBSD Foundation, Inc.
@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: npf_ctl.c,v 1.39 2014/08/11 23:48:01 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: npf_ctl.c,v 1.40 2014/08/24 20:36:30 rmind Exp $");
 
 #include <sys/param.h>
 #include <sys/conf.h>
@@ -459,7 +459,7 @@ npf_mk_connlist(prop_array_t conlist, np
 	prop_dictionary_t condict;
 	prop_object_iterator_t it;
 	npf_conndb_t *cd;
-	int error;
+	int error = 0;
 
 	/* Connection list - array */
 	if (prop_object_type(conlist) != PROP_TYPE_ARRAY) {
@@ -469,8 +469,6 @@ npf_mk_connlist(prop_array_t conlist, np
 
 	/* Create a connection database. */
 	cd = npf_conndb_create();
-
-	error = 0;
 	it = prop_array_iterator(conlist);
 	while ((condict = prop_object_iterator_next(it)) != NULL) {
 		/* Connection - dictionary. */
@@ -479,7 +477,7 @@ npf_mk_connlist(prop_array_t conlist, np
 			error = EINVAL;
 			break;
 		}
-		/* Construct and insert real connection structure. */
+		/* Construct and insert the connection. */
 		error = npf_conn_import(cd, condict, natlist);
 		if (error) {
 			NPF_ERR_DEBUG(errdict);

Index: src/sys/net/npf/npf_nat.c
diff -u src/sys/net/npf/npf_nat.c:1.33 src/sys/net/npf/npf_nat.c:1.34
--- src/sys/net/npf/npf_nat.c:1.33	Mon Aug 11 23:48:01 2014
+++ src/sys/net/npf/npf_nat.c	Sun Aug 24 20:36:30 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: npf_nat.c,v 1.33 2014/08/11 23:48:01 rmind Exp $	*/
+/*	$NetBSD: npf_nat.c,v 1.34 2014/08/24 20:36:30 rmind Exp $	*/
 
 /*-
  * Copyright (c) 2014 Mindaugas Rasiukevicius <rmind at netbsd org>
@@ -71,7 +71,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: npf_nat.c,v 1.33 2014/08/11 23:48:01 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: npf_nat.c,v 1.34 2014/08/24 20:36:30 rmind Exp $");
 
 #include <sys/param.h>
 #include <sys/types.h>
@@ -812,6 +812,7 @@ npf_nat_destroy(npf_nat_t *nt)
 
 	mutex_enter(&np->n_lock);
 	LIST_REMOVE(nt, nt_entry);
+	KASSERT(np->n_refcnt > 0);
 	atomic_dec_uint(&np->n_refcnt);
 	mutex_exit(&np->n_lock);
 
@@ -873,9 +874,14 @@ npf_nat_import(prop_dictionary_t natdict
 		return NULL;
 	}
 
-	LIST_INSERT_HEAD(&np->n_nat_list, nt, nt_entry);
+	/*
+	 * Associate, take a reference and insert.  Unlocked since
+	 * the policy is not yet visible.
+	 */
 	nt->nt_natpolicy = np;
 	nt->nt_conn = con;
+	np->n_refcnt++;
+	LIST_INSERT_HEAD(&np->n_nat_list, nt, nt_entry);
 	return nt;
 }
 

Reply via email to