summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2013-04-11 17:01:22 +0200
committerJeremy Allison <jra@samba.org>2013-04-17 14:49:57 -0700
commit766f04cebd08d5b7056171945a79b7a8cb4de198 (patch)
tree84e5c0450e7de405ca61008b07d39d84636e65f0
parentf50dedb8fb2c654d3e5dccba24fdf79a96525061 (diff)
downloadsamba-766f04cebd08d5b7056171945a79b7a8cb4de198.tar.gz
samba-766f04cebd08d5b7056171945a79b7a8cb4de198.tar.bz2
samba-766f04cebd08d5b7056171945a79b7a8cb4de198.zip
lib: Add synthetic_smb_fname
The interface of create_synthetic_smb_fname is just silly Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
-rw-r--r--source3/include/proto.h4
-rw-r--r--source3/lib/filename_util.c19
2 files changed, 23 insertions, 0 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 6bc151e888..5b9decdc1c 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -1605,6 +1605,10 @@ NTSTATUS create_synthetic_smb_fname_split(TALLOC_CTX *ctx,
const char *fname,
const SMB_STRUCT_STAT *psbuf,
struct smb_filename **smb_fname_out);
+struct smb_filename *synthetic_smb_fname(TALLOC_CTX *mem_ctx,
+ const char *base_name,
+ const char *stream_name,
+ const SMB_STRUCT_STAT *psbuf);
const char *smb_fname_str_dbg(const struct smb_filename *smb_fname);
const char *fsp_str_dbg(const struct files_struct *fsp);
const char *fsp_fnum_dbg(const struct files_struct *fsp);
diff --git a/source3/lib/filename_util.c b/source3/lib/filename_util.c
index 99cc114c18..2503e77764 100644
--- a/source3/lib/filename_util.c
+++ b/source3/lib/filename_util.c
@@ -75,6 +75,25 @@ NTSTATUS create_synthetic_smb_fname(TALLOC_CTX *ctx, const char *base_name,
return copy_smb_filename(ctx, &smb_fname_loc, smb_fname_out);
}
+struct smb_filename *synthetic_smb_fname(TALLOC_CTX *mem_ctx,
+ const char *base_name,
+ const char *stream_name,
+ const SMB_STRUCT_STAT *psbuf)
+{
+ struct smb_filename smb_fname_loc = { 0, };
+
+ /* Setup the base_name/stream_name. */
+ smb_fname_loc.base_name = discard_const_p(char, base_name);
+ smb_fname_loc.stream_name = discard_const_p(char, stream_name);
+
+ /* Copy the psbuf if one was given. */
+ if (psbuf)
+ smb_fname_loc.st = *psbuf;
+
+ /* Let copy_smb_filename() do the heavy lifting. */
+ return cp_smb_filename(mem_ctx, &smb_fname_loc);
+}
+
/**
* XXX: This is temporary and there should be no callers of this once
* smb_filename is plumbed through all path based operations.