John Ogness | 1 Sep 22:11 2004

Re: resolving full path when creating a new file onfreebsd 4.x (and more)

Patrick Bihan-Faou wrote:
> Well would'nt generating the ON_OPEN event after the open has completed have
> a nasty side effect ? Namely the file would already be created even if the
> dazuko daemon decided that the open should be blocked.

Yes, this is correct. But for monitoring applications it was acceptable. 
With your new logic this will no longer be an issue. I will be porting 
this logic to the other platforms as well.

> Yes I have seen this announcement. Is FIST portable to FreeBSD as well ? If
> yes that's probably the best solution.

FiST supports Linux, FreeBSD, and Solaris.

> In the meantime I'll handle the missing syscalls.


> Well for one I'd like to see more type of event monitored (this is specific
> to an application I am considering):
> - renames (needs a change in the event structure to support 2 filenames as
> noted in a previous thread)
> - symlink/hardlink creations/modifications (I did not look at what would be
> needed to implement that for now, but like for rename having to filenames in
> the event structure seems to be a must)

Both of these items should be simple with the new logic you have provided.

(Continue reading)

John Ogness | 5 Sep 00:41 2004

2.0.3 released


I have finally released version 2.0.3 of Dazuko. Thanks to a really 
great patch from Patrick Bihan-Faou, the FreeBSD 4 module is now capable 
of blocking ON_OPEN events for files that do not exist (preventing them 
from being created). This logic should work for the other platforms as 
well and I will be porting it over in the coming weeks.

With 2.0.3 also comes the official release of the Perl and Python 
versions of the Dazuko interface. This brings the number of officially 
supported languages to 4! (C, Java, Perl, Python)

