From 1f36ec129300e4f69efe26d4950fe3a7cfbfb233 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Wed, 10 Oct 2012 16:44:41 +1100 Subject: vfs: Remove type parameter from sys_acl_blob_get_{fd,file} This interface actually needs to match the get_nt_acl interface in that the system ACL implmenetation may not be posix ACLs, and the blob is not meant to be enforced to be of a particular system ACL structure. Andrew Bartlett --- examples/VFS/skel_opaque.c | 2 +- examples/VFS/skel_transparent.c | 4 ++-- source3/include/vfs.h | 10 ++++++---- source3/include/vfs_macros.h | 8 ++++---- source3/modules/vfs_full_audit.c | 3 +-- source3/modules/vfs_time_audit.c | 3 +-- source3/smbd/vfs.c | 3 +-- 7 files changed, 16 insertions(+), 17 deletions(-) diff --git a/examples/VFS/skel_opaque.c b/examples/VFS/skel_opaque.c index 6dd83bb584..e66d7aa5cb 100644 --- a/examples/VFS/skel_opaque.c +++ b/examples/VFS/skel_opaque.c @@ -595,7 +595,7 @@ static SMB_ACL_T skel_sys_acl_get_fd(vfs_handle_struct *handle, return (SMB_ACL_T)NULL; } -static int skel_sys_acl_blob_get_file(vfs_handle_struct *handle, const char *path_p, SMB_ACL_TYPE_T type, TALLOC_CTX *mem_ctx, char **blob_description, DATA_BLOB *blob) +static int skel_sys_acl_blob_get_file(vfs_handle_struct *handle, const char *path_p, TALLOC_CTX *mem_ctx, char **blob_description, DATA_BLOB *blob) { errno = ENOSYS; return -1; diff --git a/examples/VFS/skel_transparent.c b/examples/VFS/skel_transparent.c index f8a743e06e..0c84e19fcd 100644 --- a/examples/VFS/skel_transparent.c +++ b/examples/VFS/skel_transparent.c @@ -708,12 +708,12 @@ static SMB_ACL_T skel_sys_acl_get_fd(vfs_handle_struct *handle, return SMB_VFS_NEXT_SYS_ACL_GET_FD(handle, fsp, mem_ctx); } -static int skel_sys_acl_blob_get_file(vfs_handle_struct *handle, const char *path_p, SMB_ACL_TYPE_T type, +static int skel_sys_acl_blob_get_file(vfs_handle_struct *handle, const char *path_p, TALLOC_CTX *mem_ctx, char **blob_description, DATA_BLOB *blob) { - return SMB_VFS_NEXT_SYS_ACL_BLOB_GET_FILE(handle, path_p, type, mem_ctx, blob_description, blob); + return SMB_VFS_NEXT_SYS_ACL_BLOB_GET_FILE(handle, path_p, mem_ctx, blob_description, blob); } static int skel_sys_acl_blob_get_fd(vfs_handle_struct *handle, files_struct *fsp, diff --git a/source3/include/vfs.h b/source3/include/vfs.h index 2d18265aac..2992c1db32 100644 --- a/source3/include/vfs.h +++ b/source3/include/vfs.h @@ -146,6 +146,7 @@ /* Leave at 29 - not yet released. Added sys_acl_blob_get_file and sys_acl_blob_get_fd */ /* Bump to version 30 - Samba 4.0.0 will ship with interface version 30 */ /* Leave at 30 - not yet released. Added conn->cwd to save vfs_GetWd() calls. */ +/* Leave at 30 - not yet released. Changed sys_acl_blob_get_file interface to remove type */ #define SMB_VFS_INTERFACE_VERSION 30 /* @@ -701,10 +702,12 @@ struct vfs_fn_pointers { SMB_ACL_T (*sys_acl_get_fd_fn)(struct vfs_handle_struct *handle, struct files_struct *fsp, TALLOC_CTX *mem_ctx); - int (*sys_acl_blob_get_file_fn)(struct vfs_handle_struct *handle, const char *path_p, SMB_ACL_TYPE_T type, - TALLOC_CTX *mem_ctx, char **blob_description, + int (*sys_acl_blob_get_file_fn)(struct vfs_handle_struct *handle, + const char *path_p, + TALLOC_CTX *mem_ctx, + char **blob_description, DATA_BLOB *blob); - int (*sys_acl_blob_get_fd_fn)(struct vfs_handle_struct *handle, struct files_struct *fsp, + int (*sys_acl_blob_get_fd_fn)(struct vfs_handle_struct *handle, struct files_struct *fsp, TALLOC_CTX *mem_ctx, char **blob_description, DATA_BLOB *blob); int (*sys_acl_set_file_fn)(struct vfs_handle_struct *handle, const char *name, SMB_ACL_TYPE_T acltype, SMB_ACL_T theacl); @@ -1110,7 +1113,6 @@ SMB_ACL_T smb_vfs_call_sys_acl_get_fd(struct vfs_handle_struct *handle, TALLOC_CTX *mem_ctx); int smb_vfs_call_sys_acl_blob_get_file(struct vfs_handle_struct *handle, const char *path_p, - SMB_ACL_TYPE_T type, TALLOC_CTX *mem_ctx, char **blob_description, DATA_BLOB *blob); diff --git a/source3/include/vfs_macros.h b/source3/include/vfs_macros.h index a5ff90bc9d..331fe001be 100644 --- a/source3/include/vfs_macros.h +++ b/source3/include/vfs_macros.h @@ -439,10 +439,10 @@ #define SMB_VFS_NEXT_SYS_ACL_GET_FD(handle, fsp, mem_ctx) \ smb_vfs_call_sys_acl_get_fd((handle)->next, (fsp), (mem_ctx)) -#define SMB_VFS_SYS_ACL_BLOB_GET_FILE(conn, path_p, type, mem_ctx, blob_description, blob) \ - smb_vfs_call_sys_acl_blob_get_file((conn)->vfs_handles, (path_p), (type), (mem_ctx), (blob_description), (blob)) -#define SMB_VFS_NEXT_SYS_ACL_BLOB_GET_FILE(handle, path_p, type, mem_ctx, blob_description, blob) \ - smb_vfs_call_sys_acl_blob_get_file((handle)->next, (path_p), (type), (mem_ctx), (blob_description), (blob)) +#define SMB_VFS_SYS_ACL_BLOB_GET_FILE(conn, path_p, mem_ctx, blob_description, blob) \ + smb_vfs_call_sys_acl_blob_get_file((conn)->vfs_handles, (path_p), (mem_ctx), (blob_description), (blob)) +#define SMB_VFS_NEXT_SYS_ACL_BLOB_GET_FILE(handle, path_p, mem_ctx, blob_description, blob) \ + smb_vfs_call_sys_acl_blob_get_file((handle)->next, (path_p), (mem_ctx), (blob_description), (blob)) #define SMB_VFS_SYS_ACL_BLOB_GET_FD(fsp, mem_ctx, blob_description, blob) \ smb_vfs_call_sys_acl_blob_get_fd((fsp)->conn->vfs_handles, (fsp), (mem_ctx), (blob_description), (blob)) diff --git a/source3/modules/vfs_full_audit.c b/source3/modules/vfs_full_audit.c index be8989cdb5..b1fb090dc6 100644 --- a/source3/modules/vfs_full_audit.c +++ b/source3/modules/vfs_full_audit.c @@ -1835,14 +1835,13 @@ static SMB_ACL_T smb_full_audit_sys_acl_get_fd(vfs_handle_struct *handle, static int smb_full_audit_sys_acl_blob_get_file(vfs_handle_struct *handle, const char *path_p, - SMB_ACL_TYPE_T type, TALLOC_CTX *mem_ctx, char **blob_description, DATA_BLOB *blob) { int result; - result = SMB_VFS_NEXT_SYS_ACL_BLOB_GET_FILE(handle, path_p, type, mem_ctx, blob_description, blob); + result = SMB_VFS_NEXT_SYS_ACL_BLOB_GET_FILE(handle, path_p, mem_ctx, blob_description, blob); do_log(SMB_VFS_OP_SYS_ACL_BLOB_GET_FILE, (result >= 0), handle, "%s", path_p); diff --git a/source3/modules/vfs_time_audit.c b/source3/modules/vfs_time_audit.c index 6ff1a5571d..95b4148232 100644 --- a/source3/modules/vfs_time_audit.c +++ b/source3/modules/vfs_time_audit.c @@ -1818,7 +1818,6 @@ static SMB_ACL_T smb_time_audit_sys_acl_get_fd(vfs_handle_struct *handle, static int smb_time_audit_sys_acl_blob_get_file(vfs_handle_struct *handle, const char *path_p, - SMB_ACL_TYPE_T type, TALLOC_CTX *mem_ctx, char **blob_description, DATA_BLOB *blob) @@ -1828,7 +1827,7 @@ static int smb_time_audit_sys_acl_blob_get_file(vfs_handle_struct *handle, double timediff; clock_gettime_mono(&ts1); - result = SMB_VFS_NEXT_SYS_ACL_BLOB_GET_FILE(handle, path_p, type, mem_ctx, blob_description, blob); + result = SMB_VFS_NEXT_SYS_ACL_BLOB_GET_FILE(handle, path_p, mem_ctx, blob_description, blob); clock_gettime_mono(&ts2); timediff = nsec_time_diff(&ts2,&ts1)*1.0e-9; diff --git a/source3/smbd/vfs.c b/source3/smbd/vfs.c index 3a95c588c5..581a02567e 100644 --- a/source3/smbd/vfs.c +++ b/source3/smbd/vfs.c @@ -2240,13 +2240,12 @@ SMB_ACL_T smb_vfs_call_sys_acl_get_fd(struct vfs_handle_struct *handle, int smb_vfs_call_sys_acl_blob_get_file(struct vfs_handle_struct *handle, const char *path_p, - SMB_ACL_TYPE_T type, TALLOC_CTX *mem_ctx, char **blob_description, DATA_BLOB *blob) { VFS_FIND(sys_acl_blob_get_file); - return handle->fns->sys_acl_blob_get_file_fn(handle, path_p, type, mem_ctx, blob_description, blob); + return handle->fns->sys_acl_blob_get_file_fn(handle, path_p, mem_ctx, blob_description, blob); } int smb_vfs_call_sys_acl_blob_get_fd(struct vfs_handle_struct *handle, -- cgit