From 766f04cebd08d5b7056171945a79b7a8cb4de198 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Thu, 11 Apr 2013 17:01:22 +0200 Subject: [PATCH] lib: Add synthetic_smb_fname The interface of create_synthetic_smb_fname is just silly Signed-off-by: Volker Lendecke Reviewed-by: Jeremy Allison --- source3/include/proto.h | 4 ++++ source3/lib/filename_util.c | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/source3/include/proto.h b/source3/include/proto.h index 6bc151e8886..5b9decdc1ca 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 99cc114c184..2503e77764c 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. -- 2.34.1