Be sure to check out `configure --help' to see all the available 
configuration options. By default Makefile's will only be generated for 
the kernel module and the C library.

I have been diving deep into the code lately to isolate problem areas. 
Tomorrow I will be posting a pre-release for 2.1.0, which includes a new 
abstraction layer in userspace. I am also developing a "dummy kit" to 
help people who are interested in porting Dazuko to other platforms. 
Porting is actually quite easy, but without any good guidance, it seems 
overwhelming. (By the way, it is called dummy because it is a "do 
nothing", "no op", "dummy" module, not because it is for dummies. ;-) )

John Ogness


Dazuko Maintainer
John Ogness | 6 Sep 00:05 2004

2.1.0-pre1 posted


A very early pre-release of 2.1.0 has been posted. There have been quite 
a few internal changes, which is why I wanted to get it posted as early 
as possible. There is a new abstraction layer (dazukoio_xp) in 
userspace. Until now this wasn't needed because the userspace 
implementation works for all supported platforms. This is because all 
supported platforms are UNIX-like. If Dazuko is to be ported to 
non-UNIX-like platforms, then an abstraction layer is also required in 
userspace. With the increased interest in the port to Windows, I felt 
that now would be a good time to introduce this abstraction.

In another effort to help porters, a dummy extension (with example) is 
provided in the package. The dazuko_dummy.* files show a very basic 
implementation for the kernelspace part and the dazukoio_dummy.* files 
show a very basic implementation for the userspace part. This should 
help to show developers exactly what needs to be implemented when 
porting Dazuko to new platforms.

To allow the dummy extension to work on any platform, the dummy 
extension runs completely in userspace.

$ cd example_dummy
$ make
$ ./example

This starts a program that acts as the kernel and starts a thread which 
acts like the userspace daemon. By typing in commands, you can generate 
access events. For example:

(Continue reading)

John Ogness | 7 Sep 23:03 2004

Re: DazukoFS for FreeBSD 4

Hi Patrick,

OK, I have now added enough to the CVS code that you can play around 
with DazukoFS on FreeBSD 4 if you like. Here is the step-by-step.

*NOTE*: DazukoFS is in a very early development stage! Although this 
information is meant to satisfy Patrick's hunger, anyone is welcome to 
play around with it. Just please be aware that both the Dazuko and FiST 
projects have been "slapped together" as a first step for integration.

1. Get the latest CVS version of Dazuko:

$ env CVS_RSH="ssh" cvs -z3 \
-d:ext:anoncvs <at> \
co dazuko

(Note: the diff file I provided assumes that the Dazuko source is in 

2.  Configure for FiST support, build, and insert:

$ cd dazuko
$ ./configure --enable-fist
$ make
$ kldload ./dazuko.ko

3. Get the latest copy of fistgen from

$ wget

(Continue reading)

John Ogness | 7 Sep 23:15 2004

Re: DazukoFS for FreeBSD 4

John Ogness wrote:
> 5. Patch the generated DazukoFS source code:
> $ cd out/FreeBSD-4.10-STABLE/dazukofs
> $ patch -p0 < patch-fist-dazuko-freebsd.diff
> (Note: patch-fist-dazuko-freebsd.diff is attached to this email)


Sorry, I just noticed that the patch file I sent before was missing a 
parenthesis. ??? Anyway, here is a working patch for DazukoFS.

John Ogness


Dazuko Maintainer
--- Makefile	Tue Sep  7 23:13:14 2004
+++ ../dazukofs.good/Makefile	Tue Sep  7 21:40:04 2004
 <at>  <at>  -4,7 +4,7  <at>  <at> 
 OPT_DBG=-Werror -Wno-unused
+CFLAGS=$(OPT_DEBUG) $(OPT_DEF) $(OPT_DBG) $(OPT_INC) -I/tmp/dazuko

(Continue reading)

John Ogness | 7 Sep 23:21 2004

Re: DazukoFS for FreeBSD 4

John Ogness wrote:
> 1. Get the latest CVS version of Dazuko:
> $ env CVS_RSH="ssh" cvs -z3 \
> -d:ext:anoncvs <at> \
> co dazuko
> (Note: the diff file I provided assumes that the Dazuko source is in 
> /tmp/dazuko)

Hi again,

Sorry, it must be late... The new CVS commits are done under the REL_21 tag.

$ env CVS_RSH="ssh" cvs -z3 \
-d:ext:anoncvs <at> \
co -r REL_21 dazuko

John Ogness


Dazuko Maintainer
Patrick Bihan-Faou | 8 Sep 21:48 2004

RE: DazukoFS for FreeBSD 4

Hi John,

Here is the patch set against a fresh checkout of the REL_21 branch of

This set of patch adds the following features:

- DAZUKO_ON_WRITE events: they monitor the following syscalls on freebsd 4:
        - write
        - writev
        - pwrite
        - aio_write (optionally)
        - ftruncate
        - mmap (to indicate that the file may be written)

  in each case the offset + the size of the write is indicated except for
the following cases:
   - truncate: only the offset is sent, no size
   - mmap: no size and no offset

  The write events are sent back to the userland daemon.

-  Support for the dup and dup2 syscalls.

  These are needed to properly track the number of references to a single
opened file. This also means that the hash structure used to keep track of
the monitored files contains a refcount.

- Finally, I have extended the logic of the filename resolution code to be
more consistent with what the system does as far as FOLLOW/NOFOLLOW goes and
(Continue reading)

areaz | 11 Sep 15:30 2004

Dazuko PHP interface

Hi all,

I have added dazuko's php interface to the pecl package tree on

Can you test this extension and update the "configure" file in the
dazuko source tree please?
areaz | 11 Sep 15:31 2004

Dazuko configure file update

Here is the configure file update
Attachment (configure): application/x-shellscript, 35 KiB
Dazuko-devel mailing list
Dazuko-devel <at>
John Ogness | 11 Sep 23:53 2004

Re: Dazuko PHP interface

areaz <at> wrote:
> I have added dazuko's php interface to the pecl package tree on


I will try to check it out this weekend.

John Ogness


Dazuko Maintainer