Module Name:    src
Committed By:   yamt
Date:           Thu Jun 21 10:31:45 UTC 2012

Modified Files:
        src/sys/netinet: in_pcb.c

Log Message:
constify, comments.
no functional changes.


To generate a diff of this commit:
cvs rdiff -u -r1.141 -r1.142 src/sys/netinet/in_pcb.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/netinet/in_pcb.c
diff -u src/sys/netinet/in_pcb.c:1.141 src/sys/netinet/in_pcb.c:1.142
--- src/sys/netinet/in_pcb.c:1.141	Thu Mar 22 20:34:38 2012
+++ src/sys/netinet/in_pcb.c	Thu Jun 21 10:31:45 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: in_pcb.c,v 1.141 2012/03/22 20:34:38 drochner Exp $	*/
+/*	$NetBSD: in_pcb.c,v 1.142 2012/06/21 10:31:45 yamt Exp $	*/
 
 /*
  * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -93,7 +93,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: in_pcb.c,v 1.141 2012/03/22 20:34:38 drochner Exp $");
+__KERNEL_RCSID(0, "$NetBSD: in_pcb.c,v 1.142 2012/06/21 10:31:45 yamt Exp $");
 
 #include "opt_inet.h"
 #include "opt_ipsec.h"
@@ -806,8 +806,9 @@ in_pcblookup_port(struct inpcbtable *tab
 {
 	struct inpcbhead *head;
 	struct inpcb_hdr *inph;
-	struct inpcb *inp, *match = 0;
-	int matchwild = 3, wildcard;
+	struct inpcb *match = NULL;
+	int matchwild = 3;
+	int wildcard;
 	u_int16_t lport = lport_arg;
 
 	if (vp)
@@ -815,12 +816,23 @@ in_pcblookup_port(struct inpcbtable *tab
 
 	head = INPCBHASH_PORT(table, lport);
 	LIST_FOREACH(inph, head, inph_lhash) {
-		inp = (struct inpcb *)inph;
+		struct inpcb * const inp = (struct inpcb *)inph;
+
 		if (inp->inp_af != AF_INET)
 			continue;
-
 		if (inp->inp_lport != lport)
 			continue;
+		/*
+		 * check if inp's faddr and laddr match with ours.
+		 * our faddr is considered null.
+		 * count the number of wildcard matches. (0 - 2)
+		 *
+		 *	null	null	match
+		 *	A	null	wildcard match
+		 *	null	B	wildcard match
+		 *	A	B	non match
+		 *	A	A	match
+		 */
 		wildcard = 0;
 		if (!in_nullhost(inp->inp_faddr))
 			wildcard++;
@@ -837,6 +849,9 @@ in_pcblookup_port(struct inpcbtable *tab
 		}
 		if (wildcard && !lookup_wildcard)
 			continue;
+		/*
+		 * prefer an address with less wildcards.
+		 */
 		if (wildcard < matchwild) {
 			match = inp;
 			matchwild = wildcard;

Reply via email to