diff options
author | Michael Adam <obnox@samba.org> | 2012-06-13 17:58:54 +0200 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2012-06-15 03:28:14 +0200 |
commit | 3309a5298835bf5bb379a62ca67c0d9577dbe65b (patch) | |
tree | ac58766ca6e75545287c1f11c392cb03760d6afa /source3 | |
parent | 0635af0a0808374c0e34582b153c0bbbbfac16d2 (diff) | |
download | samba-3309a5298835bf5bb379a62ca67c0d9577dbe65b.tar.gz samba-3309a5298835bf5bb379a62ca67c0d9577dbe65b.tar.bz2 samba-3309a5298835bf5bb379a62ca67c0d9577dbe65b.zip |
s3:lib: add a utility function "fsp_fnum_dbg" for logging the fnum of an fsp
This is to unify logging of an files_struct.
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Diffstat (limited to 'source3')
-rw-r--r-- | source3/include/proto.h | 1 | ||||
-rw-r--r-- | source3/lib/filename_util.c | 28 |
2 files changed, 29 insertions, 0 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h index d1d7131065..463d9807b8 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -1630,6 +1630,7 @@ NTSTATUS create_synthetic_smb_fname_split(TALLOC_CTX *ctx, struct smb_filename **smb_fname_out); 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); NTSTATUS copy_smb_filename(TALLOC_CTX *ctx, const struct smb_filename *smb_fname_in, struct smb_filename **smb_fname_out); diff --git a/source3/lib/filename_util.c b/source3/lib/filename_util.c index ba628a85c4..fe43be6dc2 100644 --- a/source3/lib/filename_util.c +++ b/source3/lib/filename_util.c @@ -132,6 +132,34 @@ const char *fsp_str_dbg(const struct files_struct *fsp) return smb_fname_str_dbg(fsp->fsp_name); } +/** + * Create a debug string for the fnum of an fsp. + * + * This is allocated to talloc_tos() or a string constant + * in certain corner cases. The returned string should + * hence not be free'd directly but only via the talloc stack. + */ +const char *fsp_fnum_dbg(const struct files_struct *fsp) +{ + char *str; + + if (fsp == NULL) { + return "fnum [fsp is NULL]"; + } + + if (fsp->fnum == FNUM_FIELD_INVALID) { + return "fnum [invalid value]"; + } + + str = talloc_asprintf(talloc_tos(), "fnum %d", fsp->fnum); + if (str == NULL) { + DEBUG(1, ("%s: talloc_asprintf failed\n", __FUNCTION__)); + return "fnum [talloc failed!]"; + } + + return str; +} + NTSTATUS copy_smb_filename(TALLOC_CTX *ctx, const struct smb_filename *smb_fname_in, struct smb_filename **smb_fname_out) |