#define MSG_SMB_BLOCKING_LOCK_CANCEL 3013
#define MSG_SMB_NOTIFY 3014
#define MSG_SMB_STAT_CACHE_DELETE 3015
+/*
+ * Samba4 compatibility
+ */
+#define MSG_PVFS_NOTIFY 3016
/* winbind messages */
#define MSG_WINBIND_FINISHED 4001
#define FILE_READ_ONLY_VOLUME 0x00080000
/* ChangeNotify flags. */
-#define FILE_NOTIFY_CHANGE_FILE 0x001
+#define FILE_NOTIFY_CHANGE_FILE_NAME 0x001
#define FILE_NOTIFY_CHANGE_DIR_NAME 0x002
#define FILE_NOTIFY_CHANGE_ATTRIBUTES 0x004
#define FILE_NOTIFY_CHANGE_SIZE 0x008
#define FILE_NOTIFY_CHANGE_CREATION 0x040
#define FILE_NOTIFY_CHANGE_EA 0x080
#define FILE_NOTIFY_CHANGE_SECURITY 0x100
-#define FILE_NOTIFY_CHANGE_FILE_NAME 0x200
+#define FILE_NOTIFY_CHANGE_STREAM_NAME 0x00000200
+#define FILE_NOTIFY_CHANGE_STREAM_SIZE 0x00000400
+#define FILE_NOTIFY_CHANGE_STREAM_WRITE 0x00000800
#define FILE_NOTIFY_CHANGE_NAME \
(FILE_NOTIFY_CHANGE_FILE_NAME|FILE_NOTIFY_CHANGE_DIR_NAME)
struct fam_notify_ctx *ctx;
pstring fullpath;
- if ((*filter & FILE_NOTIFY_CHANGE_FILE) == 0) {
- DEBUG(10, ("filter = %u, no FILE_NOTIFY_CHANGE_FILE\n",
+ if ((*filter & FILE_NOTIFY_CHANGE_FILE_NAME) == 0) {
+ DEBUG(10, ("filter = %u, no FILE_NOTIFY_CHANGE_FILE_NAME\n",
*filter));
return NULL;
}
* FAMCreated and FAMDeleted events
*/
- ctx->filter = FILE_NOTIFY_CHANGE_FILE;
+ ctx->filter = FILE_NOTIFY_CHANGE_FILE_NAME;
if (!(ctx->path = talloc_strdup(ctx, fullpath))) {
DEBUG(0, ("talloc_strdup failed\n"));
* Leave the rest to smbd itself
*/
- *filter &= ~FILE_NOTIFY_CHANGE_FILE;
+ *filter &= ~FILE_NOTIFY_CHANGE_FILE_NAME;
DLIST_ADD(fam_notify_list, ctx);
talloc_set_destructor(ctx, fam_notify_ctx_destructor);
*/
if (flags & (FILE_NOTIFY_CHANGE_DIR_NAME
- |FILE_NOTIFY_CHANGE_FILE_NAME
- |FILE_NOTIFY_CHANGE_FILE)) {
+ |FILE_NOTIFY_CHANGE_FILE_NAME)) {
int i;
unsigned char tmp_hash[16];
mdfour(tmp_hash, (const unsigned char *)fname,
kernel_flags = DN_CREATE|DN_DELETE|DN_RENAME; /* creation/deletion
* changes
* everything! */
- if (flags & FILE_NOTIFY_CHANGE_FILE) kernel_flags |= DN_MODIFY;
+ if (flags & FILE_NOTIFY_CHANGE_FILE_NAME) kernel_flags |= DN_MODIFY;
if (flags & FILE_NOTIFY_CHANGE_DIR_NAME) kernel_flags
|= DN_RENAME
|DN_DELETE;
if (SMB_VFS_UNLINK(conn,directory) == 0) {
count++;
notify_fname(conn, directory,
- FILE_NOTIFY_CHANGE_FILE,
+ FILE_NOTIFY_CHANGE_FILE_NAME,
NOTIFY_ACTION_REMOVED);
}
} else {
DEBUG(3,("unlink_internals: succesful unlink "
"[%s]\n",fname));
notify_action(conn, directory, dname,
- FILE_NOTIFY_CHANGE_FILE,
+ FILE_NOTIFY_CHANGE_FILE_NAME,
NOTIFY_ACTION_REMOVED);
}