diff options
Diffstat (limited to 'source3/smbd/fake_file.c')
-rw-r--r-- | source3/smbd/fake_file.c | 36 |
1 files changed, 22 insertions, 14 deletions
diff --git a/source3/smbd/fake_file.c b/source3/smbd/fake_file.c index 743d88f360..6898793d29 100644 --- a/source3/smbd/fake_file.c +++ b/source3/smbd/fake_file.c @@ -71,38 +71,46 @@ static struct fake_file_handle *init_fake_file_handle(enum FAKE_FILE_TYPE type) Does this name match a fake filename ? ****************************************************************************/ -enum FAKE_FILE_TYPE is_fake_file(const struct smb_filename *smb_fname) +enum FAKE_FILE_TYPE is_fake_file_path(const char *path) { -#ifdef HAVE_SYS_QUOTAS int i; + + if (!path) { + return FAKE_FILE_TYPE_NONE; + } + + for (i=0;fake_files[i].name!=NULL;i++) { + if (strncmp(path,fake_files[i].name,strlen(fake_files[i].name))==0) { + DEBUG(5,("is_fake_file: [%s] is a fake file\n",path)); + return fake_files[i].type; + } + } + + return FAKE_FILE_TYPE_NONE; +} + +enum FAKE_FILE_TYPE is_fake_file(const struct smb_filename *smb_fname) +{ char *fname = NULL; NTSTATUS status; -#endif + enum FAKE_FILE_TYPE ret; if (!smb_fname) { return FAKE_FILE_TYPE_NONE; } -#ifdef HAVE_SYS_QUOTAS status = get_full_smb_filename(talloc_tos(), smb_fname, &fname); if (!NT_STATUS_IS_OK(status)) { return FAKE_FILE_TYPE_NONE; } - for (i=0;fake_files[i].name!=NULL;i++) { - if (strncmp(fname,fake_files[i].name,strlen(fake_files[i].name))==0) { - DEBUG(5,("is_fake_file: [%s] is a fake file\n",fname)); - TALLOC_FREE(fname); - return fake_files[i].type; - } - } + ret = is_fake_file_path(fname); + TALLOC_FREE(fname); -#endif - return FAKE_FILE_TYPE_NONE; + return ret; } - /**************************************************************************** Open a fake quota file with a share mode. ****************************************************************************/ |