Add a program to test repeated calls to smbc_getxattr().
authorDerrell Lipman <derrell.lipman@unwireduniverse.com>
Thu, 17 Jan 2008 16:46:41 +0000 (11:46 -0500)
committerDerrell Lipman <derrell.lipman@unwireduniverse.com>
Thu, 17 Jan 2008 16:46:41 +0000 (11:46 -0500)
examples/libsmbclient/Makefile
examples/libsmbclient/testacl3.c [new file with mode: 0644]

index 9657957c4e9c0c53efeacca1b66d92fc169b916d..6c70659661701bb0292e262783d7b2308501e52b 100644 (file)
@@ -18,6 +18,7 @@ LIBSMBCLIENT = -lwbclient -lsmbclient -ldl -lresolv
 TESTS= testsmbc \
        testacl \
        testacl2 \
+       testacl3 \
        testbrowse \
        testbrowse2 \
        teststat \
@@ -48,6 +49,10 @@ testacl2: testacl2.o
        @echo Linking testacl2
        $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBSMBCLIENT) -lpopt
 
+testacl3: testacl3.o
+       @echo Linking testacl3
+       $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBSMBCLIENT) -lpopt
+
 testbrowse: testbrowse.o
        @echo Linking testbrowse
        $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBSMBCLIENT) -lpopt
diff --git a/examples/libsmbclient/testacl3.c b/examples/libsmbclient/testacl3.c
new file mode 100644 (file)
index 0000000..9102405
--- /dev/null
@@ -0,0 +1,62 @@
+#include <sys/types.h>
+#include <stdio.h> 
+#include <unistd.h>
+#include <string.h> 
+#include <time.h> 
+#include <errno.h>
+#include <libsmbclient.h> 
+#include "get_auth_data_fn.h"
+
+
+int main(int argc, char * argv[]) 
+{ 
+    int             i;
+    int             fd;
+    int             ret;
+    int             debug = 0;
+    int             mode = 0666;
+    int             savedErrno;
+    char            value[2048]; 
+    char            path[2048];
+    char *          the_acl;
+    char *          p;
+    time_t          t0;
+    time_t          t1;
+    struct stat     st; 
+    SMBCCTX *       context;
+    
+    smbc_init(get_auth_data_fn, debug); 
+    
+    context = smbc_set_context(NULL);
+    smbc_option_set(context, "full_time_names", 1);
+    
+    for (;;)
+    {
+        fprintf(stdout, "Path: ");
+        *path = '\0';
+        fgets(path, sizeof(path) - 1, stdin);
+        if (strlen(path) == 0)
+        {
+            return 0;
+        }
+
+        p = path + strlen(path) - 1;
+        if (*p == '\n')
+        {
+            *p = '\0';
+        }
+    
+        the_acl = strdup("system.nt_sec_desc.*+");
+        ret = smbc_getxattr(path, the_acl, value, sizeof(value));
+        if (ret < 0)
+        {
+            printf("Could not get attributes for [%s] %d: %s\n",
+                   path, errno, strerror(errno));
+            return 1;
+        }
+    
+        printf("Attributes for [%s] are:\n%s\n", path, value);
+    }
+
+    return 0; 
+}