Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Feb 2012 19:03:22 +0000 (UTC)
From:      Gleb Smirnoff <glebius@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r232062 - in projects/pf/head/sys: contrib/pf/net sys
Message-ID:  <201202231903.q1NJ3MZC018846@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: glebius
Date: Thu Feb 23 19:03:22 2012
New Revision: 232062
URL: http://svn.freebsd.org/changeset/base/232062

Log:
  Use correct API for timeval subtraction.
  
  Noticed by:	bde

Modified:
  projects/pf/head/sys/contrib/pf/net/pf_norm.c
  projects/pf/head/sys/sys/time.h

Modified: projects/pf/head/sys/contrib/pf/net/pf_norm.c
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/pf_norm.c	Thu Feb 23 18:59:32 2012	(r232061)
+++ projects/pf/head/sys/contrib/pf/net/pf_norm.c	Thu Feb 23 19:03:22 2012	(r232062)
@@ -1670,7 +1670,6 @@ pf_normalize_tcp_stateful(struct mbuf *m
 		 * connection limit until we can come up with a better
 		 * lowerbound to the TS echo check.
 		 */
-		struct timeval delta_ts;
 		int ts_fudge;
 
 
@@ -1686,9 +1685,9 @@ pf_normalize_tcp_stateful(struct mbuf *m
 		/* Calculate max ticks since the last timestamp */
 #define TS_MAXFREQ	1100		/* RFC max TS freq of 1Khz + 10% skew */
 #define TS_MICROSECS	1000000		/* microseconds per second */
-		timersub(&uptime, &src->scrub->pfss_last, &delta_ts);
-		tsval_from_last = (delta_ts.tv_sec + ts_fudge) * TS_MAXFREQ;
-		tsval_from_last += delta_ts.tv_usec / (TS_MICROSECS/TS_MAXFREQ);
+		timevalsub(&uptime, &src->scrub->pfss_last);
+		tsval_from_last = (uptime.tv_sec + ts_fudge) * TS_MAXFREQ;
+		tsval_from_last += uptime.tv_usec / (TS_MICROSECS/TS_MAXFREQ);
 
 		if ((src->state >= TCPS_ESTABLISHED &&
 		    dst->state >= TCPS_ESTABLISHED) &&
@@ -1712,8 +1711,8 @@ pf_normalize_tcp_stateful(struct mbuf *m
 			DPFPRINTF((" tsval: %u  tsecr: %u  +ticks: %u  "
 			    "idle: %jus %lums\n",
 			    tsval, tsecr, tsval_from_last,
-			    (uintmax_t)delta_ts.tv_sec,
-			    delta_ts.tv_usec / 1000));
+			    (uintmax_t)uptime.tv_sec,
+			    uptime.tv_usec / 1000));
 			DPFPRINTF((" src->tsval: %u  tsecr: %u\n",
 			    src->scrub->pfss_tsval, src->scrub->pfss_tsecr));
 			DPFPRINTF((" dst->tsval: %u  tsecr: %u  tsval0: %u"

Modified: projects/pf/head/sys/sys/time.h
==============================================================================
--- projects/pf/head/sys/sys/time.h	Thu Feb 23 18:59:32 2012	(r232061)
+++ projects/pf/head/sys/sys/time.h	Thu Feb 23 19:03:22 2012	(r232062)
@@ -199,7 +199,8 @@ timeval2bintime(const struct timeval *tv
 
 #endif /* _KERNEL */
 
-/* NetBSD/OpenBSD compatible interfaces. */
+#ifndef _KERNEL			/* NetBSD/OpenBSD compatible interfaces */
+
 #define	timerclear(tvp)		((tvp)->tv_sec = (tvp)->tv_usec = 0)
 #define	timerisset(tvp)		((tvp)->tv_sec || (tvp)->tv_usec)
 #define	timercmp(tvp, uvp, cmp)					\
@@ -224,6 +225,7 @@ timeval2bintime(const struct timeval *tv
 			(vvp)->tv_usec += 1000000;			\
 		}							\
 	} while (0)
+#endif
 
 /*
  * Names of the interval timers, and structure



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201202231903.q1NJ3MZC018846>