summaryrefslogtreecommitdiff
path: root/source3/smbd/notify.c
diff options
context:
space:
mode:
authorVolker Lendecke <vlendec@samba.org>2007-01-31 14:28:08 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:17:35 -0500
commit3af5838096872039ac201385763f1e4c0fafb034 (patch)
treeedd4116ca52c16eabb60a5ab7cbb3305f6574366 /source3/smbd/notify.c
parent697ccab3f0c8d9cae7ce982009957a79254e4665 (diff)
downloadsamba-3af5838096872039ac201385763f1e4c0fafb034.tar.gz
samba-3af5838096872039ac201385763f1e4c0fafb034.tar.bz2
samba-3af5838096872039ac201385763f1e4c0fafb034.zip
r21090: Add some helper routines
(This used to be commit 985dde8ed0a7e6da5adf9c55654a4fd362b22acb)
Diffstat (limited to 'source3/smbd/notify.c')
-rw-r--r--source3/smbd/notify.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/source3/smbd/notify.c b/source3/smbd/notify.c
index 9cb121a039..2907bd7e0f 100644
--- a/source3/smbd/notify.c
+++ b/source3/smbd/notify.c
@@ -521,6 +521,44 @@ static void notify_message_callback(int msgtype, struct process_id pid,
}
}
+char *notify_filter_string(TALLOC_CTX *mem_ctx, uint32 filter)
+{
+ char *result = NULL;
+
+ result = talloc_strdup(mem_ctx, "");
+
+ if (filter & FILE_NOTIFY_CHANGE_FILE_NAME)
+ result = talloc_asprintf_append(result, "FILE_NAME|");
+ if (filter & FILE_NOTIFY_CHANGE_DIR_NAME)
+ result = talloc_asprintf_append(result, "DIR_NAME|");
+ if (filter & FILE_NOTIFY_CHANGE_ATTRIBUTES)
+ result = talloc_asprintf_append(result, "ATTRIBUTES|");
+ if (filter & FILE_NOTIFY_CHANGE_SIZE)
+ result = talloc_asprintf_append(result, "SIZE|");
+ if (filter & FILE_NOTIFY_CHANGE_LAST_WRITE)
+ result = talloc_asprintf_append(result, "LAST_WRITE|");
+ if (filter & FILE_NOTIFY_CHANGE_LAST_ACCESS)
+ result = talloc_asprintf_append(result, "LAST_ACCESS|");
+ if (filter & FILE_NOTIFY_CHANGE_CREATION)
+ result = talloc_asprintf_append(result, "CREATION|");
+ if (filter & FILE_NOTIFY_CHANGE_EA)
+ result = talloc_asprintf_append(result, "EA|");
+ if (filter & FILE_NOTIFY_CHANGE_SECURITY)
+ result = talloc_asprintf_append(result, "SECURITY|");
+ if (filter & FILE_NOTIFY_CHANGE_STREAM_NAME)
+ result = talloc_asprintf_append(result, "STREAM_NAME|");
+ if (filter & FILE_NOTIFY_CHANGE_STREAM_SIZE)
+ result = talloc_asprintf_append(result, "STREAM_SIZE|");
+ if (filter & FILE_NOTIFY_CHANGE_STREAM_WRITE)
+ result = talloc_asprintf_append(result, "STREAM_WRITE|");
+
+ if (result == NULL) return NULL;
+ if (*result == '\0') return result;
+
+ result[strlen(result)-1] = '\0';
+ return result;
+}
+
/****************************************************************************
Initialise the change notify subsystem.
****************************************************************************/