* fhandler.cc (fhandler_base::open): Set query access mode according

to query_open setting.
	(fhandler_base::fhandler_base): Initialize query_open.
	* fhandler.h (FH_QUERYOPEN): Drop.
	(enum query_state): Add.
	(class fhandler_base): Add query_open member.
	(fhandler_base::get_query_open): Redefine to use query_open.
	(fhandler_base::set_query_open): Ditto.
	* fhandler_disk_file.cc (fhandler_base::fstat_fs): Remove O_DIROPEN
	from open_flags since it's added in open_fs anyway.  Remove
	query_open_already.  Use new query_open settings.  Rearrange slightly.
	(fhandler_base::fstat_helper): Add get_io_handle as parameter to
	get_file_attribute.
	* security.cc (get_nt_object_attribute): Make returning an int.
	Return -1 on error, 0 otherwise.
	(get_file_attribute): Take an object handle as argument. Move down
	to allow calling get_nt_object_attribute in case a non-NULL handle
	is given.
	* security.h (get_file_attribute): Add handle to argument list.
	* syscalls.cc (chown_worker): Accomodate new definition of
	get_file_attribute.
This commit is contained in:
Corinna Vinschen
2004-04-08 07:57:28 +00:00
parent 284a55c33e
commit a9a5b2eab0
7 changed files with 94 additions and 63 deletions

View File

@ -443,7 +443,7 @@ fhandler_base::open (int flags, mode_t mode)
}
if (get_query_open ())
access = 0;
access = get_query_open () == query_read_control ? READ_CONTROL : 0;
else if (get_major () == DEV_TAPE_MAJOR)
access = GENERIC_READ | GENERIC_WRITE;
else if ((flags & (O_RDONLY | O_WRONLY | O_RDWR)) == O_RDONLY)
@ -1258,6 +1258,7 @@ fhandler_base::operator delete (void *p)
/* Normal I/O constructor */
fhandler_base::fhandler_base ():
status (0),
query_open (no_query),
access (0),
io_handle (NULL),
namehash (0),