return result;
}
+static int audit_renameat(vfs_handle_struct *handle,
+ files_struct *srcfsp,
+ const struct smb_filename *smb_fname_src,
+ files_struct *dstfsp,
+ const struct smb_filename *smb_fname_dst)
+{
+ int result;
+
+ result = SMB_VFS_NEXT_RENAMEAT(handle,
+ srcfsp,
+ smb_fname_src,
+ dstfsp,
+ smb_fname_dst);
+
+ if (lp_syslog() > 0) {
+ syslog(audit_syslog_priority(handle), "renameat %s -> %s %s%s\n",
+ smb_fname_src->base_name,
+ smb_fname_dst->base_name,
+ (result < 0) ? "failed: " : "",
+ (result < 0) ? strerror(errno) : "");
+ }
+ DEBUG(1, ("vfs_extd_audit: renameat old: %s newname: %s %s %s\n",
+ smb_fname_str_dbg(smb_fname_src),
+ smb_fname_str_dbg(smb_fname_dst),
+ (result < 0) ? "failed: " : "",
+ (result < 0) ? strerror(errno) : ""));
+
+ return result;
+}
+
static int audit_unlink(vfs_handle_struct *handle,
const struct smb_filename *smb_fname)
{
.open_fn = audit_open,
.close_fn = audit_close,
.rename_fn = audit_rename,
+ .renameat_fn = audit_renameat,
.unlink_fn = audit_unlink,
.chmod_fn = audit_chmod,
.fchmod_fn = audit_fchmod,