Skip to content
  • Eric Paris's avatar
    fanotify: send events using read · a1014f10
    Eric Paris authored
    
    
    Send events to userspace by reading the file descriptor from fanotify_init().
    One will get blocks of data which look like:
    
    struct fanotify_event_metadata {
    	__u32 event_len;
    	__u32 vers;
    	__s32 fd;
    	__u64 mask;
    	__s64 pid;
    	__u64 cookie;
    } __attribute__ ((packed));
    
    Simple code to retrieve and deal with events is below
    
    	while ((len = read(fan_fd, buf, sizeof(buf))) > 0) {
    		struct fanotify_event_metadata *metadata;
    
    		metadata = (void *)buf;
    		while(FAN_EVENT_OK(metadata, len)) {
    			[PROCESS HERE!!]
    			if (metadata->fd >= 0 && close(metadata->fd) != 0)
    				goto fail;
    			metadata = FAN_EVENT_NEXT(metadata, len);
    		}
    	}
    
    Signed-off-by: default avatarEric Paris <eparis@redhat.com>
    a1014f10