Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 4 Jun 2012 18:02:09 +0000 (UTC)
From:      Xin LI <delphij@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r236572 - head/usr.sbin/inetd
Message-ID:  <201206041802.q54I29nZ056889@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: delphij
Date: Mon Jun  4 18:02:09 2012
New Revision: 236572
URL: http://svn.freebsd.org/changeset/base/236572

Log:
  Replace the use of wall clock time with monotonically increasing
  clock.  In general, gettimeofday() is not appropriate interface
  when accounting for elasped time because it can go backward, in
  which case the policy code could errornously consider the limit
  as exceeded.
  
  MFC after:	1 week
  Reported by:	Mahesh Arumugam
  Submitted by:	Dorr H. Clark via gnn
  Sponsored by:	Citrix / NetScaler

Modified:
  head/usr.sbin/inetd/inetd.c
  head/usr.sbin/inetd/inetd.h

Modified: head/usr.sbin/inetd/inetd.c
==============================================================================
--- head/usr.sbin/inetd/inetd.c	Mon Jun  4 17:22:43 2012	(r236571)
+++ head/usr.sbin/inetd/inetd.c	Mon Jun  4 18:02:09 2012	(r236572)
@@ -688,11 +688,11 @@ main(int argc, char **argv)
 		     */
 		    if (dofork) {
 			    if (sep->se_count++ == 0)
-				(void)gettimeofday(&sep->se_time, (struct timezone *)NULL);
+				(void)clock_gettime(CLOCK_MONOTONIC_FAST, &sep->se_time);
 			    else if (toomany > 0 && sep->se_count >= toomany) {
-				struct timeval now;
+				struct timespec now;
 
-				(void)gettimeofday(&now, (struct timezone *)NULL);
+				(void)clock_gettime(CLOCK_MONOTONIC_FAST, &now);
 				if (now.tv_sec - sep->se_time.tv_sec >
 				    CNT_INTVL) {
 					sep->se_time = now;

Modified: head/usr.sbin/inetd/inetd.h
==============================================================================
--- head/usr.sbin/inetd/inetd.h	Mon Jun  4 17:22:43 2012	(r236571)
+++ head/usr.sbin/inetd/inetd.h	Mon Jun  4 18:02:09 2012	(r236572)
@@ -109,7 +109,7 @@ struct	servtab {
 	u_int	se_rpc_lowvers;		/* RPC low version */
 	u_int	se_rpc_highvers;	/* RPC high version */
 	int	se_count;		/* number started since se_time */
-	struct	timeval se_time;	/* start of se_count */
+	struct	timespec se_time;	/* start of se_count */
 	struct	servtab *se_next;
 	struct se_flags {
 		u_int se_nomapped : 1;



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