SMB_VFS_OP_MKDIR,
SMB_VFS_OP_RMDIR,
SMB_VFS_OP_CLOSEDIR,
- SMB_VFS_OP_INIT_SEARCH_OP,
/* File operations */
SMB_VFS_OP_BRL_LOCK_WINDOWS,
SMB_VFS_OP_BRL_UNLOCK_WINDOWS,
SMB_VFS_OP_BRL_CANCEL_WINDOWS,
- SMB_VFS_OP_STRICT_LOCK,
- SMB_VFS_OP_STRICT_UNLOCK,
+ SMB_VFS_OP_STRICT_LOCK_CHECK,
SMB_VFS_OP_TRANSLATE_NAME,
SMB_VFS_OP_FSCTL,
SMB_VFS_OP_OFFLOAD_READ_SEND,
SMB_VFS_OP_OFFLOAD_READ_RECV,
- SMB_VFS_OP_COPY_CHUNK_SEND,
- SMB_VFS_OP_COPY_CHUNK_RECV,
+ SMB_VFS_OP_OFFLOAD_WRITE_SEND,
+ SMB_VFS_OP_OFFLOAD_WRITE_RECV,
SMB_VFS_OP_GET_COMPRESSION,
SMB_VFS_OP_SET_COMPRESSION,
SMB_VFS_OP_SNAP_CHECK_PATH,
/* POSIX ACL operations. */
- SMB_VFS_OP_CHMOD_ACL,
SMB_VFS_OP_FCHMOD_ACL,
SMB_VFS_OP_SYS_ACL_GET_FILE,
{ SMB_VFS_OP_MKDIR, "mkdir" },
{ SMB_VFS_OP_RMDIR, "rmdir" },
{ SMB_VFS_OP_CLOSEDIR, "closedir" },
- { SMB_VFS_OP_INIT_SEARCH_OP, "init_search_op" },
{ SMB_VFS_OP_OPEN, "open" },
{ SMB_VFS_OP_CREATE_FILE, "create_file" },
{ SMB_VFS_OP_CLOSE, "close" },
{ SMB_VFS_OP_BRL_LOCK_WINDOWS, "brl_lock_windows" },
{ SMB_VFS_OP_BRL_UNLOCK_WINDOWS, "brl_unlock_windows" },
{ SMB_VFS_OP_BRL_CANCEL_WINDOWS, "brl_cancel_windows" },
- { SMB_VFS_OP_STRICT_LOCK, "strict_lock" },
- { SMB_VFS_OP_STRICT_UNLOCK, "strict_unlock" },
+ { SMB_VFS_OP_STRICT_LOCK_CHECK, "strict_lock_check" },
{ SMB_VFS_OP_TRANSLATE_NAME, "translate_name" },
{ SMB_VFS_OP_FSCTL, "fsctl" },
{ SMB_VFS_OP_OFFLOAD_READ_SEND, "offload_read_send" },
{ SMB_VFS_OP_OFFLOAD_READ_RECV, "offload_read_recv" },
- { SMB_VFS_OP_COPY_CHUNK_SEND, "copy_chunk_send" },
- { SMB_VFS_OP_COPY_CHUNK_RECV, "copy_chunk_recv" },
+ { SMB_VFS_OP_OFFLOAD_WRITE_SEND, "offload_write_send" },
+ { SMB_VFS_OP_OFFLOAD_WRITE_RECV, "offload_write_recv" },
{ SMB_VFS_OP_GET_COMPRESSION, "get_compression" },
{ SMB_VFS_OP_SET_COMPRESSION, "set_compression" },
{ SMB_VFS_OP_SNAP_CHECK_PATH, "snap_check_path" },
{ SMB_VFS_OP_GET_NT_ACL, "get_nt_acl" },
{ SMB_VFS_OP_FSET_NT_ACL, "fset_nt_acl" },
{ SMB_VFS_OP_AUDIT_FILE, "audit_file" },
- { SMB_VFS_OP_CHMOD_ACL, "chmod_acl" },
- { SMB_VFS_OP_FCHMOD_ACL, "fchmod_acl" },
{ SMB_VFS_OP_SYS_ACL_GET_FILE, "sys_acl_get_file" },
{ SMB_VFS_OP_SYS_ACL_GET_FD, "sys_acl_get_fd" },
{ SMB_VFS_OP_SYS_ACL_BLOB_GET_FILE, "sys_acl_blob_get_file" },
return tmp_do_log_ctx;
}
+static void do_log(vfs_op_type op, bool success, vfs_handle_struct *handle,
+ const char *format, ...) PRINTF_ATTRIBUTE(4, 5);
+
static void do_log(vfs_op_type op, bool success, vfs_handle_struct *handle,
const char *format, ...)
{
return result;
}
-static void smb_full_audit_init_search_op(vfs_handle_struct *handle,
- DIR *dirp)
-{
- SMB_VFS_NEXT_INIT_SEARCH_OP(handle, dirp);
-
- do_log(SMB_VFS_OP_INIT_SEARCH_OP, True, handle, "");
-}
-
static int smb_full_audit_open(vfs_handle_struct *handle,
struct smb_filename *smb_fname,
files_struct *fsp, int flags, mode_t mode)
return result;
}
-static ssize_t smb_full_audit_read(vfs_handle_struct *handle, files_struct *fsp,
- void *data, size_t n)
-{
- ssize_t result;
-
- result = SMB_VFS_NEXT_READ(handle, fsp, data, n);
-
- do_log(SMB_VFS_OP_READ, (result >= 0), handle, "%s",
- fsp_str_do_log(fsp));
-
- return result;
-}
-
static ssize_t smb_full_audit_pread(vfs_handle_struct *handle, files_struct *fsp,
void *data, size_t n, off_t offset)
{
return state->ret;
}
-static ssize_t smb_full_audit_write(vfs_handle_struct *handle, files_struct *fsp,
- const void *data, size_t n)
-{
- ssize_t result;
-
- result = SMB_VFS_NEXT_WRITE(handle, fsp, data, n);
-
- do_log(SMB_VFS_OP_WRITE, (result >= 0), handle, "%s",
- fsp_str_do_log(fsp));
-
- return result;
-}
-
static ssize_t smb_full_audit_pwrite(vfs_handle_struct *handle, files_struct *fsp,
const void *data, size_t n,
off_t offset)
return result;
}
-static int smb_full_audit_fsync(vfs_handle_struct *handle, files_struct *fsp)
-{
- int result;
-
- result = SMB_VFS_NEXT_FSYNC(handle, fsp);
-
- do_log(SMB_VFS_OP_FSYNC, (result >= 0), handle, "%s",
- fsp_str_do_log(fsp));
-
- return result;
-}
-
struct smb_full_audit_fsync_state {
vfs_handle_struct *handle;
files_struct *fsp;
result = SMB_VFS_NEXT_GET_ALLOC_SIZE(handle, fsp, sbuf);
do_log(SMB_VFS_OP_GET_ALLOC_SIZE, (result != (uint64_t)-1), handle,
- "%llu", result);
+ "%llu", (unsigned long long)result);
return result;
}
do_log(SMB_VFS_OP_BRL_LOCK_WINDOWS, NT_STATUS_IS_OK(result), handle,
"%s:%llu-%llu. type=%d. blocking=%d",
fsp_str_do_log(brl_fsp(br_lck)),
- plock->start, plock->size, plock->lock_type, blocking_lock);
+ (unsigned long long)plock->start,
+ (unsigned long long)plock->size,
+ plock->lock_type,
+ blocking_lock);
return result;
}
do_log(SMB_VFS_OP_BRL_UNLOCK_WINDOWS, (result == 0), handle,
"%s:%llu-%llu:%d", fsp_str_do_log(brl_fsp(br_lck)),
- plock->start,
- plock->size, plock->lock_type);
+ (unsigned long long)plock->start,
+ (unsigned long long)plock->size,
+ plock->lock_type);
return result;
}
do_log(SMB_VFS_OP_BRL_CANCEL_WINDOWS, (result == 0), handle,
"%s:%llu-%llu:%d", fsp_str_do_log(brl_fsp(br_lck)),
- plock->start,
- plock->size, plock->lock_type);
+ (unsigned long long)plock->start,
+ (unsigned long long)plock->size,
+ plock->lock_type);
return result;
}
-static bool smb_full_audit_strict_lock(struct vfs_handle_struct *handle,
- struct files_struct *fsp,
- struct lock_struct *plock)
+static bool smb_full_audit_strict_lock_check(struct vfs_handle_struct *handle,
+ struct files_struct *fsp,
+ struct lock_struct *plock)
{
bool result;
- result = SMB_VFS_NEXT_STRICT_LOCK(handle, fsp, plock);
+ result = SMB_VFS_NEXT_STRICT_LOCK_CHECK(handle, fsp, plock);
- do_log(SMB_VFS_OP_STRICT_LOCK, result, handle,
- "%s:%llu-%llu:%d", fsp_str_do_log(fsp), plock->start,
- plock->size, plock->lock_type);
+ do_log(SMB_VFS_OP_STRICT_LOCK_CHECK, result, handle,
+ "%s:%llu-%llu:%d", fsp_str_do_log(fsp),
+ (unsigned long long)plock->start,
+ (unsigned long long)plock->size,
+ plock->lock_type);
return result;
}
-static void smb_full_audit_strict_unlock(struct vfs_handle_struct *handle,
- struct files_struct *fsp,
- struct lock_struct *plock)
-{
- SMB_VFS_NEXT_STRICT_UNLOCK(handle, fsp, plock);
-
- do_log(SMB_VFS_OP_STRICT_UNLOCK, true, handle,
- "%s:%llu-%llu:%d", fsp_str_do_log(fsp), plock->start,
- plock->size, plock->lock_type);
-}
-
static NTSTATUS smb_full_audit_translate_name(struct vfs_handle_struct *handle,
const char *name,
enum vfs_translate_direction direction,
return status;
}
-static struct tevent_req *smb_full_audit_copy_chunk_send(struct vfs_handle_struct *handle,
+static struct tevent_req *smb_full_audit_offload_write_send(struct vfs_handle_struct *handle,
TALLOC_CTX *mem_ctx,
struct tevent_context *ev,
- struct files_struct *src_fsp,
- off_t src_off,
+ uint32_t fsctl,
+ DATA_BLOB *token,
+ off_t transfer_offset,
struct files_struct *dest_fsp,
off_t dest_off,
- off_t num,
- uint32_t flags)
+ off_t num)
{
struct tevent_req *req;
- req = SMB_VFS_NEXT_COPY_CHUNK_SEND(handle, mem_ctx, ev, src_fsp,
- src_off, dest_fsp, dest_off, num,
- flags);
+ req = SMB_VFS_NEXT_OFFLOAD_WRITE_SEND(handle, mem_ctx, ev,
+ fsctl, token, transfer_offset,
+ dest_fsp, dest_off, num);
- do_log(SMB_VFS_OP_COPY_CHUNK_SEND, req, handle, "");
+ do_log(SMB_VFS_OP_OFFLOAD_WRITE_SEND, req, handle, "");
return req;
}
-static NTSTATUS smb_full_audit_copy_chunk_recv(struct vfs_handle_struct *handle,
+static NTSTATUS smb_full_audit_offload_write_recv(struct vfs_handle_struct *handle,
struct tevent_req *req,
off_t *copied)
{
NTSTATUS result;
- result = SMB_VFS_NEXT_COPY_CHUNK_RECV(handle, req, copied);
+ result = SMB_VFS_NEXT_OFFLOAD_WRITE_RECV(handle, req, copied);
- do_log(SMB_VFS_OP_COPY_CHUNK_RECV, NT_STATUS_IS_OK(result), handle, "");
+ do_log(SMB_VFS_OP_OFFLOAD_WRITE_RECV, NT_STATUS_IS_OK(result), handle, "");
return result;
}
return result;
}
-static int smb_full_audit_chmod_acl(vfs_handle_struct *handle,
- const struct smb_filename *smb_fname,
- mode_t mode)
-{
- int result;
-
- result = SMB_VFS_NEXT_CHMOD_ACL(handle, smb_fname, mode);
-
- do_log(SMB_VFS_OP_CHMOD_ACL, (result >= 0), handle,
- "%s|%o", smb_fname->base_name, mode);
-
- return result;
-}
-
-static int smb_full_audit_fchmod_acl(vfs_handle_struct *handle, files_struct *fsp,
- mode_t mode)
-{
- int result;
-
- result = SMB_VFS_NEXT_FCHMOD_ACL(handle, fsp, mode);
-
- do_log(SMB_VFS_OP_FCHMOD_ACL, (result >= 0), handle,
- "%s|%o", fsp_str_do_log(fsp), mode);
-
- return result;
-}
-
static SMB_ACL_T smb_full_audit_sys_acl_get_file(vfs_handle_struct *handle,
const struct smb_filename *smb_fname,
SMB_ACL_TYPE_T type,
.mkdir_fn = smb_full_audit_mkdir,
.rmdir_fn = smb_full_audit_rmdir,
.closedir_fn = smb_full_audit_closedir,
- .init_search_op_fn = smb_full_audit_init_search_op,
.open_fn = smb_full_audit_open,
.create_file_fn = smb_full_audit_create_file,
.close_fn = smb_full_audit_close,
- .read_fn = smb_full_audit_read,
.pread_fn = smb_full_audit_pread,
.pread_send_fn = smb_full_audit_pread_send,
.pread_recv_fn = smb_full_audit_pread_recv,
- .write_fn = smb_full_audit_write,
.pwrite_fn = smb_full_audit_pwrite,
.pwrite_send_fn = smb_full_audit_pwrite_send,
.pwrite_recv_fn = smb_full_audit_pwrite_recv,
.sendfile_fn = smb_full_audit_sendfile,
.recvfile_fn = smb_full_audit_recvfile,
.rename_fn = smb_full_audit_rename,
- .fsync_fn = smb_full_audit_fsync,
.fsync_send_fn = smb_full_audit_fsync_send,
.fsync_recv_fn = smb_full_audit_fsync_recv,
.stat_fn = smb_full_audit_stat,
.file_id_create_fn = smb_full_audit_file_id_create,
.offload_read_send_fn = smb_full_audit_offload_read_send,
.offload_read_recv_fn = smb_full_audit_offload_read_recv,
- .copy_chunk_send_fn = smb_full_audit_copy_chunk_send,
- .copy_chunk_recv_fn = smb_full_audit_copy_chunk_recv,
+ .offload_write_send_fn = smb_full_audit_offload_write_send,
+ .offload_write_recv_fn = smb_full_audit_offload_write_recv,
.get_compression_fn = smb_full_audit_get_compression,
.set_compression_fn = smb_full_audit_set_compression,
.snap_check_path_fn = smb_full_audit_snap_check_path,
.brl_lock_windows_fn = smb_full_audit_brl_lock_windows,
.brl_unlock_windows_fn = smb_full_audit_brl_unlock_windows,
.brl_cancel_windows_fn = smb_full_audit_brl_cancel_windows,
- .strict_lock_fn = smb_full_audit_strict_lock,
- .strict_unlock_fn = smb_full_audit_strict_unlock,
+ .strict_lock_check_fn = smb_full_audit_strict_lock_check,
.translate_name_fn = smb_full_audit_translate_name,
.fsctl_fn = smb_full_audit_fsctl,
.get_dos_attributes_fn = smb_full_audit_get_dos_attributes,
.get_nt_acl_fn = smb_full_audit_get_nt_acl,
.fset_nt_acl_fn = smb_full_audit_fset_nt_acl,
.audit_file_fn = smb_full_audit_audit_file,
- .chmod_acl_fn = smb_full_audit_chmod_acl,
- .fchmod_acl_fn = smb_full_audit_fchmod_acl,
.sys_acl_get_file_fn = smb_full_audit_sys_acl_get_file,
.sys_acl_get_fd_fn = smb_full_audit_sys_acl_get_fd,
.sys_acl_blob_get_file_fn = smb_full_audit_sys_acl_blob_get_file,