s3:smbd: add is_fake_file_path() that takes only the raw path as string
authorStefan Metzmacher <metze@samba.org>
Wed, 19 Aug 2009 07:57:47 +0000 (09:57 +0200)
committerStefan Metzmacher <metze@samba.org>
Wed, 19 Aug 2009 20:12:45 +0000 (22:12 +0200)
metze

source3/include/proto.h
source3/smbd/fake_file.c

index 963e6df0c80f8bc3cb388a7e63c2ba3d51c4d985..d022a9d13266dfb28da0b91756791b64b8f15801 100644 (file)
@@ -6297,6 +6297,7 @@ void reply_openerror(struct smb_request *req, NTSTATUS status);
 
 /* The following definitions come from smbd/fake_file.c  */
 
+enum FAKE_FILE_TYPE is_fake_file_path(const char *path);
 enum FAKE_FILE_TYPE is_fake_file(const struct smb_filename *smb_fname);
 NTSTATUS open_fake_file(struct smb_request *req, connection_struct *conn,
                                uint16_t current_vuid,
index 743d88f360c6d27d098c3611b01a4badf5cde7b4..6898793d29ee966193cbcde7d024619a31b825d0 100644 (file)
@@ -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.
 ****************************************************************************/