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>