X-Git-Url: http://git.roojs.org/?p=gitlive;a=blobdiff_plain;f=fanotify%2Ffanotify.vala;fp=fanotify%2Ffanotify.vala;h=d73859aeb442b3a9f3fa260504c33b47e36376e1;hp=0000000000000000000000000000000000000000;hb=7f173a17ed57f133fa4985f18ce645d1fd957f1d;hpb=ce0a9ed7cbde853bab1ba31d0a14fd0a73d7578c diff --git a/fanotify/fanotify.vala b/fanotify/fanotify.vala new file mode 100644 index 00000000..d73859ae --- /dev/null +++ b/fanotify/fanotify.vala @@ -0,0 +1,49 @@ + +/** +valac --vapidir=. --pkg fanotify --pkg posix -o /tmp/fanotify fanotify.vala fanotify-helper.c + +*/ + + +extern void fanotify_read (int fh); + +void main (string[] args) { + + + // root version? + //var fan = Fanotify.init(Fanotify.InitFlag.CLOEXEC | Fanotify.InitFlag.CLASS_CONTENT , Posix.O_RDONLY ); + + //non-root (not content?) + // var fan = Fanotify.init(Fanotify.InitFlag.CLOEXEC | Fanotify.InitFlag.CLASS_NOTIF | Fanotify.InitFlag.REPORT_FID , Posix.O_RDONLY ); + var fan = Fanotify.init( + Fanotify.InitFlag.CLOEXEC | Fanotify.InitFlag.CLASS_NOTIF | Fanotify.InitFlag.REPORT_DIR_FID | Fanotify.InitFlag.REPORT_NAME , + Posix.O_RDONLY ); + if(fan == -1){ + Posix.perror("fanotify_init"); + Posix.exit(Posix.EXIT_FAILURE); + } + /* + // root version. + var ret = Fanotify.mark( + fan, + Fanotify.Mark.ADD | Fanotify.Mark.MOUNT, + Fanotify.EventType.OPEN_PERM | Fanotify.EventType.CLOSE_WRITE , + Posix.AT_FDCWD, "/home/" + ); + */ + // not root version? + var ret = Fanotify.mark( + fan, + Fanotify.Mark.ADD , + Fanotify.EventType.CREATE | Fanotify.EventType.DELETE | Fanotify.EventType.MODIFY | Fanotify.EventType.EVENT_ON_CHILD, + Posix.AT_FDCWD, "/home/alan/gitlive/gitlive/fanotify" + ); + + if(ret == -1){ + Posix.perror("fanotify_mark"); + Posix.exit(Posix.EXIT_FAILURE); + } + Posix.printf("got mark %d", ret); + fanotify_read(fan); + +} \ No newline at end of file