From owner-svn-src-projects@FreeBSD.ORG Tue Sep 20 23:22:58 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B6149106566B; Tue, 20 Sep 2011 23:22:58 +0000 (UTC) (envelope-from obrien@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9BA278FC14; Tue, 20 Sep 2011 23:22:58 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p8KNMwkT049161; Tue, 20 Sep 2011 23:22:58 GMT (envelope-from obrien@svn.freebsd.org) Received: (from obrien@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p8KNMwiK049157; Tue, 20 Sep 2011 23:22:58 GMT (envelope-from obrien@svn.freebsd.org) Message-Id: <201109202322.p8KNMwiK049157@svn.freebsd.org> From: "David E. O'Brien" Date: Tue, 20 Sep 2011 23:22:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r225703 - in projects/jbuild/usr.bin/jbuild/filemon: . test X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Sep 2011 23:22:58 -0000 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