[SCM] Samba Shared Repository - branch master updated -
release-4-0-0alpha7-2380-g5eac926
Tim Prouty
tprouty at samba.org
Thu Jun 18 03:14:08 GMT 2009
The branch, master has been updated
via 5eac92697ed1781e83be460d6ed7b29a154464a2 (commit)
via 4e3656b8d1d0bf8c0c4ade01332e7384ea890810 (commit)
via 5cfac1a1bd59712d7a771d3631e869c5d078a0f3 (commit)
from 78e316ddbc15c37604c84cb08dd13c95e2539d68 (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 5eac92697ed1781e83be460d6ed7b29a154464a2
Author: Tim Prouty <tprouty at samba.org>
Date: Wed Jun 17 19:54:12 2009 -0700
s3 onefs: Remove dfs resolution from create_file() now that it's being done at a higher level
commit 4e3656b8d1d0bf8c0c4ade01332e7384ea890810
Author: Tim Prouty <tprouty at samba.org>
Date: Tue Jun 16 12:01:13 2009 -0700
s3: Change SMB_VFS_OPEN to take an smb_filename struct
This was a little messy because of all of the vfs modules I had to
touch. Most of them were pretty straight forward, but the streams
modules required a little attention to handle smb_filename. Since the
use of smb_filename enables the vfs modules to access the raw,
over-the-wire stream, a little bit of the handling that was being done
by split_ntfs_stream_name has now been shifted into the individual
stream modules. It may be a little more code, but overall it gives
more flexibility to the streams modules, while also allowing correct
stream handling.
commit 5cfac1a1bd59712d7a771d3631e869c5d078a0f3
Author: Tim Prouty <tprouty at samba.org>
Date: Mon Jun 15 14:14:31 2009 -0700
s3: Plumb smb_filename from create_file all of the way down to fd_open
I used the smb_filename struct everywhere that was feasible for the
first pass. There are still some places in this path that need to be
changed to use smb_filename, but this is a good start.
I also:
- Removed fname/path arguments from a few functions that weren't
really using them.
- Added a utility function for detecting whether an smb_filename is a
stream.
-----------------------------------------------------------------------
Summary of changes:
examples/VFS/skel_opaque.c | 5 +-
examples/VFS/skel_transparent.c | 5 +-
source3/include/proto.h | 8 +-
source3/include/vfs.h | 7 +-
source3/modules/onefs_open.c | 32 +--
source3/modules/vfs_acl_tdb.c | 20 +-
source3/modules/vfs_acl_xattr.c | 20 +-
source3/modules/vfs_audit.c | 10 +-
source3/modules/vfs_cap.c | 22 ++-
source3/modules/vfs_catia.c | 18 +-
source3/modules/vfs_commit.c | 6 +-
source3/modules/vfs_default.c | 22 ++-
source3/modules/vfs_extd_audit.c | 12 +-
source3/modules/vfs_full_audit.c | 9 +-
source3/modules/vfs_onefs.c | 5 +-
source3/modules/vfs_onefs_shadow_copy.c | 11 +-
source3/modules/vfs_prealloc.c | 13 +-
source3/modules/vfs_preopen.c | 17 +-
source3/modules/vfs_shadow_copy2.c | 31 ++-
source3/modules/vfs_streams_depot.c | 111 ++++++--
source3/modules/vfs_streams_xattr.c | 117 ++++++---
source3/modules/vfs_syncops.c | 25 ++-
source3/smbd/file_access.c | 25 ++-
source3/smbd/filename.c | 5 +-
source3/smbd/nttrans.c | 28 ++
source3/smbd/open.c | 443 +++++++++++++++++--------------
source3/torture/cmd_vfs.c | 13 +-
27 files changed, 681 insertions(+), 359 deletions(-)
Changeset truncated at 500 lines:
diff --git a/examples/VFS/skel_opaque.c b/examples/VFS/skel_opaque.c
index 118a5b9..d1000f1 100644
--- a/examples/VFS/skel_opaque.c
+++ b/examples/VFS/skel_opaque.c
@@ -122,9 +122,10 @@ static int skel_closedir(vfs_handle_struct *handle, SMB_STRUCT_DIR *dir)
return vfswrap_closedir(NULL, dir);
}
-static int skel_open(vfs_handle_struct *handle, const char *fname, files_struct *fsp, int flags, mode_t mode)
+static int skel_open(vfs_handle_struct *handle, struct smb_fname *smb_fname,
+ files_struct *fsp, int flags, mode_t mode)
{
- return vfswrap_open(NULL, fname, flags, mode);
+ return vfswrap_open(NULL, smb_fname, flags, mode);
}
static int skel_close(vfs_handle_struct *handle, files_struct *fsp)
diff --git a/examples/VFS/skel_transparent.c b/examples/VFS/skel_transparent.c
index a95b5ae..101951b 100644
--- a/examples/VFS/skel_transparent.c
+++ b/examples/VFS/skel_transparent.c
@@ -116,9 +116,10 @@ static int skel_closedir(vfs_handle_struct *handle, SMB_STRUCT_DIR *dir)
return SMB_VFS_NEXT_CLOSEDIR(handle, dir);
}
-static int skel_open(vfs_handle_struct *handle, const char *fname, files_struct *fsp, int flags, mode_t mode)
+static int skel_open(vfs_handle_struct *handle, struct smb_filename *smb_fname,
+ files_struct *fsp, int flags, mode_t mode)
{
- return SMB_VFS_NEXT_OPEN(handle, fname, fsp, flags, mode);
+ return SMB_VFS_NEXT_OPEN(handle, smb_fname, fsp, flags, mode);
}
static int skel_close(vfs_handle_struct *handle, files_struct *fsp)
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 1c7ba87..4ae141e 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -6337,7 +6337,8 @@ NTSTATUS close_fake_file(struct smb_request *req, files_struct *fsp);
bool can_access_file_acl(struct connection_struct *conn,
const char * fname,
uint32_t access_mask);
-bool can_delete_file_in_directory(connection_struct *conn, const char *fname);
+bool can_delete_file_in_directory(connection_struct *conn,
+ const struct smb_filename *smb_fname);
bool can_access_file_data(connection_struct *conn, const char *fname, SMB_STRUCT_STAT *psbuf, uint32 access_mask);
bool can_write_to_file(connection_struct *conn, const char *fname, SMB_STRUCT_STAT *psbuf);
bool directory_has_default_acl(connection_struct *conn, const char *fname);
@@ -6581,6 +6582,8 @@ void send_nt_replies(connection_struct *conn,
char *params, int paramsize,
char *pdata, int datasize);
bool is_ntfs_stream_name(const char *fname);
+bool is_ntfs_stream_smb_fname(const struct smb_filename *smb_fname);
+bool is_ntfs_default_stream_smb_fname(const struct smb_filename *smb_fname);
void reply_ntcreate_and_X(struct smb_request *req);
void reply_ntcancel(struct smb_request *req);
void reply_ntrename(struct smb_request *req);
@@ -6606,7 +6609,6 @@ bool is_stat_open(uint32 access_mask);
bool request_timed_out(struct timeval request_time,
struct timeval timeout);
bool open_match_attributes(connection_struct *conn,
- const char *path,
uint32 old_dos_attr,
uint32 new_dos_attr,
mode_t existing_unx_mode,
@@ -6662,7 +6664,7 @@ NTSTATUS create_file_default(connection_struct *conn,
NTSTATUS get_relative_fid_filename(connection_struct *conn,
struct smb_request *req,
uint16_t root_dir_fid,
- const char *fname, char **new_fname);
+ struct smb_filename *smb_fname);
/* The following definitions come from smbd/oplock.c */
diff --git a/source3/include/vfs.h b/source3/include/vfs.h
index e0e0228..53a4798 100644
--- a/source3/include/vfs.h
+++ b/source3/include/vfs.h
@@ -117,7 +117,8 @@
/* Leave at 25 - not yet released. Add init_search_op call. - sdann */
/* Leave at 25 - not yet released. Add locking calls. -- zkirsch. */
/* Leave at 25 - not yet released. Add strict locking calls. -- drichards. */
-/* Changed to version 26 - Plumb struct smb_filename to SMB_VFS_CREATE_FILE. */
+/* Changed to version 26 - Plumb struct smb_filename to SMB_VFS_CREATE_FILE,
+ SMB_VFS_OPEN. */
#define SMB_VFS_INTERFACE_VERSION 26
@@ -330,7 +331,9 @@ struct vfs_ops {
/* File operations */
- int (*open)(struct vfs_handle_struct *handle, const char *fname, files_struct *fsp, int flags, mode_t mode);
+ int (*open)(struct vfs_handle_struct *handle,
+ struct smb_filename *smb_fname, files_struct *fsp,
+ int flags, mode_t mode);
NTSTATUS (*create_file)(struct vfs_handle_struct *handle,
struct smb_request *req,
uint16_t root_dir_fid,
diff --git a/source3/modules/onefs_open.c b/source3/modules/onefs_open.c
index c773f9e..8b6ae20 100644
--- a/source3/modules/onefs_open.c
+++ b/source3/modules/onefs_open.c
@@ -685,8 +685,7 @@ NTSTATUS onefs_open_file_ntcreate(connection_struct *conn,
if (!posix_open && file_existed &&
((create_disposition == FILE_OVERWRITE) ||
(create_disposition == FILE_OVERWRITE_IF))) {
- if (!open_match_attributes(conn, fname,
- existing_dos_attributes,
+ if (!open_match_attributes(conn, existing_dos_attributes,
new_dos_attributes, psbuf->st_ex_mode,
unx_mode, &new_unx_mode)) {
DEBUG(5, ("onefs_open_file_ntcreate: attributes "
@@ -2018,36 +2017,11 @@ NTSTATUS onefs_create_file(vfs_handle_struct *handle,
/* Get the file name if root_dir_fid was specified. */
if (root_dir_fid != 0) {
- char *new_fname;
-
status = get_relative_fid_filename(conn, req, root_dir_fid,
- fname, &new_fname);
- if (!NT_STATUS_IS_OK(status)) {
- goto fail;
- }
-
- fname = new_fname;
- }
-
- /* Resolve the file name if this was a DFS pathname. */
- if ((req != NULL) && (req->flags2 & FLAGS2_DFS_PATHNAMES)) {
- char *resolved_fname;
-
- status = resolve_dfspath(talloc_tos(), conn, true,
- smb_fname->base_name,
- &resolved_fname);
-
+ smb_fname);
if (!NT_STATUS_IS_OK(status)) {
- /*
- * For PATH_NOT_COVERED we had
- * reply_botherror(req, NT_STATUS_PATH_NOT_COVERED,
- * ERRSRV, ERRbadpath);
- * Need to fix in callers
- */
goto fail;
}
- TALLOC_FREE(smb_fname->base_name);
- smb_fname->base_name = resolved_fname;
}
status = get_full_smb_filename(talloc_tos(), smb_fname, &fname);
@@ -2056,7 +2030,7 @@ NTSTATUS onefs_create_file(vfs_handle_struct *handle,
}
/* All file access must go through check_name() */
- status = check_name(conn, fname);
+ status = check_name(conn, smb_fname->base_name);
if (!NT_STATUS_IS_OK(status)) {
goto fail;
}
diff --git a/source3/modules/vfs_acl_tdb.c b/source3/modules/vfs_acl_tdb.c
index 463250a..e0a5b14 100644
--- a/source3/modules/vfs_acl_tdb.c
+++ b/source3/modules/vfs_acl_tdb.c
@@ -549,7 +549,7 @@ static NTSTATUS inherit_new_acl(vfs_handle_struct *handle,
*********************************************************************/
static int open_acl_tdb(vfs_handle_struct *handle,
- const char *fname,
+ struct smb_filename *smb_fname,
files_struct *fsp,
int flags,
mode_t mode)
@@ -557,7 +557,17 @@ static int open_acl_tdb(vfs_handle_struct *handle,
uint32_t access_granted = 0;
struct security_descriptor *pdesc = NULL;
bool file_existed = true;
- NTSTATUS status = get_nt_acl_tdb_internal(handle,
+ char *fname = NULL;
+ NTSTATUS status;
+
+ status = get_full_smb_filename(talloc_tos(), smb_fname,
+ &fname);
+ if (!NT_STATUS_IS_OK(status)) {
+ errno = map_errno_from_nt_status(status);
+ return -1;
+ }
+
+ status = get_nt_acl_tdb_internal(handle,
NULL,
fname,
(OWNER_SECURITY_INFORMATION |
@@ -573,7 +583,7 @@ static int open_acl_tdb(vfs_handle_struct *handle,
if (!NT_STATUS_IS_OK(status)) {
DEBUG(10,("open_acl_tdb: file %s open "
"refused with error %s\n",
- fname,
+ smb_fname_str_dbg(smb_fname),
nt_errstr(status) ));
errno = map_errno_from_nt_status(status);
return -1;
@@ -584,10 +594,10 @@ static int open_acl_tdb(vfs_handle_struct *handle,
DEBUG(10,("open_acl_tdb: get_nt_acl_attr_internal for "
"file %s returned %s\n",
- fname,
+ smb_fname_str_dbg(smb_fname),
nt_errstr(status) ));
- fsp->fh->fd = SMB_VFS_NEXT_OPEN(handle, fname, fsp, flags, mode);
+ fsp->fh->fd = SMB_VFS_NEXT_OPEN(handle, smb_fname, fsp, flags, mode);
if (!file_existed && fsp->fh->fd != -1) {
/* File was created. Inherit from parent directory. */
diff --git a/source3/modules/vfs_acl_xattr.c b/source3/modules/vfs_acl_xattr.c
index 05156f8..efcc877 100644
--- a/source3/modules/vfs_acl_xattr.c
+++ b/source3/modules/vfs_acl_xattr.c
@@ -417,7 +417,7 @@ static NTSTATUS inherit_new_acl(vfs_handle_struct *handle,
*********************************************************************/
static int open_acl_xattr(vfs_handle_struct *handle,
- const char *fname,
+ struct smb_filename *smb_fname,
files_struct *fsp,
int flags,
mode_t mode)
@@ -425,7 +425,17 @@ static int open_acl_xattr(vfs_handle_struct *handle,
uint32_t access_granted = 0;
struct security_descriptor *pdesc = NULL;
bool file_existed = true;
- NTSTATUS status = get_nt_acl_xattr_internal(handle,
+ char *fname = NULL;
+ NTSTATUS status;
+
+ status = get_full_smb_filename(talloc_tos(), smb_fname,
+ &fname);
+ if (!NT_STATUS_IS_OK(status)) {
+ errno = map_errno_from_nt_status(status);
+ return -1;
+ }
+
+ status = get_nt_acl_xattr_internal(handle,
NULL,
fname,
(OWNER_SECURITY_INFORMATION |
@@ -441,7 +451,7 @@ static int open_acl_xattr(vfs_handle_struct *handle,
if (!NT_STATUS_IS_OK(status)) {
DEBUG(10,("open_acl_xattr: file %s open "
"refused with error %s\n",
- fname,
+ smb_fname_str_dbg(smb_fname),
nt_errstr(status) ));
errno = map_errno_from_nt_status(status);
return -1;
@@ -452,10 +462,10 @@ static int open_acl_xattr(vfs_handle_struct *handle,
DEBUG(10,("open_acl_xattr: get_nt_acl_attr_internal for "
"file %s returned %s\n",
- fname,
+ smb_fname_str_dbg(smb_fname),
nt_errstr(status) ));
- fsp->fh->fd = SMB_VFS_NEXT_OPEN(handle, fname, fsp, flags, mode);
+ fsp->fh->fd = SMB_VFS_NEXT_OPEN(handle, smb_fname, fsp, flags, mode);
if (!file_existed && fsp->fh->fd != -1) {
/* File was created. Inherit from parent directory. */
diff --git a/source3/modules/vfs_audit.c b/source3/modules/vfs_audit.c
index 4000580..2897cef 100644
--- a/source3/modules/vfs_audit.c
+++ b/source3/modules/vfs_audit.c
@@ -33,7 +33,7 @@ static void audit_disconnect(vfs_handle_struct *handle);
static SMB_STRUCT_DIR *audit_opendir(vfs_handle_struct *handle, const char *fname, const char *mask, uint32 attr);
static int audit_mkdir(vfs_handle_struct *handle, const char *path, mode_t mode);
static int audit_rmdir(vfs_handle_struct *handle, const char *path);
-static int audit_open(vfs_handle_struct *handle, const char *fname, files_struct *fsp, int flags, mode_t mode);
+static int audit_open(vfs_handle_struct *handle, struct smb_filename *smb_fname, files_struct *fsp, int flags, mode_t mode);
static int audit_close(vfs_handle_struct *handle, files_struct *fsp);
static int audit_rename(vfs_handle_struct *handle, const char *oldname, const char *newname);
static int audit_unlink(vfs_handle_struct *handle, const char *path);
@@ -187,14 +187,16 @@ static int audit_rmdir(vfs_handle_struct *handle, const char *path)
return result;
}
-static int audit_open(vfs_handle_struct *handle, const char *fname, files_struct *fsp, int flags, mode_t mode)
+static int audit_open(vfs_handle_struct *handle,
+ struct smb_filename *smb_fname, files_struct *fsp,
+ int flags, mode_t mode)
{
int result;
- result = SMB_VFS_NEXT_OPEN(handle, fname, fsp, flags, mode);
+ result = SMB_VFS_NEXT_OPEN(handle, smb_fname, fsp, flags, mode);
syslog(audit_syslog_priority(handle), "open %s (fd %d) %s%s%s\n",
- fname, result,
+ smb_fname_str_dbg(smb_fname), result,
((flags & O_WRONLY) || (flags & O_RDWR)) ? "for writing " : "",
(result < 0) ? "failed: " : "",
(result < 0) ? strerror(errno) : "");
diff --git a/source3/modules/vfs_cap.c b/source3/modules/vfs_cap.c
index e26d29d..4525fa1 100644
--- a/source3/modules/vfs_cap.c
+++ b/source3/modules/vfs_cap.c
@@ -106,16 +106,30 @@ static int cap_rmdir(vfs_handle_struct *handle, const char *path)
return SMB_VFS_NEXT_RMDIR(handle, cappath);
}
-static int cap_open(vfs_handle_struct *handle, const char *fname, files_struct *fsp, int flags, mode_t mode)
+static int cap_open(vfs_handle_struct *handle, struct smb_filename *smb_fname,
+ files_struct *fsp, int flags, mode_t mode)
{
- char *cappath = capencode(talloc_tos(), fname);
+ char *cappath;
+ char *tmp_base_name = NULL;
+ int ret;
+
+ cappath = capencode(talloc_tos(), smb_fname->base_name);
if (!cappath) {
errno = ENOMEM;
return -1;
}
- DEBUG(3,("cap: cap_open for %s\n", fname));
- return SMB_VFS_NEXT_OPEN(handle, cappath, fsp, flags, mode);
+
+ tmp_base_name = smb_fname->base_name;
+ smb_fname->base_name = cappath;
+
+ DEBUG(3,("cap: cap_open for %s\n", smb_fname_str_dbg(smb_fname)));
+ ret = SMB_VFS_NEXT_OPEN(handle, smb_fname, fsp, flags, mode);
+
+ smb_fname->base_name = tmp_base_name;
+ TALLOC_FREE(cappath);
+
+ return ret;
}
static int cap_rename(vfs_handle_struct *handle, const char *oldname, const char *newname)
diff --git a/source3/modules/vfs_catia.c b/source3/modules/vfs_catia.c
index 2870254..8d1c87a 100644
--- a/source3/modules/vfs_catia.c
+++ b/source3/modules/vfs_catia.c
@@ -133,18 +133,30 @@ static SMB_STRUCT_DIRENT *catia_readdir(vfs_handle_struct *handle,
}
static int catia_open(vfs_handle_struct *handle,
- const char *fname,
+ struct smb_filename *smb_fname,
files_struct *fsp,
int flags,
mode_t mode)
{
- char *name = to_unix(talloc_tos(), fname);
+ char *name;
+ char *tmp_base_name;
+ int ret;
+ name = to_unix(talloc_tos(), smb_fname->base_name);
if (!name) {
errno = ENOMEM;
return -1;
}
- return SMB_VFS_NEXT_OPEN(handle, name, fsp, flags, mode);
+
+ tmp_base_name = smb_fname->base_name;
+ smb_fname->base_name = name;
+
+ ret = SMB_VFS_NEXT_OPEN(handle, name, fsp, flags, mode);
+
+ smb_fname->base_name = tmp_base_name;
+ TALLOC_FREE(name);
+
+ return ret;
}
static int catia_rename(vfs_handle_struct *handle,
diff --git a/source3/modules/vfs_commit.c b/source3/modules/vfs_commit.c
index c22e816..6c36322 100644
--- a/source3/modules/vfs_commit.c
+++ b/source3/modules/vfs_commit.c
@@ -167,7 +167,7 @@ static int commit_connect(
static int commit_open(
vfs_handle_struct * handle,
- const char * fname,
+ struct smb_filename *smb_fname,
files_struct * fsp,
int flags,
mode_t mode)
@@ -179,7 +179,7 @@ static int commit_open(
/* Don't bother with read-only files. */
if ((flags & O_ACCMODE) == O_RDONLY) {
- return SMB_VFS_NEXT_OPEN(handle, fname, fsp, flags, mode);
+ return SMB_VFS_NEXT_OPEN(handle, smb_fname, fsp, flags, mode);
}
/* Read and check module configuration */
@@ -208,7 +208,7 @@ static int commit_open(
}
}
- fd = SMB_VFS_NEXT_OPEN(handle, fname, fsp, flags, mode);
+ fd = SMB_VFS_NEXT_OPEN(handle, smb_fname, fsp, flags, mode);
if (fd == -1) {
VFS_REMOVE_FSP_EXTENSION(handle, fsp);
return fd;
diff --git a/source3/modules/vfs_default.c b/source3/modules/vfs_default.c
index 28adce5..0e7ba05 100644
--- a/source3/modules/vfs_default.c
+++ b/source3/modules/vfs_default.c
@@ -214,13 +214,31 @@ static void vfswrap_init_search_op(vfs_handle_struct *handle,
/* File operations */
-static int vfswrap_open(vfs_handle_struct *handle, const char *fname,
- files_struct *fsp, int flags, mode_t mode)
+static int vfswrap_open(vfs_handle_struct *handle,
+ struct smb_filename *smb_fname,
+ files_struct *fsp, int flags, mode_t mode)
{
int result;
+ NTSTATUS status;
+ char *fname = NULL;
START_PROFILE(syscall_open);
+
+ /*
+ * XXX: Should an error be returned if there is a stream rather than
+ * trying to open a filename with a ':'?
+ */
+ status = get_full_smb_filename(talloc_tos(), smb_fname,
+ &fname);
+ if (!NT_STATUS_IS_OK(status)) {
+ errno = map_errno_from_nt_status(status);
+ return -1;
+ }
+
result = sys_open(fname, flags, mode);
+
+ TALLOC_FREE(fname);
+
END_PROFILE(syscall_open);
return result;
}
diff --git a/source3/modules/vfs_extd_audit.c b/source3/modules/vfs_extd_audit.c
index b59a780..763f154 100644
--- a/source3/modules/vfs_extd_audit.c
+++ b/source3/modules/vfs_extd_audit.c
@@ -36,7 +36,7 @@ static void audit_disconnect(vfs_handle_struct *handle);
static SMB_STRUCT_DIR *audit_opendir(vfs_handle_struct *handle, const char *fname, const char *mask, uint32 attr);
static int audit_mkdir(vfs_handle_struct *handle, const char *path, mode_t mode);
static int audit_rmdir(vfs_handle_struct *handle, const char *path);
-static int audit_open(vfs_handle_struct *handle, const char *fname, files_struct *fsp, int flags, mode_t mode);
+static int audit_open(vfs_handle_struct *handle, struct smb_filename *smb_fname, files_struct *fsp, int flags, mode_t mode);
static int audit_close(vfs_handle_struct *handle, files_struct *fsp);
static int audit_rename(vfs_handle_struct *handle, const char *oldname, const char *newname);
static int audit_unlink(vfs_handle_struct *handle, const char *path);
@@ -216,21 +216,23 @@ static int audit_rmdir(vfs_handle_struct *handle, const char *path)
return result;
}
-static int audit_open(vfs_handle_struct *handle, const char *fname, files_struct *fsp, int flags, mode_t mode)
+static int audit_open(vfs_handle_struct *handle,
+ struct smb_filename *smb_fname, files_struct *fsp,
+ int flags, mode_t mode)
{
int result;
- result = SMB_VFS_NEXT_OPEN(handle, fname, fsp, flags, mode);
+ result = SMB_VFS_NEXT_OPEN(handle, smb_fname, fsp, flags, mode);
if (lp_syslog() > 0) {
syslog(audit_syslog_priority(handle), "open %s (fd %d) %s%s%s\n",
- fname, result,
+ smb_fname_str_dbg(smb_fname), result,
((flags & O_WRONLY) || (flags & O_RDWR)) ? "for writing " : "",
(result < 0) ? "failed: " : "",
(result < 0) ? strerror(errno) : "");
}
DEBUG(2, ("vfs_extd_audit: open %s %s %s\n",
- fname,
+ smb_fname_str_dbg(smb_fname),
(result < 0) ? "failed: " : "",
(result < 0) ? strerror(errno) : ""));
diff --git a/source3/modules/vfs_full_audit.c b/source3/modules/vfs_full_audit.c
index e2d08b4..5558b2f 100644
--- a/source3/modules/vfs_full_audit.c
+++ b/source3/modules/vfs_full_audit.c
@@ -111,7 +111,7 @@ static int smb_full_audit_closedir(vfs_handle_struct *handle,
static void smb_full_audit_init_search_op(vfs_handle_struct *handle,
SMB_STRUCT_DIR *dirp);
static int smb_full_audit_open(vfs_handle_struct *handle,
- const char *fname, files_struct *fsp, int flags, mode_t mode);
+ struct smb_filename *smb_fnmae, files_struct *fsp, int flags, mode_t mode);
static NTSTATUS smb_full_audit_create_file(vfs_handle_struct *handle,
struct smb_request *req,
--
Samba Shared Repository
More information about the samba-cvs
mailing list