svn commit: r338527 - head/sys/netinet

Mark Johnston markj at FreeBSD.org
Fri Sep 7 21:11:42 UTC 2018


Author: markj
Date: Fri Sep  7 21:11:41 2018
New Revision: 338527
URL: https://svnweb.freebsd.org/changeset/base/338527

Log:
  Use ratecheck(9) in in_pcbinslbgrouphash().
  
  Reviewed by:	bz, Johannes Lundberg <johalun0 at gmail.com>
  Approved by:	re (kib)
  Sponsored by:	The FreeBSD Foundation
  Differential revision:	https://reviews.freebsd.org/D17065

Modified:
  head/sys/netinet/in_pcb.c

Modified: head/sys/netinet/in_pcb.c
==============================================================================
--- head/sys/netinet/in_pcb.c	Fri Sep  7 18:05:09 2018	(r338526)
+++ head/sys/netinet/in_pcb.c	Fri Sep  7 21:11:41 2018	(r338527)
@@ -301,13 +301,14 @@ in_pcblbgroup_reorder(struct inpcblbgrouphead *hdr, st
 static int
 in_pcbinslbgrouphash(struct inpcb *inp)
 {
+	const static struct timeval interval = { 60, 0 };
+	static struct timeval lastprint;
 	struct inpcbinfo *pcbinfo;
 	struct inpcblbgrouphead *hdr;
 	struct inpcblbgroup *grp;
 	uint16_t hashmask, lport;
 	uint32_t group_index;
 	struct ucred *cred;
-	static int limit_logged = 0;
 
 	pcbinfo = inp->inp_pcbinfo;
 
@@ -364,11 +365,9 @@ in_pcbinslbgrouphash(struct inpcb *inp)
 			return (ENOBUFS);
 	} else if (grp->il_inpcnt == grp->il_inpsiz) {
 		if (grp->il_inpsiz >= INPCBLBGROUP_SIZMAX) {
-			if (!limit_logged) {
-				limit_logged = 1;
+			if (ratecheck(&lastprint, &interval))
 				printf("lb group port %d, limit reached\n",
 				    ntohs(grp->il_lport));
-			}
 			return (0);
 		}
 


More information about the svn-src-all mailing list