]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3:torture/vfstest implement sys_acl_blob_get_file
authorChristian Ambach <ambi@samba.org>
Thu, 15 Nov 2012 14:19:07 +0000 (15:19 +0100)
committerAndrew Bartlett <abartlet@samba.org>
Mon, 4 Feb 2013 11:19:30 +0000 (12:19 +0100)
Signed-off-by: Christian Ambach <ambi@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
source3/torture/cmd_vfs.c

index 64b1b50211e53ef47f0056948761040939e7d8e0..eef9c40c8e1ac197283ef4ed8dbbc3fb264e27f8 100644 (file)
@@ -1613,6 +1613,36 @@ static NTSTATUS cmd_sys_acl_get_file(struct vfs_state *vfs, TALLOC_CTX *mem_ctx,
        return NT_STATUS_OK;
 }
 
+static NTSTATUS cmd_sys_acl_blob_get_file(struct vfs_state *vfs,
+                                         TALLOC_CTX *mem_ctx,
+                                         int argc, const char **argv)
+{
+       char *description;
+       DATA_BLOB blob;
+       int ret;
+       size_t i;
+
+       if (argc != 2) {
+               printf("Usage: sys_acl_get_file <path>\n");
+               return NT_STATUS_OK;
+       }
+
+       ret = SMB_VFS_SYS_ACL_BLOB_GET_FILE(vfs->conn, argv[1], talloc_tos(),
+                                           &description, &blob);
+       if (ret != 0) {
+               printf("sys_acl_blob_get_file failed (%s)\n", strerror(errno));
+               return map_nt_error_from_unix(errno);
+       }
+       printf("Description: %s\n", description);
+       for (i = 0; i < blob.length; i++) {
+               printf("%.2x ", blob.data[i]);
+       }
+       printf("\n");
+
+       return NT_STATUS_OK;
+}
+
+
 static NTSTATUS cmd_sys_acl_delete_def_file(struct vfs_state *vfs, TALLOC_CTX *mem_ctx,
                                            int argc, const char **argv)
 {
@@ -1691,6 +1721,8 @@ struct cmd_set vfs_commands[] = {
        { "chmod_acl",   cmd_chmod_acl,   "VFS chmod_acl()",    "chmod_acl <path> <mode>" },
        { "sys_acl_get_file", cmd_sys_acl_get_file, "VFS sys_acl_get_file()", "sys_acl_get_file <path>" },
        { "sys_acl_get_fd", cmd_sys_acl_get_fd, "VFS sys_acl_get_fd()", "sys_acl_get_fd <fd>" },
+       { "sys_acl_blob_get_file", cmd_sys_acl_blob_get_file,
+         "VFS sys_acl_blob_get_file()", "sys_acl_blob_get_file <path>" },
        { "sys_acl_delete_def_file", cmd_sys_acl_delete_def_file, "VFS sys_acl_delete_def_file()", "sys_acl_delete_def_file <path>" },