From 8daa83a594a2e98f39d764422bfbdbc62c9efd44 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 19:20:00 +0200 Subject: Adding upstream version 2:4.20.0+dfsg. Signed-off-by: Daniel Baumann --- examples/libsmbclient/testnotify.c | 82 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 examples/libsmbclient/testnotify.c (limited to 'examples/libsmbclient/testnotify.c') diff --git a/examples/libsmbclient/testnotify.c b/examples/libsmbclient/testnotify.c new file mode 100644 index 0000000..8760cf0 --- /dev/null +++ b/examples/libsmbclient/testnotify.c @@ -0,0 +1,82 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include "get_auth_data_fn.h" + +static int notify_cb(const struct smbc_notify_callback_action *actions, + size_t num_actions, void *private_data) +{ + int *count = private_data; + size_t i; + + printf("%zu\n", num_actions); + + for (i=0; ifilename, a->action); + } + + *count -= 1; + if (*count < 0) { + return 1; + } + + return 0; +} + +int main(int argc, char * argv[]) +{ + int fd; + int ret; + int debug = 0; + int saved_errno; + char path[2048]; + char * p; + int count = 1000; + + smbc_init(get_auth_data_fn, debug); + + fprintf(stdout, "Path: "); + *path = '\0'; + p = fgets(path, sizeof(path) - 1, stdin); + if (p == NULL) { + fprintf(stderr, "error reading from stdin\n"); + return 1; + } + if (strlen(path) == 0) { + return 0; + } + + p = path + strlen(path) - 1; + if (*p == '\n') { + *p = '\0'; + } + + fd = smbc_opendir(path); + if (fd < 0) { + perror("smbc_open"); + return 1; + } + + ret = smbc_notify(fd, 1, + SMBC_NOTIFY_CHANGE_SECURITY| + SMBC_NOTIFY_CHANGE_FILE_NAME, + 1000, notify_cb, &count); + if (ret < 0) { + saved_errno = errno; + } + + smbc_close(fd); + + if (ret < 0) { + errno = saved_errno; + perror("notify"); + } + + return 0; +} -- cgit v1.2.3