Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Sep 2011 23:22:58 +0000 (UTC)
From:      "David E. O'Brien" <obrien@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r225703 - in projects/jbuild/usr.bin/jbuild/filemon: . test
Message-ID:  <201109202322.p8KNMwiK049157@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: obrien
Date: Tue Sep 20 23:22:58 2011
New Revision: 225703
URL: http://svn.freebsd.org/changeset/base/225703

Log:
  Things opened R/W should also produce an R record instead of treating an
  open for O_RDWR the same as O_WRONLY.

Modified:
  projects/jbuild/usr.bin/jbuild/filemon/filemon.h
  projects/jbuild/usr.bin/jbuild/filemon/filemon_wrapper.c
  projects/jbuild/usr.bin/jbuild/filemon/test/test_script.sh

Modified: projects/jbuild/usr.bin/jbuild/filemon/filemon.h
==============================================================================
--- projects/jbuild/usr.bin/jbuild/filemon/filemon.h	Tue Sep 20 21:54:43 2011	(r225702)
+++ projects/jbuild/usr.bin/jbuild/filemon/filemon.h	Tue Sep 20 23:22:58 2011	(r225703)
@@ -1,4 +1,5 @@
 /*-
+ * Copyright (c) 2011, David E. O'Brien.
  * Copyright (c) 2009-2011, Juniper Networks, Inc.
  * All rights reserved.
  *
@@ -29,4 +30,5 @@
 #define FILEMON_SET_FD		_IOWR('S', 1, int)
 #define FILEMON_SET_PID		_IOWR('S', 2, pid_t)
 
-#define FILEMON_VERSION		3	/* output format */
+#define FILEMON_VERSION		4	/* output format
+					   (bump when adding record types) */

Modified: projects/jbuild/usr.bin/jbuild/filemon/filemon_wrapper.c
==============================================================================
--- projects/jbuild/usr.bin/jbuild/filemon/filemon_wrapper.c	Tue Sep 20 21:54:43 2011	(r225702)
+++ projects/jbuild/usr.bin/jbuild/filemon/filemon_wrapper.c	Tue Sep 20 23:22:58 2011	(r225703)
@@ -1,4 +1,5 @@
 /*-
+ * Copyright (c) 2011, David E. O'Brien.
  * Copyright (c) 2009-2011, Juniper Networks, Inc.
  * All rights reserved.
  *
@@ -258,11 +259,23 @@ filemon_wrapper_open(struct thread *td, 
 			copyinstr(uap->path, filemon->fname1,
 			    sizeof(filemon->fname1), &done);
 
+			if (uap->flags & O_RDWR) {
+				/*
+				 * We'll get the W record below, but need
+				 * to also output an R to distingish from
+				 * O_WRONLY.
+				 */
+				len = snprintf(filemon->msgbufr,
+				    sizeof(filemon->msgbufr), "R %d %s\n",
+				    curproc->p_pid, filemon->fname1);
+				filemon_output(filemon, filemon->msgbufr, len);
+			}
+
+
 			len = snprintf(filemon->msgbufr,
 			    sizeof(filemon->msgbufr), "%c %d %s\n",
 			    (uap->flags & O_ACCMODE) ? 'W':'R',
 			    curproc->p_pid, filemon->fname1);
-
 			filemon_output(filemon, filemon->msgbufr, len);
 
 			/* Unlock the found filemon structure. */

Modified: projects/jbuild/usr.bin/jbuild/filemon/test/test_script.sh
==============================================================================
--- projects/jbuild/usr.bin/jbuild/filemon/test/test_script.sh	Tue Sep 20 21:54:43 2011	(r225702)
+++ projects/jbuild/usr.bin/jbuild/filemon/test/test_script.sh	Tue Sep 20 23:22:58 2011	(r225703)
@@ -26,11 +26,16 @@
 #
 # $FreeBSD$
 
+trap 'rm -f $f1 $f2; exit 1' 1 2 3 13 15
 echo shazbot > /dev/null
 f1=`mktemp /tmp/filemon_test.XXXXXX`
-trap 'rm -f $f1; exit 1' 1 2 3 13 15
+f2=`mktemp /tmp/ed-script.XXXXXX`
 > $f1
 echo "One line to rule them all" >> $f1
 wc -l $f1 > /dev/null
-rm $f1
+#	ed(1)'s /tmp/ed.* buffer file will be opened RW
+echo ',s/$/./g'	> $f2
+echo 'wq'	>>$f2
+ed -s $f1 < $f2
+rm $f1 $f2
 uptime > /dev/null



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