* pipe.cc (fhandler_pipe::init): Move more intelligence here. (fhandler_pipe::create): Simplify based on above change. * tty.cc (tty_list::allocate): Remove non-NT code.
		
			
				
	
	
		
			2770 lines
		
	
	
		
			105 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			2770 lines
		
	
	
		
			105 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 2007-12-30  Dave Korn  <dave.korn@artimi.com>
 | |
| 
 | |
| 	* cygwin.din (_f_llrint, _f_llrintf, _f_llrintl, _f_lrint, _f_lrintf,
 | |
| 	_f_lrintl, _f_rint, _f_rintf, _f_rintl):  Export fast *rint* functions.
 | |
| 	(lrint, lrintf, rint, rintf):  Redirect exports to alias _f_ versions.
 | |
| 	(llrint, llrintf, llrintl, lrintl, rintl):  Add exports aliasing _f_*
 | |
| 	versions likewise.
 | |
| 	* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR):  Bump.
 | |
| 
 | |
| 2007-12-22  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (class fhandler_dev_random): Add dummy_offset member.
 | |
| 	* fhandler_random.cc (fhandler_dev_random::lseek): Fake seeking
 | |
| 	capability as on Linux.
 | |
| 
 | |
| 2007-12-20  Eric Blake  <ebb9@byu.net>
 | |
| 
 | |
| 	* libc/memmem.cc (memmem): Fix bug when searching for empty string.
 | |
| 
 | |
| 2007-12-19  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygwin.din: Export wcpcpy, wcpncpy.
 | |
| 	* include/cygwin/version.h: Bump API minor number.
 | |
| 
 | |
| 2007-12-16  Christopher Faylor  <me+cygwin@cgf.cx>
 | |
| 
 | |
| 	* dtable.cc (POSIX_NAMED_PIPE): New define.
 | |
| 	(POSIX_NAMED_PIPE_LEN): Ditto.
 | |
| 	(dtable::add_archetype): Use crealloc_abort.
 | |
| 	(dtable::init_std_file_from_handle): Specifically detect pipe
 | |
| 	stdin/stdout.  Pass name to build_fh_dev so that proper name is
 | |
| 	recorded.  Use binmode of fh if it is set before using
 | |
| 	get_default_mode.  Set proper read/write access when calling init().
 | |
| 	(handle_to_fn): Handle pipes.
 | |
| 	* fhandler.cc (fhandler_base::wait_overlapped): Add some debugging.
 | |
| 	* fhandler.h (fhandler_base::set_name): Default to just setting the
 | |
| 	path_conv name.
 | |
| 	(fhandler_pipe::init): Declare.
 | |
| 	* pipe.cc (struct pipesync): New struct.
 | |
| 	(getov_result): New function.  Blocks and retrieves the result of an
 | |
| 	overlay I/O operation.
 | |
| 	(pipe_handler): New function.
 | |
| 	(pipesync::pipesync): New function.  Initializer for pipesync struct.
 | |
| 	(handler_pipe::init): Define.  Detects attempts to set up a "native"
 | |
| 	pipe fhandler and creates a thread which accepts input from or output
 | |
| 	to the non-cygwin pipe, creating a cygwin pipe wrapper around the
 | |
| 	non-cygwin pipe.
 | |
| 	(fhandler_pipe::create): Add pipe-specific flags to call to init().
 | |
| 
 | |
| 	* exceptions.cc (ctrl_c_handler): Lock process while we determine what
 | |
| 	to do.
 | |
| 
 | |
| 2007-12-14  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* include/cygwin/socket.h: Include sys/uio.h instead of cygwin/uio.h.
 | |
| 	* include/cygwin/uio.h: Remove.
 | |
| 
 | |
| 2007-12-14  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* dtable.cc (dtable::set_file_pointers_for_exec): Reenable.  Fix
 | |
| 	comment.
 | |
| 	* spawn.cc (spawn_guts): Call cygheap->fdtab.set_file_pointers_for_exec
 | |
| 	only for non-Cygwin processes.
 | |
| 
 | |
| 2007-12-13  Craig MacGregor  <cmacgreg@gmail.com>
 | |
| 	    Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* poll.cc (poll): Return count of fds with events instead of total
 | |
| 	event count.
 | |
| 
 | |
| 2007-12-13  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* string.h: Guard cygwin internal string function definitions with
 | |
| 	__INSIDE_CYGWIN__.
 | |
| 
 | |
| 2007-12-12  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* dcrt0.cc: Include string.h.
 | |
| 	(initial_env): Use small_printf's %P specifier.
 | |
| 	* dll_init.cc (dll_list::alloc): Use PATH_MAX instead of CYG_MAX_PATH
 | |
| 	for path name buffer size.
 | |
| 	* dll_init.h (struct dll): Ditto.
 | |
| 	* environ.cc: Include string.h.
 | |
| 	(win_env::add_cache): Use temporary local buffer for path conversion.
 | |
| 	(posify): Ditto.
 | |
| 	* exceptions.cc (try_to_debug): Use CreateProcessW to allow long path
 | |
| 	names.
 | |
| 	* miscfuncs.cc: Drop unused implementations of strcasematch and
 | |
| 	strncasematch.
 | |
| 	(ch_case_eq): Drop.
 | |
| 	(strcasestr): Drop.
 | |
| 	(cygwin_wcscasecmp): New function.
 | |
| 	(cygwin_wcsncasecmp): New function.
 | |
| 	(cygwin_strcasecmp): New function.
 | |
| 	(cygwin_strncasecmp): New function.
 | |
| 	(cygwin_wcslwr): New function.
 | |
| 	(cygwin_wcsupr): New function.
 | |
| 	(cygwin_strlwr): New function.
 | |
| 	(cygwin_strupr): New function.
 | |
| 	* ntdll.h (RtlDowncaseUnicodeString): Declare.
 | |
| 	(RtlUpcaseUnicodeString): Declare.
 | |
| 	(RtlInt64ToHexUnicodeString): Fix typo in comment.
 | |
| 	* string.h: Disable not NLS aware implementations of strcasematch
 | |
| 	and strncasematch.
 | |
| 	(cygwin_strcasecmp): Declare.
 | |
| 	(strcasecmp): Define as cygwin_strcasecmp.
 | |
| 	(cygwin_strncasecmp): Declare.
 | |
| 	(strncasecmp): Define as cygwin_strncasecmp.
 | |
| 	(strcasematch):Define using cygwin_strcasecmp.
 | |
| 	(strncasematch):Define using cygwin_strncasecmp.
 | |
| 	(cygwin_strlwr): Declare.
 | |
| 	(strlwr): Define as cygwin_strlwr.
 | |
| 	(cygwin_strupr): Declare.
 | |
| 	(strupr): Define as cygwin_strupr.
 | |
| 	* wchar.h: New file.
 | |
| 	* wincap.cc (wincapc::init): Use "NT" as fix OS string.
 | |
| 	* winsup.h (strcasematch): Drop declaration.
 | |
| 	(strncasematch): Ditto.
 | |
| 	(strcasestr): Ditto.
 | |
| 
 | |
| 2007-12-11  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_base::fstat_helper): Fix R/O bit
 | |
| 	handling on filesystems without ACL support.
 | |
| 
 | |
| 2007-12-11  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* localtime.cc (tzset): Guard by a muto for thread safety.
 | |
| 
 | |
| 2007-12-11  Dave Korn  <dave.korn@artimi.com>
 | |
| 
 | |
| 	* cygheap.cc (_csbrk):  Don't request zero bytes from VirtualAlloc,
 | |
| 	as windows treats that as an invalid parameter and returns an error.
 | |
| 
 | |
| 2007-12-11  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* localtime.cc (tzset): Call tzsetwall only if it hasn't been
 | |
| 	called before.
 | |
| 
 | |
| 2007-12-07  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* include/sys/cygwin.h: Include limits.h.
 | |
| 
 | |
| 2007-12-06  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* dcrt0.cc (initial_env): Use PATH_MAX instead of CYG_MAX_PATH for path
 | |
| 	name buffer size.
 | |
| 	(dll_crt0_1): Allocate new_argv0 with PATH_MAX size.
 | |
| 	* exceptions.cc (debugger_command): Set size to 2 * PATH_MAX + 20;
 | |
| 	(error_start_init): Use PATH_MAX instead of CYG_MAX_PATH for path
 | |
| 	name buffer size.
 | |
| 	* external.cc (fillout_pinfo): Always fill out ep.progname 0-terminated.
 | |
| 	Fill out ep.progname_long.
 | |
| 	* fhandler_process.cc (fhandler_process::fill_filebuf): Allocate
 | |
| 	buffer for executable filename with PATH_MAX size.
 | |
| 	* pinfo.cc: Throughout use PATH_MAX instead of CYG_MAX_PATH.
 | |
| 	* pinfo.h (class _pinfo): Set progname size to PATH_MAX.
 | |
| 	* smallprint.cc: Include limits.h.  Use PATH_MAX instead of CYG_MAX_PATH
 | |
| 	for path name buffer size.
 | |
| 	* strace.cc (strace::vsprntf): Ditto.
 | |
| 	* include/sys/cygwin.h (EXTERNAL_PINFO_VERSION_32_LP): Define.
 | |
| 	(EXTERNAL_PINFO_VERSION): Set to EXTERNAL_PINFO_VERSION_32_LP.
 | |
| 	(struct external_pinfo): Add progname_long member.
 | |
| 	* include/sys/dirent.h: Correctly include limits.h instead of
 | |
| 	sys/limits.h.
 | |
| 
 | |
| 2007-12-05  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_tty.cc (fhandler_tty_slave::open): Use MAX_PATH instead of
 | |
| 	CYG_MAX_PATH for event name buffer size.
 | |
| 	(fhandler_pty_master::setup): Use MAX_PATH instead of CYG_MAX_PATH for
 | |
| 	mutex name buffer size.
 | |
| 	* netdb.cc: Drop old comment.
 | |
| 	(open_system_file): Set path buffer size to MAX_PATH instead of
 | |
| 	CYG_MAX_PATH.  Drop conversion to posix path.  Open file using win32
 | |
| 	path.
 | |
| 
 | |
| 2007-12-05  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_registry.cc: Use NAME_MAX + 1 instead of CYG_MAX_PATH
 | |
| 	throughout for subkey name buffer size.
 | |
| 	* fhandler_socket.cc (search_wsa_event_slot): Use MAX_PATH instead of
 | |
| 	CYG_MAX_PATH for mutex name buffer size.
 | |
| 	(fhandler_socket::init_events): Ditto.
 | |
| 	* fhandler_virtual.cc (fhandler_virtual::opendir): Check path length
 | |
| 	against PATH_MAX instead of against CYG_MAX_PATH.
 | |
| 	* registry.cc (get_registry_hive_path): Use PATH_MAX instead of
 | |
| 	CYG_MAX_PATH for registry value path buffer size.
 | |
| 	* shared.cc (open_shared): Use MAX_PATH instead of CYG_MAX_PATH
 | |
| 	for shared memory name buffer size.
 | |
| 	* thread.cc (semaphore::semaphore): Use MAX_PATH instead of CYG_MAX_PATH
 | |
| 	for semaphore name buffer size.
 | |
| 	* uinfo.cc (cygheap_user::env_userprofile): Use PATH_MAX instead of
 | |
| 	CYG_MAX_PATH for temporary path name buffer size.
 | |
| 	* winf.h (LINE_BUF_CHUNK): Define as MAX_PATH * 2.
 | |
| 	* include/sys/dirent.h: Include sys/limits.h.  Define name buffer sizes
 | |
| 	using NAME_MAX.
 | |
| 
 | |
| 2007-12-04  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_fifo.cc (fhandler_fifo::open): Use MAX_NAME for pipe name
 | |
| 	buffer size.
 | |
| 	(fhandler_fifo::fstatvfs): Use same technique as in fhandler_socket.
 | |
| 	* fhandler_proc.cc (format_proc_partitions): Use NAME_MAX+1 for
 | |
| 	device name buffer size.  Use MAX_PATH for device path buffer size.
 | |
| 
 | |
| 2007-12-03  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* autoload.cc (GetModuleFileNameExW): Replace definition of
 | |
| 	GetModuleFileNameExA.
 | |
| 	* fhandler_process.cc (format_process_maps): Change modname type to
 | |
| 	WCHAR.  Set buffer sizes to PATH_MAX.  Call GetModuleFileNameExW
 | |
| 	instead of GetModuleFileNameExA.  Call mount_info::conv_to_posix_path
 | |
| 	instead of cygwin_conv_to_full_posix_path.  Set posix_modname to
 | |
| 	modname if that call fails.
 | |
| 	(format_process_stat): Set cmd buffer size to NAME_MAX + 1.  Simplify
 | |
| 	setting cmd to process name.
 | |
| 	(format_process_status): Ditto.
 | |
| 	* path.cc (mount_info::conv_to_posix_path): Call sys_wcstombs
 | |
| 	correctly.
 | |
| 
 | |
| 2007-12-03  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* include/cygwin/time.h: Remove redundant #endif.
 | |
| 
 | |
| 2007-12-01  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* include/cygwin/time.h (daylight): Declare as extern symbol referring
 | |
| 	_daylight variable.
 | |
| 	(timezone): Only define if __timezonefunc__ is undefined.
 | |
| 
 | |
| 2007-12-01  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 	    Brian Dessent <brian@dessent.net>
 | |
| 
 | |
| 	* Makefile.in (OBSOLETE_FUNCTIONS): Add timezone.
 | |
| 	* include/cygwin/time.h: Drop conditional timezone definitions.
 | |
| 	(timezone): Declare as extern symbol referring _timezone variable.
 | |
| 
 | |
| 2007-11-28  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_tape.cc (mtinfo::initialize): Use MAX_PATH instead of
 | |
| 	CYG_MAX_PATH.
 | |
| 	* fhandler_tty.cc (fhandler_pty_master::ptsname): Set buffer size to
 | |
| 	TTY_NAME_MAX.
 | |
| 	* syscalls.cc (ttyname): Eliminate the `+ 1' from the name buffer size
 | |
| 	since TTY_NAME_MAX already counts the trailing NUL.
 | |
| 	* libc/bsdlib.cc (openpty): Set pts buffer size to TTY_NAME_MAX.
 | |
| 
 | |
| 2007-11-28  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_socket.cc (fhandler_socket::recv_internal): Add MSG_WAITALL
 | |
| 	handling.  Use explicit flag values instead of MSG_WINMASK.
 | |
| 	(fhandler_socket::send_internal): Use explicit flag values instead of
 | |
| 	MSG_WINMASK.
 | |
| 	* include/cygwin/socket.h (MSG_WINMASK): Remove definition.
 | |
| 	(MSG_WAITALL): Define.
 | |
| 
 | |
| 2007-11-27  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* posix_ipc.cc (ipc_names): Rename max_len to prefix_len.  Store
 | |
| 	the prefix len in it.
 | |
| 	(check_path): Take length parameter.  Use this length insetad of
 | |
| 	calling strlen.  Allow PATH_MAX length paths.
 | |
| 	(ipc_mutex_init): Use MAX_PATH instead of CYG_MAX_PATH.
 | |
| 	(ipc_cond_init): Ditto.
 | |
| 	(shm_open): Allocate local name buffer not bigger than necessary.  Call
 | |
| 	check_path with additional length argument.
 | |
| 	(shm_unlink): Ditto.
 | |
| 	(mq_open): Ditto.
 | |
| 	(mq_unlink): Ditto.
 | |
| 	(sem_open): Ditto.
 | |
| 	(sem_unlink): Ditto.
 | |
| 
 | |
| 2007-11-27  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	Drop old SetResourceLock stuff in favor of mutos.
 | |
| 	* dcrt0.cc (_reslock): Remove.
 | |
| 	(__cygwin_user_data): Accommodate removal of resourcelocks member.
 | |
| 	(dll_crt0_0): Don't initialize resourcelocks.
 | |
| 	* exceptions.cc (_cygtls::signal_exit): Drop resourcelocks handling.
 | |
| 	* mmap.cc (mmap_guard): New muto.
 | |
| 	(LIST_LOCK): Define.
 | |
| 	(LIST_UNLOCK): Define.
 | |
| 	(mmap_list::search_record): Remove.
 | |
| 	(mmap_list::try_map): Include code for anonymous case from
 | |
| 	mmap_list::search_record.
 | |
| 	(mmap_is_attached_or_noreserve): Access bookkeeping lists in a thread
 | |
| 	safe way.
 | |
| 	(mmap64): Replace SetResourceLock/ReleaseResourceLock by
 | |
| 	LIST_LOCK/LIST_UNLOCK.  Lock at the latest possible point.
 | |
| 	(munmap): Replace SetResourceLock/ReleaseResourceLock by
 | |
| 	LIST_LOCK/LIST_UNLOCK.
 | |
| 	(msync): Ditto.
 | |
| 	(mprotect): Ditto.
 | |
| 	* thread.cc (ResourceLocks::Lock): Remove.
 | |
| 	(SetResourceLock): Remove.
 | |
| 	(ReleaseResourceLock): Remove.
 | |
| 	(ResourceLocks::Init): Remove.
 | |
| 	(ResourceLocks::Delete): Remove.
 | |
| 	* thread.h (SetResourceLock): Drop declaration.
 | |
| 	(ReleaseResourceLock): Ditto.
 | |
| 	(class ResourceLocks): Drop definition.
 | |
| 	* include/sys/cygwin.h (class ResourceLocks): Drop forward declaration.
 | |
| 	(struct per_process): Replace resourcelocks with additional unused2
 | |
| 	element.
 | |
| 	(per_process_overwrite): Accommodate above change.
 | |
| 
 | |
| 2007-11-27  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* mmap.cc: Convert usage of dynamically growing cmalloced arrays to
 | |
| 	cmalloced linked lists throughout.
 | |
| 	(class mmap_record): Add LIST_ENTRY element.
 | |
| 	(mmap_record::match): New method, taking over match algorithm from
 | |
| 	list::search_record.
 | |
| 	(class mmap_list): Rename from class list.  Add LIST_ENTRY.  Convert
 | |
| 	recs to a LIST_HEAD.  Drop nrecs and maxrecs members.
 | |
| 	(mmap_list::get_record): Drop entirely.
 | |
| 	(mmap_list::free_recs): Drop entirely.
 | |
| 	(mmap_list::del_record): Take mmap_record to delete as parameter.
 | |
| 	(mmap_list::search_record): Convert to mmap_record::match.
 | |
| 	(class mmap_areas): Rename from class map.  Convert lists to LIST_HEAD.
 | |
| 	(mmap_areas::get_list): Drop entirely.
 | |
| 	(mmap_areas::del_list): Take mmap_list to delete as parameter.
 | |
| 	(mprotect): Fix indentation.
 | |
| 
 | |
| 2007-11-26  Christopher Faylor  <me+cygwin@cgf.cx>
 | |
| 
 | |
| 	Change many cygheap allocation routines to their *_abort analogs.
 | |
| 	* cygheap.cc (cmalloc_abort): New function.
 | |
| 	(crealloc_abort): Ditto.
 | |
| 	(ccalloc_abort): Ditto.
 | |
| 
 | |
| 2007-11-23  Christopher Faylor  <me+cygwin@cgf.cx>
 | |
| 
 | |
| 	* cygheap.cc (_crealloc): Avoid memcpy when _cmalloc returns NULL.
 | |
| 
 | |
| 2007-11-08  Christopher Faylor  <me+cygwin@cgf.cx>
 | |
| 
 | |
| 	* dllfixdbg: Eliminate extra objcopy step.
 | |
| 
 | |
| 2007-11-07  Pedro Alves  <pedro_alves@portugalmail.pt>
 | |
| 
 | |
| 	* dllfixdbg: Pass --only-keep-debug to objcopy, instead of
 | |
| 	selecting the sections manually.
 | |
| 
 | |
| 2007-11-06  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* thread.cc (pthread_key_create): Drop check for incoming valid object.
 | |
| 
 | |
| 2007-11-06  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* shm.cc: Include sync.h
 | |
| 	(struct shm_shmid_list): Add ref_count member.
 | |
| 	(struct shm_attached_list): Remove hdl and size members.  Add a parent
 | |
| 	member pointing to referenced shm_shmid_list entry.
 | |
| 	(shm_guard): New muto.
 | |
| 	(SLIST_LOCK): Define.
 | |
| 	(SLIST_UNLOCK): Define.
 | |
| 	(fixup_shms_after_fork): Use hdl and size members of parent
 | |
| 	shm_shmid_list entry.
 | |
| 	(shmat): Access sequential bookkeeping lists in a thread safe way.
 | |
| 	Accommodate change in list element layout.  Align comments.
 | |
| 	(shmctl): Ditto.
 | |
| 	(shmdt): Ditto.
 | |
| 	(shmget): Ditto.
 | |
| 
 | |
| 2007-11-05  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* shm.cc (shmctl): On IPC_RMID don't unmap views and don't close handle
 | |
| 	if the map is still referenced to emulate Linux and BSD behaviour.
 | |
| 
 | |
| 2007-11-05  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* shm.cc (shmctl): On IPC_RMID also unmap all views on shared mem
 | |
| 	as well as connected shm_attached_list entry.
 | |
| 
 | |
| 2007-10-31  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* net.cc (load_ipv6_funcs): Use MAX_PATH instead of CYG_MAX_PATH.
 | |
| 	(cygwin_getaddrinfo): Simplify formatting.
 | |
| 	(cygwin_getnameinfo): Ditto.
 | |
| 
 | |
| 2007-10-31  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* external.cc (get_cygdrive_info): Make inline.
 | |
| 	(get_cygdrive_prefixes): Remove.
 | |
| 	(cygwin_internal): Call get_cygdrive_info with NULL flag parameters
 | |
| 	instead of get_cygdrive_prefixes.
 | |
| 	* path.cc (mount_info::get_cygdrive_info): Allow NULL flag parameters.
 | |
| 
 | |
| 2007-10-30  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_base::fstat_helper): Don't remove
 | |
| 	write bits for directories with R/O attribute.
 | |
| 	(fhandler_base::fhaccess): Don't shortcircuit R/O attribute with W_OK
 | |
| 	scenarios for directories.
 | |
| 
 | |
| 2007-10-22  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygheap.h (struct cwdstuff): Drop hash member.  Drop get_hash,
 | |
| 	get_initial, and fixup_after_exec declarations.
 | |
| 	Convert win32 to UNICODE_STRING.
 | |
| 	(cwdstuff::get_drive): Convert win32 path in current codepage.
 | |
| 	(cwdstuff::set): Take native NT path.
 | |
| 	* ntdll.h (struct _TEB): Typedef.
 | |
| 	* path.cc (mount_info::conv_to_posix_path): Add variant taking
 | |
| 	wide char DOS paths.
 | |
| 	(symlink_info::posixify): Simplify concatenating cwd and relative path.
 | |
| 	(hash_path_name): Drop special relative path handling.
 | |
| 	(chdir): Drop special "drive only" handling.  Call cwdstuff::set with
 | |
| 	native path.
 | |
| 	(cwdstuff::get_hash): Remove.
 | |
| 	(windows_system_directory): Remove.
 | |
| 	(_upp): Remove.
 | |
| 	(get_user_proc_parms): Make inline.  Get PEB pointer by calling
 | |
| 	NtCurrentTeb.
 | |
| 	(cwdstuff::init): Simplify.
 | |
| 	(cwdstuff::set): Rework to handle incoming native NT path.  Workaround
 | |
| 	a Vista problem with CWD handle in the user process parameter block.
 | |
| 	(cwdstuff::get): Simplify locking.  Accommodate type change of win32.
 | |
| 	* shared_info.h (mount_info): Add declaration for new conv_to_posix_path
 | |
| 	method.
 | |
| 	* strfuncs.cc (sys_wcstombs): Return correct length of created
 | |
| 	multi-byte string.
 | |
| 
 | |
| 2007-10-19  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (__DIR_mounts::eval_ino): Make fname big enough
 | |
| 	to allow multibyte chars.
 | |
| 
 | |
| 2007-10-18  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.cc (fhandler_base::open): Open native symlinks with
 | |
| 	FILE_OPEN_REPARSE_POINT flag.  Fix typo in comment.
 | |
| 
 | |
| 2007-10-18  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* include/sys/param.h (MAXPATHLEN): Define as PATH_MAX.
 | |
| 
 | |
| 2007-10-14  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.cc (is_at_eof): Rewrite using NT functions.
 | |
| 	(off_current): New static variable.
 | |
| 	(off_append): Ditto.
 | |
| 	(fhandler_base::raw_write): Use NtWriteFile.  Accommodate O_APPEND here.
 | |
| 	(fhandler_base::write): Drop O_APPEND hack.  Use NT functions.
 | |
| 	(fhandler_base::lseek): Rewrite using NT functions.
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::fstatvfs): Add space in
 | |
| 	debug output.
 | |
| 	(fhandler_disk_file::ftruncate): Ditto.
 | |
| 	* ntdll.h (STATUS_DISK_FULL): Define.
 | |
| 	(FILE_USE_FILE_POINTER_POSITION): Define.
 | |
| 	(FILE_WRITE_TO_END_OF_FILE): Define.
 | |
| 
 | |
| 2007-10-13  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* ntdll.h (STATUS_END_OF_FILE): Define.
 | |
| 	* path.cc (symlink_info::check_shortcut): Use NT function to get file
 | |
| 	size.  Reintroduce checking file size before reading it.  Eliminiate
 | |
| 	close_it label.
 | |
| 	(symlink_info::check_sysfile): Check for EOF condition.
 | |
| 
 | |
| 2007-10-11  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* path.cc (basename): Return pointer into the path argument itself.
 | |
| 	Shrink buf to 4 bytes.  Use buf only for border cases.
 | |
| 	(dirname): Ditto.
 | |
| 
 | |
| 2007-10-10  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* path.cc (struct symlink_info): Change size of contents member to
 | |
| 	be able to keep SYMLINK_MAX sized strings.
 | |
| 	(symlink_worker): Rework for long path names.  When writing windows
 | |
| 	shortcuts, store pathname additionally "hidden" after the actual
 | |
| 	shortcut data to workaround size limitations of the description field.
 | |
| 	(symlink_info::check_shortcut): Drop file name parameter.  Drop max
 | |
| 	file size check.  Use NT functions.  Use appended full path if
 | |
| 	available, description otherwise.  Check symlink string length for
 | |
| 	not exceeding SYMLINK_MAX.  Don't close file here.
 | |
| 	(symlink_info::check_sysfile): Drop file name parameter.  Use NT
 | |
| 	functions.  Check symlink string length for not exceeding SYMLINK_MAX.
 | |
| 	Don't close file here.
 | |
| 	(symlink_info::check_reparse_point): Drop file name parameter.  Drop
 | |
| 	useless length checks.  Allow SYMLINK_MAX length symlink strings.
 | |
| 	Don't close file here.
 | |
| 	(symlink_info::posixify): Allow SYMLINK_MAX length symlink strings.
 | |
| 	(symlink_info::check): Turn around checking for symlink file attributes.
 | |
| 	Use NT functions.  Close symlink file here.
 | |
| 	* include/limits.h (PATH_MAX): Define as 32760.  Change comment.
 | |
| 	(SYMLINK_MAX): Define as PATH_MAX - 1.
 | |
| 
 | |
| 2007-10-10  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_socket.cc (fhandler_socket::bind): Open file for deletion,
 | |
| 	too.  Don't write to file and especially don't close handle if file
 | |
| 	couldn't be created.  Set delete disposition if writing failed,
 | |
| 	instead of calling unlink_nt.
 | |
| 
 | |
| 2007-09-27  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* ntdll.h (struct _FILE_COMPRESSION_INFORMATION): Align with definition
 | |
| 	in w32api / MSDN.
 | |
| 	* fhandler_disk_file.cc (fhandler_base::fstat_helper): Accommodate
 | |
| 	change to struct _FILE_COMPRESSION_INFORMATION.
 | |
| 
 | |
| 2007-09-26  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* termios.cc (setspeed): Support new baud rates introduced 2007-02-05.
 | |
| 
 | |
| 2007-09-20  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* ntdll.h (STATUS_OBJECT_NAME_INVALID): Define.
 | |
| 
 | |
| 2007-09-18  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* mmap.cc (fh_disk_file): Delete as global static variable and...
 | |
| 	(mmap64): ...define as local pointer to make mmap thread-safe.
 | |
| 	Accommodate throughout.  Only initialize fh_disk_file after file could
 | |
| 	be opened with GENERIC_EXECUTE access.  Call fstat_by_handle instead of
 | |
| 	fstat to avoid overhead.
 | |
| 
 | |
| 2007-09-18  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* security.cc (set_file_sd): Open file with FILE_OPEN_FOR_BACKUP_INTENT
 | |
| 	too.
 | |
| 
 | |
| 2007-09-17  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* path.cc (symlink_info::check): Check for STATUS_OBJECT_NAME_INVALID.
 | |
| 	Add comment.
 | |
| 
 | |
| 2007-09-17  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.cc (fhandler_base::open): Partly revert change from
 | |
| 	2007-08-24:  Call has_acls to avoid permission problems getting
 | |
| 	a handle to a file on a remote share.  Add comment.
 | |
| 
 | |
| 2007-09-08  Brian Dessent  <brian@dessent.net>
 | |
| 
 | |
| 	* include/cygwin/config.h: Conditionalize inline __getreent()
 | |
| 	definition on _COMPILING_NEWLIB.
 | |
| 
 | |
| 2007-09-06  Brian Dessent  <brian@dessent.net>
 | |
| 
 | |
| 	* include/cygwin/config.h (__getreent): Define inline version.
 | |
| 
 | |
| 2007-09-06  Brian Dessent  <brian@dessent.net>
 | |
| 
 | |
| 	* include/sys/stdio.h (_flockfile): Don't try to lock a FILE
 | |
| 	that has the __SSTR flag set.
 | |
| 	(_ftrylockfile): Likewise.
 | |
| 	(_funlockfile): Likewise.
 | |
| 
 | |
| 2007-08-24  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* syscalls.cc (open): Don't follow symlinks if O_EXCL is given.
 | |
| 
 | |
| 2007-08-23  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* ntdll.h (STATUS_NO_SUCH_FILE): Define.
 | |
| 	* path.cc (get_nt_native_path): Reset upath.Length to 0 on each
 | |
| 	invocation.
 | |
| 	(symlink_info::check): Use NT native functions.
 | |
| 
 | |
| 2007-08-21  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* uinfo.cc (pwdgrp::load): Use NT native functions.
 | |
| 
 | |
| 2007-08-21  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_base::fstat_helper): Rewrite checking
 | |
| 	for executable file magic using a thread safe method and re-enable this
 | |
| 	code.
 | |
| 
 | |
| 2007-08-21  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* syscalls.cc (unlink_nt): Drop one local FILE_BASIC_INFORMATION struct.
 | |
| 
 | |
| 2007-08-21  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* ntdll.h (NtNotifyChangeDirectoryFile): Declare.
 | |
| 	(NtQueryAttributesFile): Move to maintain alphabetical order of
 | |
| 	declarations.  Add comment to note that timestamp information returned
 | |
| 	by NtQueryAttributesFile is unreliable.
 | |
| 	* path.h (etc::changed_h): Move here.
 | |
| 	(etc::fn): Change type to OBJECT_ATTRIBUTES.
 | |
| 	(etc::last_modified): Change type to LARGE_INTEGER.
 | |
| 	(etc::init): Take PUNICODE_STRING as second argument.
 | |
| 	* path.cc: Accomodate above changes.
 | |
| 	(etc::test_file_change): Use NT native functions.
 | |
| 	(etc::dir_changed): Ditto.
 | |
| 	* uinfo.cc (pwdgrp::load): Call etc::init with NT native path.
 | |
| 
 | |
| 2007-08-21  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc: Change debugging output througout to print
 | |
| 	the NT status consistently.  Use UNICODE path information if available.
 | |
| 
 | |
| 2007-08-20  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* hookapi.cc (ld_preload): Call LoadLibraryW.
 | |
| 	* path.h (path_conv::get_wide_win32_path_len): Define.
 | |
| 
 | |
| 2007-08-20  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.cc (rootdir): Delete.
 | |
| 	* winsup.h (rootdir): Drop declaration.
 | |
| 
 | |
| 2007-08-19  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* path.cc (fillout_mntent): Append backslash to drive-only paths before
 | |
| 	calling fs_info::update.
 | |
| 	* path.h (fs_info::clear): Simplify.
 | |
| 	(fs_info::fs_info): Add constructor.
 | |
| 
 | |
| 2007-08-17  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* spawn.cc (spawn_guts): Fix typo in comment.
 | |
| 
 | |
| 2007-08-17  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* autoload.cc (CloseDesktop): Define.
 | |
| 	(CreateDesktopA): Define.
 | |
| 	(SetThreadDesktop): Define.
 | |
| 	* spawn.cc (spawn_guts): When starting a process under another user
 | |
| 	account, don't open up permissions on current window station and
 | |
| 	desktop.  Instead, if not in interactive session, create a new per-user
 | |
| 	window station plus default desktop and use that for the child process.
 | |
| 
 | |
| 2007-08-16  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::fchmod): Handle S_IFSOCK
 | |
| 	mode bit by setting the SYSTEM attribute.
 | |
| 	* fhandler_socket.cc (fhandler_socket::fchmod): Add S_IFSOCK mode bit
 | |
| 	when calling fhandler_disk_file::fchmod.  Don't set attributes here.
 | |
| 
 | |
| 2007-08-16  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* path.h (path_conv::operator char *): Delete.
 | |
| 	(path_conv::operator const char *): Delete.
 | |
| 	* dlfcn.cc: Throughout, replace path_conv::operator char * and
 | |
| 	path_conv::operator const char * by call to path_conv::get_win32
 | |
| 	for easier transition to UNICODE_PATHs.
 | |
| 	* fhandler_socket.cc: Ditto.
 | |
| 	* hookapi.cc: Ditto.
 | |
| 	* path.cc: Ditto.
 | |
| 	* spawn.cc: Ditto.
 | |
| 	* syscalls.cc: Ditto.
 | |
| 	* uinfo.cc: Ditto.
 | |
| 
 | |
| 2007-08-16  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* dir.cc (readdir_worker): Convert w32name to PUNICODE_STRING.
 | |
| 	* sec_acl.cc (getacl): Convert debug output to print native NT path.
 | |
| 	* security.cc (set_file_attribute): Ditto.
 | |
| 	* syscalls.cc (try_to_bin): Ditto and fix buggy debug statement.
 | |
| 
 | |
| 2007-08-16  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* ntdll.h (RtlAcquirePebLock): Declare.
 | |
| 	(RtlReleasePebLock): Declare.
 | |
| 	* path.cc (cwdstuff::set): Change PEB only while it's locked.
 | |
| 
 | |
| 2007-08-16  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (fhandler_base::get_namehash): Use NT native path.
 | |
| 	* fhandler_disk_file.cc (readdir_get_ino): Ditto in call to
 | |
| 	hash_path_name.
 | |
| 
 | |
| 2007-08-16  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* ntdll.h (RtlCreateUnicodeStringFromAsciiz): Fix declaration.
 | |
| 	(RtlUpcaseUnicodeChar): Declare.
 | |
| 	* path.cc (hash_path_name): Split into three functions, taking
 | |
| 	the path as char *, PWCSTR, or PUNICODE_STRING.  Move implementation
 | |
| 	into PUNICODE_STRING-based function.  Drop old drive-relative path
 | |
| 	consideration.
 | |
| 	* winsup.h (iswdirsep): Like isdirsep but for WCHARs.
 | |
| 	(isabspath_u): Like isabspath, for PUNICODE_STRINGs.
 | |
| 	(iswabspath): Like isabspath, for PWCHARs.
 | |
| 	(hash_path_name): Add new declarations.
 | |
| 
 | |
| 2007-08-15  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* path.cc (get_nt_native_path): Allow to convert special paths which
 | |
| 	have no native NT path representation for simplified debug output.
 | |
| 	* syscalls.cc: Convert debug output to print native NT path.
 | |
| 	(unlink): Drop redundant debug output.
 | |
| 
 | |
| 2007-08-15  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::link): Drop superfluous
 | |
| 	test for trailing dot.
 | |
| 	* path.h (path_conv::operator []): Remove.
 | |
| 
 | |
| 2007-08-15  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_socket.cc (get_inet_addr): Use NT native functions for
 | |
| 	accessing the file representing the local socket.
 | |
| 	(fhandler_socket::bind): Ditto.
 | |
| 	* ntdll.h: Declare NtReadFile.
 | |
| 
 | |
| 2007-08-14  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* path.cc (symlink_info::check): In case of ERROR_SHARING_VIOLATION and
 | |
| 	ERROR_ACCESS_DENIED, try to get file attributes by using directory
 | |
| 	functions.
 | |
| 
 | |
| 2007-08-14  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* path.cc (fs_info::update): Correctly handle the volume root directory.
 | |
| 
 | |
| 2007-08-14  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (fhandler_base::pc): Make public.
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::link): Drop extern
 | |
| 	declaration of stat_suffixes.  Use NT native path in debug output.
 | |
| 	(fhandler_base::utimes_fs): Simplify closeit case.  Use close_fs
 | |
| 	to close newly opened file handle.
 | |
| 	(fhandler_base::open_fs): Use NT native path in debug output.
 | |
| 	* path.cc: Throughout drop extern declaration of stat_suffixes.
 | |
| 	* path.h (stat_suffixes): Declare.
 | |
| 	* sec_acl.cc (acl_worker): Drop extern declaration of stat_suffixes.
 | |
| 	* times.cc (utimes_worker): Take path_conv as parameter instead of
 | |
| 	single-byte pathnam, drop nofollow argument, accommodate throughout.
 | |
| 	Compare UNICODE paths when enumerating file descriptors.  Fix
 | |
| 	formatting.  Use NT native path in debug output.
 | |
| 
 | |
| 2007-08-13  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* mmap.cc: Call NtClose instead of CloseHandle throughout.
 | |
| 	(CreateMapping): Drop unused last argument.  Accommodate throughout.
 | |
| 	(mmap64): Re-open file with execute permissions using NtOpenFile.
 | |
| 
 | |
| 2007-08-13  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (fhandler_base::close_fs): Reintroduce (as inline function)
 | |
| 	for clearness.
 | |
| 	* fhandler_disk_file.cc (fhandler_base::fstat_fs): Revert previous
 | |
| 	change.
 | |
| 	(fhandler_base::open_fs): Ditto.
 | |
| 	* fhandler_socket.cc (fhandler_socket::close): Ditto.
 | |
| 
 | |
| 2007-08-13  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* Makefile.in (DLL_OFILES): Remove delqueue.o.
 | |
| 	* delqueue.cc: Delete.
 | |
| 	* fhandler.h (fhandler_base::close_fs): Drop declaration.
 | |
| 	(fhandler_disk_file::close): Drop declaration.
 | |
| 	* fhandler_disk_file.cc (fhandler_base::fstat_fs): Call close instead of
 | |
| 	close_fs.
 | |
| 	(fhandler_base::fstat_helper): Use open FH_UNIX handle in call to
 | |
| 	get_file_attribute.
 | |
| 	(fhandler_base::open_fs): Call close instead of get_file_attribute.
 | |
| 	(fhandler_disk_file::close): Remove.
 | |
| 	(fhandler_base::close_fs): Remove.
 | |
| 	* fhandler_socket.cc (fhandler_socket::close): Just call
 | |
| 	fhandler_base::close for FH_UNIX sockets.
 | |
| 	* shared.cc (user_shared_initialize): Drop call to
 | |
| 	user_shared->delqueue.init.
 | |
| 	* shared_info.h (CURR_USER_MAGIC): Change according to below change.
 | |
| 	(MAX_DELQUEUES_PENDING): Remove.
 | |
| 	(class delqueue_list): Remove.
 | |
| 	(class user_info): Remove delqueue.
 | |
| 	* syscalls.cc (close_all_files): Drop call to
 | |
| 	user_shared->delqueue.process_queue.
 | |
| 	(unlink): Drop delqueue handling.
 | |
| 
 | |
| 2007-08-13  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* devices.in (dev_storage): Use native NT device name for kmsg mailslot.
 | |
| 	* devices.cc: Regenerate.
 | |
| 	* fhandler.cc (fhandler_base::operator =): Use path_conv assignment
 | |
| 	operator.
 | |
| 	(fhandler_base::set_name): Ditto.
 | |
| 	(fhandler_base::open): Use NT native path in debug output.
 | |
| 	* fhandler_mailslot.cc: Convert to NT native function calls.
 | |
| 	* ntdll.h (struct _FILE_MAILSLOT_SET_INFORMATION): Define.
 | |
| 	(NtCreateMailslotFile): Declare.
 | |
| 	* path.cc (path_conv::set_normalized_path): Don't set wide_path to NULL.
 | |
| 	(path_conv::set_name): Remove unused function.
 | |
| 	* path.h (path_conv::set_name): Drop declaration.
 | |
| 	(path_conv::operator =): Define.
 | |
| 
 | |
| 2007-08-12  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.cc (fhandler_base::open): Remove HIDDEN_DOT_FILES code.
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::mkdir): Ditto.
 | |
| 	* path.cc (symlink_worker): Ditto.
 | |
| 
 | |
| 2007-08-12  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* syscalls.cc (getw): Remove redundant implementation.
 | |
| 	(putw): Ditto.
 | |
| 	(wcscmp): Ditto.
 | |
| 	(wcslen): Ditto.
 | |
| 	(memccpy): Ditto.
 | |
| 
 | |
| 2007-08-12  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* ntdll.h: Add descriptive comments to special Rtl functions.
 | |
| 	(STATUS_OBJECT_PATH_NOT_FOUND): Define.
 | |
| 	(STATUS_BUFFER_OVERFLOW): Define.
 | |
| 	(FILE_SUPERSEDED): Define.
 | |
| 	(FILE_OPENED): Define.
 | |
| 	(FILE_CREATED): Define.
 | |
| 	(FILE_OVERWRITTEN): Define.
 | |
| 	(FILE_EXISTS): Define.
 | |
| 	(FILE_DOES_NOT_EXIST): Define.
 | |
| 	(PIO_APC_ROUTINE): Typedef.
 | |
| 	(NtFsControlFile): Fix parameter types to use PIO_APC_ROUTINE.
 | |
| 	(NtWriteFile): Declare.
 | |
| 	(RtlInt64ToHexUnicodeString): Declare.
 | |
| 	* strfuncs.cc: Include ntdll.h.
 | |
| 	(RtlInt64ToHexUnicodeString): New function.
 | |
| 	* syscalls.cc (try_to_bin): Rewrite using native NT functions.
 | |
| 	Only try to create recycle bin after unsuccessfully trying to move
 | |
| 	file.  Also try to create special files in recycle bin so that Windows
 | |
| 	Explorer isn't unnecessarily stampeded.
 | |
| 
 | |
| 2007-08-10  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* path.cc (fillout_mntent): Fix calculation of unicode buffer size.
 | |
| 
 | |
| 2007-08-10  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* syscalls.cc (rename): Check oldpath and newpath for trailing dir
 | |
| 	separators, require them to be existing directories if so.  Check
 | |
| 	for a request to change only the case of the filename.  Check paths
 | |
| 	for case insensitve equality only once.  Handle renaming a directory
 | |
| 	to another, existing directory by unlinking the destination directory
 | |
| 	first.  If newpath points to an existing file with R/O attribute set,
 | |
| 	try to unset R/O attribute first.  Augment hardlink test by not
 | |
| 	checking directories.  If renaming fails with STATUS_ACCESS_DENIED,
 | |
| 	try to unlink existing destination filename and try renaming again.
 | |
| 	Drop useless test for non-empty directory.  Always close fh at the
 | |
| 	end of the function.
 | |
| 
 | |
| 2007-08-09  Ernie Coskrey  <Ernie.Coskrey@steeleye.com>
 | |
| 
 | |
| 	* gendef (sigbe): Reset "incyg" while the stack lock is active to avoid
 | |
| 	a potential race.
 | |
| 
 | |
| 2007-08-09  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* syscalls.cc (rename): Close oldpath file handle immediately after
 | |
| 	trying to rename it.  Use nfh handle when checking for non-empty
 | |
| 	newpath directory.  Only change status if check_dir_not_empty really
 | |
| 	returns STATUS_DIRECTORY_NOT_EMPTY.
 | |
| 
 | |
| 2007-08-02  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (readdir_get_ino): Accommodate native symlinks.
 | |
| 	* syscalls.cc (rename): Ditto.
 | |
| 
 | |
| 2007-08-02  Christopher Faylor  <me+cygwin@cgf.cx>
 | |
| 
 | |
| 	* lib/Makefile: Add missed file to accommodate below changes.
 | |
| 
 | |
| 2007-08-02  Christopher Faylor  <me+cygwin@cgf.cx>
 | |
| 
 | |
| 	* lib/cygwin_attach_dll.c: Fix compiler warning.
 | |
| 	* lib/cygwin_crt0.c: Ditto.
 | |
| 
 | |
| 2007-08-02  Christopher Faylor  <me+cygwin@cgf.cx>
 | |
| 
 | |
| 	* dcrt0.cc (codepage_type): Remove definition.
 | |
| 	* strfuncs.cc: Move it here.  New file with bits of miscfuncs.cc.
 | |
| 	* miscfuncs.cc: Remove wide character stuff.
 | |
| 
 | |
| 2007-08-02  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* syscalls.cc (rename): Move and add text to comment about testing
 | |
| 	oldpath and newpath referring to the same file.  Test if oldpath
 | |
| 	has more than one hardlink before opening oldpath (idea by Eric Blake).
 | |
| 	Reorder test so that file id is tested before volume serial number.  
 | |
| 
 | |
| 2007-08-02  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* path.h (struct fs_info): Drop root_len and name_hash members.
 | |
| 	(fsinfo::length): Remove.
 | |
| 	(path_conv::rootdir): Remove.
 | |
| 	* syscalls.cc (try_to_bin): Use rootdir function instead of
 | |
| 	path_conv::rootdir method.
 | |
| 
 | |
| 2007-08-02  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (path_conv::ndisk_links): Fix typo in call to
 | |
| 	NtClose.
 | |
| 
 | |
| 2007-08-01  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* syscalls.cc (rename): Check if oldpath and newpath refer to the
 | |
| 	same file.  If so, return successfully and perform no other action,
 | |
| 	as per SUSv3.
 | |
| 
 | |
| 2007-08-01  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* ntdll.h (STATUS_ACCESS_DENIED): Define.
 | |
| 	* syscalls.cc (check_dir_not_empty): New static function.
 | |
| 	(unlink_nt): Move code checking for non-empty dir to check_dir_not_empty
 | |
| 	and call check_dir_not_empty instead.
 | |
| 	(rename): Add fault handler.  Check oldpath and newpath for trailing
 | |
| 	. and .. path components and return EINVAL if so.  Check oldpath
 | |
| 	for being on a vrtual file system.  If renaming a dir fails with
 | |
| 	STATUS_ACCESS_DENIED, check if the target dir is non-empty and return
 | |
| 	ENOTEMPTY if so.
 | |
| 
 | |
| 2007-08-01  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* localtime.cc (tzsetwall): Don't set TZ.
 | |
| 
 | |
| 2007-08-01  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Drop
 | |
| 	usage of path_conv::volser().
 | |
| 	(fhandler_base::fstat_by_name): Ditto.
 | |
| 	* ntdll.h (STATUS_NO_MEDIA_IN_DEVICE): Define.
 | |
| 	(STATUS_OBJECT_NAME_NOT_FOUND): Define.
 | |
| 	(FILE_REMOVABLE_MEDIA, FILE_READ_ONLY_DEVICE, FILE_FLOPPY_DISKETTE)
 | |
| 	(FILE_WRITE_ONCE_MEDIA, FILE_REMOTE_DEVICE, FILE_DEVICE_IS_MOUNTED)
 | |
| 	(FILE_VIRTUAL_VOLUME, FILE_AUTOGENERATED_DEVICE_NAME)
 | |
| 	FILE_DEVICE_SECURE_OPEN): Define Device Characteristics.
 | |
| 	(struct _FILE_FS_DEVICE_INFORMATION): Define.
 | |
| 	* path.cc (MAX_FS_INFO_CNT): Remove.
 | |
| 	(fsinfo): Remove.
 | |
| 	(fsinfo_cnt): Remove.
 | |
| 	(fs_info::update): Rewrite using native NT functions.  Drop fs_info
 | |
| 	cashing since it's incorrect.
 | |
| 	(path_conv::fillin): Use NtQueryInformationFile.  Drop setting serial
 | |
| 	number.
 | |
| 	(path_conv::check): Accommodate new fs_info::update parameters.
 | |
| 	(fillout_mntent): Ditto.
 | |
| 	* path.h (fs_info): Drop serial, has_ea and drive_type status
 | |
| 	flags.
 | |
| 	(fs_info::update): Declare with new parameters.
 | |
| 	(path_conf::drive_type): Remove.
 | |
| 	(path_conf::fs_has_ea): Remove.
 | |
| 	(path_conf::volser): Remove.
 | |
| 
 | |
| 2007-08-01  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.cc (check_posix_perms): Remove.
 | |
| 	(fhandler_base::fpathconf): Return value of pc.has_acls () instead
 | |
| 	of calling check_posix_perms.
 | |
| 
 | |
| 2007-08-01  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* syscalls.cc (rename): Use unchanged path_conv in condition.
 | |
| 
 | |
| 2007-08-01  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* smallprint.cc (__small_vsprintf): Add format specifier 'W' for
 | |
| 	PWCHAR arguments.  Move wide char handling after char handling.
 | |
| 
 | |
| 2007-07-31  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* ntdll.h (RtlFreeAnsiString): Declare.
 | |
| 	* ntdll.h (RtlFreeOemString): Declare.
 | |
| 	* ntdll.h (RtlUnicodeStringToAnsiString): Declare.
 | |
| 	* ntdll.h (RtlUnicodeStringToOemString): Declare.
 | |
| 	* smallprint.cc: Renamed from smallprint.c.  Drop unnecessary
 | |
| 	forward declarations.
 | |
| 	(__small_vsprintf): Add format specifiers 'C' for WCHAR arguments
 | |
| 	and 'S' for PUNICODE_STRING arguments.
 | |
| 
 | |
| 2007-07-31  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::link): Revert to checking
 | |
| 	for binary in case of .exe files.
 | |
| 	* ntdll.h (RtlPrefixUnicodeString): Declare.
 | |
| 	* path.cc (path_conv::is_binary): New method.
 | |
| 	* path.h (path_conv::is_binary): Declare.
 | |
| 	* syscalls.cc (rename_append_suffix): New static helper function for
 | |
| 	rename.
 | |
| 	(rename): Rewrite.  New suffix tests.  Use native NT functions.
 | |
| 
 | |
| 2007-07-30  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::facl): If file can't be
 | |
| 	opened for reading the ACLs, fall back to faking them.
 | |
| 	* sec_acl.cc (acl_worker): Handle non-existing files.
 | |
| 	* security.cc (get_file_attribute): Return ILLEGAL_UID/ILLEGAL_GID
 | |
| 	as owner/group for non-readable ACLs on file systems supporting them.
 | |
| 
 | |
| 2007-07-30  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* syscalls.cc (stat_worker): Don't call build_fh_pc with invalid pc.
 | |
| 
 | |
| 2007-07-29  Christopher Faylor  <me+cygwin@cgf.cx>
 | |
| 
 | |
| 	* fhandler.cc (fhandler_base::wait_overlapped): Handle read EOF better
 | |
| 	and issue a SIGPIPE when we get ERROR_NO_DATA.
 | |
| 
 | |
| 2007-07-29  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::fchmod): Don't allow
 | |
| 	FileAttributes set to 0 when calling NtSetInformationFile since it has
 | |
| 	a special meaning.
 | |
| 	(fhandler_disk_file::facl): Ditto.
 | |
| 	(fhandler_disk_file::link): Only set attributes after copying files.
 | |
| 	Use SetFileAttributesW.
 | |
| 	* syscalls.cc (unlink_nt): Only care for actual FILE_ATTRIBUTE_READONLY.
 | |
| 	Don't allow FileAttributes set to 0 when calling NtSetInformationFile.
 | |
| 	After marking for deletion, restore R/O attribute on files to
 | |
| 	accommodate hardlinks.
 | |
| 
 | |
| 2007-07-29  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::link): Use FILE_ANY_ACCESS.
 | |
| 	(fhandler_base::utimes_fs): Fix white space.
 | |
| 	(fhandler_disk_file::lock): Remove 9x blurb from comment.
 | |
| 	(fhandler_disk_file::mkdir): Use NtCreateFile/NtClose instead of
 | |
| 	CreateDirectoryA.
 | |
| 	(fhandler_disk_file::rmdir): Accommodate changes to unlink_nt.
 | |
| 	Simplify post-delete SMB-related tests.  Use NtQueryAttributesFile
 | |
| 	instead of GetFileAttributes.
 | |
| 	* ntdll.h (STATUS_DIRECTORY_NOT_EMPTY): Define.
 | |
| 	(NtQueryAttributesFile): Declare.
 | |
| 	* syscalls.cc (unlink_nt): Return NTSTATUS.  Drop setattrs parameter.
 | |
| 	Never use FILE_DELETE_ON_CLOSE, always use
 | |
| 	NtSetInformationFile(FileDispositionInformation) instead.
 | |
| 	Check for R/O attributes and open file with FILE_WRITE_ATTRIBUTES
 | |
| 	access if any of them are set.  Remove R/O attributes before
 | |
| 	marking for delete if necessary.  Revert them afterwards if necessary.
 | |
| 	(unlink): Accommodate changes to unlink_nt.
 | |
| 
 | |
| 2007-07-29  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc: Use get_handle throughout.
 | |
| 	(fhandler_disk_file::fchmod): Always try to open file with required
 | |
| 	access rights.  Use NtSetInformationFile instead of SetFileAttributes.
 | |
| 	(fhandler_disk_file::facl): Use NtSetInformationFile instead of
 | |
| 	SetFileAttributes.
 | |
| 	(fhandler_base::utimes_fs): Change lastaccess and lastwrite to
 | |
| 	LARGE_INTEGER.  Drop 9x directory case.  Use NtSetInformationFile
 | |
| 	instead of SetFileAttributes.  Drop temporarily changing R/O attribute
 | |
| 	since NtSetInformationFile(FileBasicInformation) also works on R/O
 | |
| 	files.
 | |
| 	* ntdll.h (STATUS_NOT_SUPPORTED): Define.
 | |
| 
 | |
| 2007-07-29  Christopher Faylor  <me+cygwin@cgf.cx>
 | |
| 
 | |
| 	* cygtls.h (_cygtls::inside_kernel): Move function declaration into
 | |
| 	_cygtls class.
 | |
| 	* exceptions.cc (_cygtls::inside_kernel): Move function definition into
 | |
| 	_cygtls class.
 | |
| 
 | |
| 	* fhandler.cc (fhandler_base::wait_overlapped): Make return tri-state
 | |
| 	to detect when there is a EINTR situation.  Add a pointer to a length
 | |
| 	parameter.  Move GetOverlappedResult into this function.
 | |
| 	(fhandler_base::read_overlapped): Accommodate above changes and loop if
 | |
| 	we receive a restartable signal.
 | |
| 	(fhandler_base::write_overlapped): Ditto.
 | |
| 	* fhandler.h (fhandler_base::wait_overlapped): Reflect above changes.
 | |
| 	* fhandler_fifo.cc (fhandler_fifo::wait): Ditto.
 | |
| 
 | |
| 2007-07-28  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* ntdll.h (RtlEqualUnicodePathPrefix): Rename from RtlEqualPathPrefix.
 | |
| 	(RtlEqualUnicodePathSuffix): Rename from RtlEqualPathSuffix.
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::link): Accommodate above
 | |
| 	change.
 | |
| 
 | |
| 2007-07-28  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* ntdll.h (RtlInitCountedUnicodeString): Swap order of string and length
 | |
| 	parameters to be the same as for RtlInitEmptyUnicodeString.
 | |
| 	(RtlEqualPathPrefix): New inline function.
 | |
| 	(RtlEqualPathSuffix): New inline function.
 | |
| 	* fhandler_disk_file.cc: Accommodate parameter order change of
 | |
| 	RtlInitEmptyUnicodeString throughout.
 | |
| 	(fhandler_disk_file::link): Do path checking in unicode.  Call
 | |
| 	CopyFileW instead of CopyFileA.
 | |
| 
 | |
| 2007-07-27  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* autoload.cc (CreateHardLinkA): Remove.
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::link): Drop GetBinaryType
 | |
| 	test.  Just check exe suffix instead.  Tune creating new file name.
 | |
| 	Implement creating hard link using native NT functions which works
 | |
| 	on all platforms.
 | |
| 	* ntdll.h (STATUS_INVALID_DEVICE_REQUEST): Define.
 | |
| 	(struct _FILE_LINK_INFORMATION): Define.
 | |
| 
 | |
| 2007-07-27  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::ftruncate): Use
 | |
| 	NtQueryInformationFile instead of GetFileSize, NtFsControlFile instead
 | |
| 	of DeviceIoControl.
 | |
| 
 | |
| 2007-07-27  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_base::fstat_by_name): Use
 | |
| 	RtlSplitUnicodePath.
 | |
| 	(fhandler_disk_file::fstat): Rename oret to opened.  Open file using NT
 | |
| 	functions right here.  Try to open parent dir instead of root directory
 | |
| 	to avoid call to rootdir.  Use NtFsControlFile.
 | |
| 	* ntdll.h (RtlSplitUnicodePath): Define.
 | |
| 
 | |
| 2007-07-27  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (is_volume_mountpoint): New static inline
 | |
| 	function.
 | |
| 	(path_conv::ndisk_links): Call is_volume_mountpoint.
 | |
| 	(fhandler_disk_file::readdir_helper): Ditto.
 | |
| 
 | |
| 2007-07-27  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (enum query_state): Drop redundant query_stat_control.
 | |
| 	* fhandler.cc (fhandler_base::open): Ditto.  Add READ_CONTROL to
 | |
| 	access and FILE_OPEN_FOR_BACKUP_INTENT to create_options when opening
 | |
| 	for writing.  Always set security attributes to avoid calling
 | |
| 	has_acls.
 | |
| 	* fhandler_disk_file.cc (fhandler_base::fstat_fs): Don't try to
 | |
| 	open file twice.
 | |
| 
 | |
| 2007-07-26  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* dir.cc (readdir_worker): Drop dir parameter from call to
 | |
| 	readdir_get_ino.
 | |
| 	* fhandler.h (fhandler_disk_file::readdir_helper): Switch file name
 | |
| 	parameter to PUNICODE_STRING.
 | |
| 	* fhandler_disk_file.cc: Drop including ntdef.h.
 | |
| 	(class __DIR_mounts): Store mount points in UNICODE.  Additionally
 | |
| 	store cygdrive prefix in unicode here.  Change methods accordingly.
 | |
| 	(__DIR_mounts::eval_ino): Call new stat_worker instead of lstat64.
 | |
| 	(__DIR_mounts::~__DIR_mounts): New destructor to free UNICODE buffers.
 | |
| 	(path_conv::ndisk_links): Rewrite using native NT functions.
 | |
| 	(fhandler_base::fstat_by_handle): Use NAME_MAX instead of CYG_MAX_PATH.
 | |
| 	Always set pfvi->VolumeSerialNumber to non-0.  Remove last resort
 | |
| 	code.
 | |
| 	(fhandler_base::fstat_by_name): Rewrite using native NT functions.
 | |
| 	(fhandler_base::fstat_fs): Always call fstat_by_name if fstat_by_handle
 | |
| 	fails.
 | |
| 	(fhandler_base::fstat_helper): Rely on dwVolumeSerialNumber.
 | |
| 	(fhandler_disk_file::facl): Call fstat_by_name if fstat_by_handle fails.
 | |
| 	(DIR_BUF_SIZE): Define using NAME_MAX instead of CYG_MAX_PATH.
 | |
| 	(__DIR_cache): Remove __name.
 | |
| 	(d_dirname): Remove.
 | |
| 	(fhandler_disk_file::opendir): Drop pathname length check.
 | |
| 	Remove outdated comment.  Use get_name method instead of accessing
 | |
| 	pc.normalized_path directly.
 | |
| 	(readdir_get_ino): Drop unused dir parameter.  Accomodate throughout.
 | |
| 	Allocate fname dynamically.  Call new stat_worker instead of lstat64.
 | |
| 	Call NtOpenFile instead of CreateFile.  Call NtClose instead of
 | |
| 	CloseHandle.
 | |
| 	(fhandler_disk_file::readdir_helper): Use native NT functions.
 | |
| 	Check for volume mount points and use correct inode number.
 | |
| 	(fhandler_disk_file::readdir): Simplify slightly.
 | |
| 	Use get_name instead of pc.normalized_path.
 | |
| 	(fhandler_disk_file::rewinddir): Use RtlInitUnicodeString.
 | |
| 	(fhandler_cygdrive::fstat): Ignore floppy drives.  Set st_nlink
 | |
| 	correctly.
 | |
| 	(fhandler_cygdrive::readdir): Ignore floppy drives.
 | |
| 	* fhandler_netdrive.cc (fhandler_netdrive::readdir): Accommodate
 | |
| 	change to readdir_get_ino.
 | |
| 	* fhandler_proc.cc (PROC_DIR_COUNT): Define.
 | |
| 	(fhandler_proc::fstat): Evaluate correct link count for /proc.
 | |
| 	* ntdll.h (struct _FILE_DIRECTORY_INFORMATION): Define.
 | |
| 	(NtFsControlFile): Declare.
 | |
| 	(RtlAppendUnicodeToString): Declare.
 | |
| 	(RtlAppendUnicodeStringToString): Declare.
 | |
| 	(RtlCompareUnicodeString): Declare.
 | |
| 	(RtlCopyUnicodeString): Declare.
 | |
| 	(RtlCreateUnicodeStringFromAsciiz): Declare.
 | |
| 	(RtlEqualUnicodeString): Declare.
 | |
| 	(RtlFreeUnicodeString): Declare.
 | |
| 	(RtlInitEmptyUnicodeString): Declare.
 | |
| 	(RtlSecondsSince1970ToTime): Declare.
 | |
| 	(RtlInitEmptyUnicodeString): Define as inline function.
 | |
| 	(RtlInitCountedUnicodeString): Define as inline function.
 | |
| 	* path.cc (path_conv::check): New method with PUNICODE_STRING as path,
 | |
| 	preliminary implementation.
 | |
| 	(mount_info::get_mounts_here): Change to create UNICODE_STRINGs.
 | |
| 	Also copy cygpath prefix into UNICODE_STRING.
 | |
| 	(is_floppy): Drop 9x consideration.
 | |
| 	* path.h: Drop including ntdef.h.
 | |
| 	(path_conv::check): Add declaration.
 | |
| 	(path_conv::path_conv): Add constructor for UNICODE_STRING paths.
 | |
| 	* shared_info.h (mount_info::get_mounts_here): Change declaration.
 | |
| 	* syscalls.cc: Drop forward declaration of stat_worker.
 | |
| 	(stat_worke): Take path_conv as parameter.  Drop nofollow flag.
 | |
| 	(stat64): Create matching path_conv and call stat_worker with it.
 | |
| 	(lstat64): Ditto.
 | |
| 	* winsup.h: Include ntdef.h.
 | |
| 	(stat_worker): Declare.
 | |
| 	(readdir_get_ino): Change declaration.
 | |
| 
 | |
| 2007-07-25  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* autoload.cc (CreateToolhelp32Snapshot): Remove.
 | |
| 
 | |
| 2007-07-25  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* autoload.cc (Process32First): Remove.
 | |
| 	(Process32Next): Remove.
 | |
| 
 | |
| 2007-07-25  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* autoload.cc (NetWkstaUserGetInfo): Remove.
 | |
| 	(CharToOemBuffA): Remove.
 | |
| 	(KillTimer): Remove.
 | |
| 	(OemToCharBuffA): Remove.
 | |
| 	(SetTimer): Remove.
 | |
| 
 | |
| 2007-07-20  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* Makefile.in (DLL_OFILES): Add sec_auth.o.
 | |
| 	* fhandler.cc (fhandler_base::fhaccess): Accommodate interface changes
 | |
| 	of access control functions throughout.
 | |
| 	* fhandler_disk_file.cc: Ditto.
 | |
| 	* fhandler_registry.cc: Ditto.
 | |
| 	* sec_acl.cc: Drop unnecessary includes.
 | |
| 	(setacl): Take path_conv instead of file name as parameter.
 | |
| 	Accommodate interface changes of access control functions.
 | |
| 	(getacl): Ditto.
 | |
| 	* sec_auth.cc: New file, taking over all authentication related
 | |
| 	functions from security.cc.
 | |
| 	* sec_helper.cc: Drop unnecessary includes.
 | |
| 	* security.cc: Ditto.  Move all authentication related functions to
 | |
| 	sec_auth.cc.
 | |
| 	(ALL_SECURITY_INFORMATION): New define.  Use throughout.
 | |
| 	(set_file_sd): New function, replacing read_sd and the file related
 | |
| 	part of get_nt_object_security.
 | |
| 	(get_reg_sd): Rename from get_reg_security.  Drop type parameter.
 | |
| 	(get_reg_attribute): New function, replacing the registry related part
 | |
| 	of get_nt_object_security.
 | |
| 	(get_file_attribute): Take path_conv instead of file name as parameter.
 | |
| 	Use new get_file_sd call.
 | |
| 	(set_file_attribute): Ditto plus new set_file_sd.  Drop unnecessary
 | |
| 	implementation without uid/gid parameters.
 | |
| 	(check_file_access): Take path_conv instead of file name as parameter.
 | |
| 	Use new get_file_sd call.
 | |
| 	(check_registry_access): Use new get_reg_sd call.
 | |
| 	* security.h: Accommodate above interface changes.
 | |
| 
 | |
| 2007-07-19  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* security.cc (set_nt_attribute): Remove.
 | |
| 	(set_file_attribute): Do it yourself instead of calling
 | |
| 	set_nt_attribute.
 | |
| 
 | |
| 2007-07-19  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_base::fstat_by_name): Use
 | |
| 	NtQueryFullAttributesFile instead of FindFirstFile.
 | |
| 	(fhandler_base::fstat_fs): Drop check for exec_state.  Drop check for
 | |
| 	invalid characters.
 | |
| 	* ntdll.h (struct _FILE_NETWORK_OPEN_INFORMATION): Define.
 | |
| 	(NtQueryFullAttributesFile): Declare.
 | |
| 
 | |
| 2007-07-19  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.cc (fhandler_base::open): Drop local wpath and upath
 | |
| 	variables.  Call pc.get_object_attr to create object attributes.
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::opendir): Ditto.
 | |
| 	* syscalls.cc (unlink_nt): Ditto.
 | |
| 	* path.cc (path_conv::set_normalized_path): Set wide_path to NULL.
 | |
| 	(path_conv::get_nt_native_path): Drop parameter.  Create path in
 | |
| 	wide_path/uni_path members.
 | |
| 	(path_conv::get_object_attr): New method to create object attributes.
 | |
| 	(path_conv::get_wide_win32_path): New method to create Win32 wide path.
 | |
| 	(path_conv::check): Initialize wide_path to NULL.
 | |
| 	(path_conv::~path_conv): cfree wide_path.
 | |
| 	* path.h (class path_conv): New members wide_path and uni_path.
 | |
| 	Add declarations of get_object_attr and get_wide_win32_path.
 | |
| 	(path_conv::path_conv): Initialize wide_path to NULL.
 | |
| 	(path_conv::get_nt_native_path): Drop parameter.
 | |
| 
 | |
| 2007-07-19  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* sec_helper.cc: Remove unused code.
 | |
| 
 | |
| 2007-07-19  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* autoload.cc (SetSecurityDescriptorControl): Drop.
 | |
| 	* security.cc (alloc_sd): Set security descriptor control flag without
 | |
| 	calling SetSecurityDescriptorControl function.
 | |
| 	* wincap.h (wincapc::has_dacl_protect): Rename from
 | |
| 	has_security_descriptor_control.
 | |
| 	* wincap.cc: Ditto throughout.
 | |
| 
 | |
| 2007-07-19  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* autoload.cc (SetUserObjectSecurity): Drop.
 | |
| 	* pinfo.cc (pinfo::set_acl): Use NtSetSecurityObject instead of
 | |
| 	SetKernelObjectSecurity.
 | |
| 	* spawn.cc (spawn_guts): Use NtSetSecurityObject instead of
 | |
| 	SetUserObjectSecurity.
 | |
| 	* uinfo.cc (cygheap_user::init): Ditto.
 | |
| 
 | |
| 2007-07-19  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygheap.h (init_cygheap::luid): Remove.
 | |
| 	* mmap.cc (mlock): Accommodate parameter change in call to
 | |
| 	push_thread_privilege.
 | |
| 	(munlock): Ditto.
 | |
| 	* ntdll.h (STATUS_NOT_ALL_ASSIGNED): Define.
 | |
| 	(NtAdjustPrivilegesToken): Declare.
 | |
| 	* sec_helper.cc (cygpriv): Reorder to match numerical privilege order.
 | |
| 	(privilege_luid): Take job of privilege_luid_by_name, using new
 | |
| 	cygpriv.
 | |
| 	(privilege_luid_by_name): Remove.
 | |
| 	(privilege_name): Accommodate new cygpriv array.
 | |
| 	(set_privilege): Call NtAdjustPrivilegesToken to avoid using advapi32.
 | |
| 	Accommodate changes to privilege_name.
 | |
| 	(set_cygwin_privileges): Simplify.  Don't try to set
 | |
| 	SE_CREATE_GLOBAL_PRIVILEGE on systems not supporting it.
 | |
| 	* security.cc (sys_privs): Reorder to match numerical privilege order.
 | |
| 	Use real privilege values as defined in security.h.
 | |
| 	(get_system_priv_list): Drop unused grp_list argument.  Create
 | |
| 	list of privileges according to new wincapc::max_sys_priv value.
 | |
| 	(get_priv_list): Call privilege_luid instead of privilege_luid_by_name.
 | |
| 	Make priv a local value instead of a pointer.
 | |
| 	(create_token): Accommodate parameter change in call to
 | |
| 	push_self_privilege.
 | |
| 	(lsaauth): Ditto.
 | |
| 	(check_access): Use privilege values directly instead of calling
 | |
| 	privilege_luid.
 | |
| 	* security.h: Define real privilege values.
 | |
| 	(cygpriv_idx): Remove.
 | |
| 	(privilege_luid): Change declaration.
 | |
| 	(privilege_luid_by_name): Drop declaration.
 | |
| 	(set_privilege): Change declaration.
 | |
| 	(set_process_privilege): Drop definition.
 | |
| 	(_push_thread_privilege): Accomodate new set_privilege parameters.
 | |
| 	* wincap.h (wincapc::max_sys_priv): New element.
 | |
| 	* wincap.cc: Implement above element throughout.
 | |
| 	(wincap_2000sp4): New wincaps structure.
 | |
| 	(wincap_xpsp1): Ditto.
 | |
| 	(wincap_xpsp2): Ditto.
 | |
| 	(wincapc::init): Use new wincaps.
 | |
| 	(wincapc::max_sys_priv): New element.
 | |
| 
 | |
| 2007-07-19  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* dcrt0.cc (dll_crt0_0): Call set_cygwin_privileges here, after
 | |
| 	initializing hProcToken.
 | |
| 	* sec_helper.cc (init_global_security): Don't call set_cygwin_privileges        here.
 | |
| 
 | |
| 2007-07-18  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygheap.h (shared_prefix): De-const.
 | |
| 	(shared_prefix_buf): Add static buffer for shared prefix to avoid
 | |
| 	additional allocation.
 | |
| 	* cygheap.cc (cygheap_init): Set cygheap->shared_prefix to
 | |
| 	cygheap->shared_prefix_buf and strcpy.
 | |
| 
 | |
| 2007-07-17  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.cc (fhandler_base::fhaccess): Add check for R/O file system.
 | |
| 	* security.cc (check_registry_access): Set errno to EROFS when checking
 | |
| 	for W_OK.
 | |
| 
 | |
| 2007-07-17  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::opendir): Move setting
 | |
| 	cfd->nohandle where it won't crash.
 | |
| 
 | |
| 2007-07-16  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygheap.h (cygheap_user::curr_imp_token): Rename from current_token.
 | |
| 	Accommodate change throughout Cygwin.
 | |
| 	(cygheap_user::imp_token): Rename from token.  Accommodate change
 | |
| 	throughout Cygwin.
 | |
| 	(rcygheap_user::eimpersonate): Use primary token for impersonation.
 | |
| 	* grp.cc (internal_getgroups): Use primary impersonation token when
 | |
| 	impersonated.
 | |
| 	* security.h (_push_thread_privilege): Use primary impersonation token
 | |
| 	when impersonated.
 | |
| 
 | |
| 2007-07-14  Christopher Faylor  <me+cygwin@cgf.cx>
 | |
| 
 | |
| 	* init.cc (in_dllentry): Delete.
 | |
| 	(dll_entry): Remove assignment to deleted variable.
 | |
| 	* winsup.h (in_dllentry): Delete declaration.
 | |
| 	* exceptions.cc (inside_kernel): Use another method to see if we are in
 | |
| 	dll_entry phase.
 | |
| 
 | |
| 2007-07-13  Christopher Faylor  <me+cygwin@cgf.cx>
 | |
| 
 | |
| 	* init.cc (in_dllentry): Make NO_COPY to avoid spurious false
 | |
| 	positives.
 | |
| 
 | |
| 2007-07-09  Christopher Faylor  <me+cygwin@cgf.cx>
 | |
| 
 | |
| 	* debug.cc (close_handle): Change debug output format slightly.
 | |
| 
 | |
| 	* dlfcn.cc (dlclose): Don't close handle returned from
 | |
| 	GetModuleHandle(NULL).
 | |
| 
 | |
| 	* fhandler.h (fhandler_pipe::create): Remove obsolete argument.
 | |
| 	(fhandler_pipe::create): Ditto.
 | |
| 	* fhandler.cc (fhandler_pipe::create): Ditto.
 | |
| 	(fhandler_pipe::create): Ditto.
 | |
| 
 | |
| 2007-07-09  Christopher Faylor  <me+cygwin@cgf.cx>
 | |
| 
 | |
| 	* strsig.cc (__signals): New macro.
 | |
| 	(sys_sigabbrev): New array of signal strings, patterned after linux.
 | |
| 	(siglist): Use __signals.
 | |
| 	* include/cygwin/signal.h (sys_sigabbrev): Define.
 | |
| 	* include/cygwin/version.h: Bump API minor version to 177.
 | |
| 
 | |
| 2007-07-09  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* dir.cc (closedir): Revert change from 2007-06-29.
 | |
| 	* fhandler.h (dirent_valid_fd): Drop.
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::opendir): If opening a
 | |
| 	real dir, use the underlying fhandler to keep track of the directory
 | |
| 	handle.  In fdopendir case use original io_handle from fhandler.  Use
 | |
| 	fhandler's io_handle in subsequent directory functions throughout.
 | |
| 	Create handle non-inheritable and set close-on-exec flag.
 | |
| 	(readdir_get_ino): Drop dirent_isroot case.
 | |
| 	(fhandler_disk_file::readdir): Handle dirent_isroot case here.
 | |
| 	(fhandler_disk_file::rewinddir): Revert change from 2007-07-05.  Use
 | |
| 	NtClose instead of CloseHandle.
 | |
| 	* fhandler_virtual.cc (fhandler_virtual::opendir): Drop adding
 | |
| 	dirent_valid_fd flag.  Set close-on-exec flag.
 | |
| 
 | |
| 2007-07-08  Christopher Faylor  <me+cygwin@cgf.cx>
 | |
| 
 | |
| 	* Makefile.in (DLL_OFILES): Add newly-imported random.o.  Eliminate
 | |
| 	reliance on libiberty.
 | |
| 	* random.cc: Import from FreeBSD.  Modify for Cygwin environment.
 | |
| 	* include/cygwin/stdlib.h (random): Reflect change in return value to
 | |
| 	be more linux/freebsd-like.
 | |
| 	(srandom): Ditto.
 | |
| 
 | |
| 2007-07-07  Christopher Faylor  <me+cygwin@cgf.cx>
 | |
| 
 | |
| 	* fhandler.h (fhandler_base::write): Remove __stdcall decoration.
 | |
| 	(fhandler_pipe::write): Ditto.
 | |
| 	(fhandler_fifo::write): Ditto.
 | |
| 
 | |
| 2007-07-07  Christopher Faylor  <me+cygwin@cgf.cx>
 | |
| 
 | |
| 	Preliminary change to make pipes interruptible and fifos reliable.
 | |
| 	* dtable.cc (dtable::find_fifo): Eliminate definition.
 | |
| 	* dtable.h (dtable::find_fifo): Ditto for declaration.
 | |
| 	* fhandler.cc (fhandler_base::raw_read): Remove pipe-specific stuff.
 | |
| 	(fhandler_base::fhandler_base): Ditto.
 | |
| 	(fhandler_base::close): Handle overlapped I/O structure if appropriate.
 | |
| 	(fhandler_base::dup): Ditto.
 | |
| 	(fhandler_base::fork_fixup): Ditto.
 | |
| 	(fhandler_base::setup_overlapped): Define new function.
 | |
| 	(fhandler_base::destroy_overlapped): Ditto.
 | |
| 	(fhandler_base::wait_overlapped): Ditto.
 | |
| 	(fhandler_base::read_overlapped): Ditto.
 | |
| 	(fhandler_base::write_overlapped): Ditto.
 | |
| 	* fhandler.h (fhandler_base::get_overlapped): Declare new function.
 | |
| 	(fhandler_base::setup_overlapped): Ditto.
 | |
| 	(fhandler_base::destroy_overlapped): Ditto.
 | |
| 	(fhandler_base::wait_overlapped): Ditto.
 | |
| 	(fhandler_base::read_overlapped): Ditto.
 | |
| 	(fhandler_base::write_overlapped): Ditto.
 | |
| 	(fhandler_base::get_guard): Eliminate.
 | |
| 	(fhandler_pipe::*): Rework to eliminate most Win9x related cruft,
 | |
| 	removing many variables and defining a new overlapped capability.
 | |
| 	(fhandler_fifo::*): Ditto.
 | |
| 	(fifo_state): Declare new enum.
 | |
| 	* fhandler_fifo.cc (fhandler_fifo::fhandler_fifo): Remove old Win9x
 | |
| 	stuff.  Initialize overlapped handle to NULL.
 | |
| 	(fhandler_fifo::set_use): Eliminate.
 | |
| 	(fhandler_fifo::open_nonserver): Define.
 | |
| 	(fhandler_fifo::open): Rework to use named pipes and overlapped I/O.
 | |
| 	(fhandler_fifo::wait): Define new function to wait for named pipe
 | |
| 	connection.
 | |
| 	(fhandler_fifo::read): Rework to use wait() and new overlapped I/O
 | |
| 	functionality.
 | |
| 	(fhandler_fifo::write): Ditto.
 | |
| 	(fhandler_fifo::dup): Eliminate.
 | |
| 	* pinfo.cc (commune_process): Remove fifo handling.
 | |
| 	(_pinfo::commune_request): Ditto.
 | |
| 	* pinfo.h (picom): Ditto.
 | |
| 	* pipe.cc (fhandler_pipe::fhandler_pipe): Remove Win9x stuff.
 | |
| 	Initialize overlapped handle to NULL.
 | |
| 	(fhandler_pipe::open): Eliminate Win9x stuff.
 | |
| 	(fhandler_pipe::set_close_on_exec): Eliminate.
 | |
| 	(read_pipe): Eliminate.
 | |
| 	(fhandler_pipe::close): Ditto.
 | |
| 	(fhandler_pipe::fixup_after_exec): Ditto.
 | |
| 	(fhandler_pipe::fixup_in_child): Ditto.
 | |
| 	(fhandler_pipe::read): Rework to use overlapped I/O.
 | |
| 	(fhandler_pipe::write): New function using overlapped I/O.
 | |
| 	(fhandler_pipe::dup): Rework to eliminate Win9x stuff.
 | |
| 	(fhandler_pipe::create_selectable): Rework to eliminate Win9x and use
 | |
| 	overlapped I/O.
 | |
| 	* select.cc (peek_pipe): Rework to eliminate Win9x stuff and use
 | |
| 	overlapped I/O.
 | |
| 	(fhandler_base::ready_for_read): Ditto.
 | |
| 
 | |
| 2007-07-07  Christopher Faylor  <me+cygwin@cgf.cx>
 | |
| 
 | |
| 	* path.cc (symlink_info::check_shortcut): Handle device "symlinks"
 | |
| 	specially - don't posixify them.
 | |
| 
 | |
| 2007-07-07  Christopher Faylor  <me+cygwin@cgf.cx>
 | |
| 
 | |
| 	* fhandler_disk_file.cc: White space.
 | |
| 	* fhandler_proc.cc: Ditto.
 | |
| 	* fhandler_virtual.cc: Ditto.
 | |
| 
 | |
| 2007-07-07  Christopher Faylor  <me+cygwin@cgf.cx>
 | |
| 
 | |
| 	* fork.cc: White space.
 | |
| 	* net.cc: Ditto.
 | |
| 	* posix_ipc.cc: Ditto.
 | |
| 
 | |
| 2007-07-06  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* times.cc (gettimeofday): Align definition to POSIX.
 | |
| 
 | |
| 2007-07-06  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygwin.din: Export wcstol, wcstoll, wcstoul, wcstoull, wcsxfrm.
 | |
| 	* include/cygwin/version.h: Bump API minor number.
 | |
| 
 | |
| 2007-07-05  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::opendir): Add missing
 | |
| 	OBJ_INHERIT flag when creating OBJECT_ATTRIBUTES.
 | |
| 	(fhandler_disk_file::rewinddir): Ditto.
 | |
| 
 | |
| 2007-07-04  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* times.cc: Define __timezonefunc__ before including time.h to protect
 | |
| 	definition of timezone function.
 | |
| 
 | |
| 2007-07-04  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* include/cygwin/time.h: Switch to timezone variable by default.  Add
 | |
| 	comment.
 | |
| 
 | |
| 2007-06-29  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygwin.din: Export fdopendir.
 | |
| 	* dir.cc (opendir): Call fhandler's opendir with fd set to -1.
 | |
| 	(fdopendir): New function.
 | |
| 	(seekdir64): Use dirent_info_mask.
 | |
| 	(rewinddir): Ditto.
 | |
| 	(closedir): Only release underlying file descriptor if it has been
 | |
| 	reserved by opendir itself.
 | |
| 	* fhandler.cc (fhandler_base::opendir): Accommodate new parameter.
 | |
| 	* fhandler.h (dirent_states): Add dirent_valid_fd and dirent_info_mask.
 | |
| 	(fhander_XXX::opendir): Add file descriptor parameter.  Use regparms.
 | |
| 	(fhandler_procnet::opendir): Drop declaration.
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::opendir): Ditto.
 | |
| 	If called from fdopendir, use existing handle to re-open directory
 | |
| 	with valid flags.  Rename fd to cfd.  Use only if no valid incoming fd.
 | |
| 	(fhandler_cygdrive::opendir): Accommodate new parameter.
 | |
| 	* fhandler_process.cc (fhandler_process::opendir): Ditto.
 | |
| 	* fhandler_procnet.cc (fhandler_procnet::opendir): Drop definition.
 | |
| 	* fhandler_virtual.cc (fhandler_virtual::opendir): Accommodate new
 | |
| 	parameter.  Only create new file descriptor entry if called from
 | |
| 	opendir.  Remove duplicated setting of dir->__flags.
 | |
| 	* posix.sgml: Add fdopendir to list of implemented Solaris functions.
 | |
| 	* include/cygwin/version.h: Bump API minor number.
 | |
| 	* include/sys/dirent.h: Declare fdopendir.
 | |
| 
 | |
| 2007-06-28  Brian Dessent  <brian@dessent.net>
 | |
| 
 | |
| 	* include/cygwin/version.h: Fix comment typo.
 | |
| 
 | |
| 2007-06-28  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygwin.din: Export stpcpy, stpncpy.
 | |
| 	* posix.sgml: Add stpcpy and stpncpy to list of implemented
 | |
| 	GNU extensions.
 | |
| 	* include/cygwin/version.h: Bump API minor number.
 | |
| 
 | |
| 2007-06-27  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* shared_info.h (SHARED_INFO_CB): Accommodate change to shared_info.
 | |
| 	(CURR_SHARED_MAGIC): Ditto.
 | |
| 	(class shared_info): Add heap_slop_inited member.
 | |
| 	* shared.cc (shared_info::heap_slop_size): Use heap_slop_inited to
 | |
| 	track initializing heap_slop since 0 is a valid value for heap_slop.
 | |
| 	Drop useless < 0 consideration.
 | |
| 
 | |
| 2007-06-27  Eric Blake  <ebb9@byu.net>
 | |
| 
 | |
| 	* assert.cc (__assert_func): New function, to match newlib header
 | |
| 	change.
 | |
| 	* cygwin.din: Export __assert_func.
 | |
| 	* include/cygwin/version.h: Bump API minor number.
 | |
| 
 | |
| 2007-06-21  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* autoload.cc (WSAIoctl): Remove.
 | |
| 	* cygwin.din: Export freeifaddrs, getifaddrs.
 | |
| 	* fhandler_socket.cc (fhandler_socket::ioctl): Drop SOCKET parameter
 | |
| 	from get_ifconf.
 | |
| 	* net.cc: Include ifaddrs.h.
 | |
| 	(in_are_prefix_equal): Match addresses in network byte order.
 | |
| 	(ip_addr_prefix): Convert address into host byte order before
 | |
| 	testing with IN_LOOPBACK.
 | |
| 	(struct ifall): Define.
 | |
| 	(get_xp_ifs): Replace get_xp_ifconf.  Return struct ifall array.
 | |
| 	(get_2k_ifs): Ditto, replace get_2k_ifconf.
 | |
| 	(get_nt_ifs): Ditto, replace get_nt_ifconf.
 | |
| 	(getifaddrs): New function.
 | |
| 	(freeifaddrs): New function.
 | |
| 	(get_ifconf): Call matching get_XX_ifs function and create
 | |
| 	ifc content from here.  Drop lo fake since it's now in get_nt_ifs.
 | |
| 	* posix.sgml: Add freeifaddrs and getifaddrs to list of implemented
 | |
| 	BSD functions.
 | |
| 	* wincap.h (wincapc::has_broken_if_oper_status): New element.
 | |
| 	* wincap.cc: Implement above element throughout.
 | |
| 	* include/ifaddrs.h: New file.
 | |
| 	* include/cygwin/version.h: Bump API minor number.
 | |
| 
 | |
| 2007-06-20  Eric Blake  <ebb9@byu.net>
 | |
| 
 | |
| 	* cygwin.din: Export exp10, exp10f, pow10, pow10f, strcasestr,
 | |
| 	funopen, fopencookie.
 | |
| 	* include/cygwin/version.h: Bump API minor number.
 | |
| 	* posix.sgml: Minor improvements.
 | |
| 
 | |
| 2007-06-20  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* include/cygwin/if.h (IFF_POINTOPOINT): Fix typo.
 | |
| 
 | |
| 2007-06-16  Christopher Faylor  <me+cygwin@cgf.cx>
 | |
| 
 | |
| 	* include/search.h: Reinstate node_t definition.
 | |
| 
 | |
| 2007-06-16  Christopher Faylor  <me+cygwin@cgf.cx>
 | |
| 
 | |
| 	* include/sys/cdefs.h: Remove in favor of newlib version.
 | |
| 
 | |
| 2007-06-14  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* autoload.cc (GetIpForwardTable): Define.
 | |
| 	* fhandler_socket.cc (fhandler_socket::ioctl): Handle SIOCGIFDSTADDR.
 | |
| 	* net.cc (get_routedst): New static function to get destination
 | |
| 	address of point-to-point interfaces.
 | |
| 	(get_xp_ifconf): Handle SIOCGIFDSTADDR.
 | |
| 	(get_2k_ifconf): Ditto.
 | |
| 	(get_nt_ifconf): Ditto.
 | |
| 	(get_ifconf): Ditto.
 | |
| 	* include/asm/socket.h (SIOCGIFDSTADDR): Define.
 | |
| 	* include/cygwin/if.h (struct ifreq): Add ifru_dstaddr member.
 | |
| 	(ifr_dstaddr): Define.
 | |
| 	* include/cygwin/in.h: Cast ipv4 addresses correctly to in_addr_t in
 | |
| 	definitions.
 | |
| 
 | |
| 2007-06-12  Christopher Faylor  <me+cygwin@cgf.cx>
 | |
| 
 | |
| 	* signal.cc (usleep): Use useconds_t for the type as per POSIX.
 | |
| 
 | |
| 2007-06-12  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* Makefile.in (DLL_OFILES): Add xsique.o.
 | |
| 	* cygwin.din (confstr): Make NOSIGFE.
 | |
| 	(insque): Export.
 | |
| 	(remque): Export.
 | |
| 	* lsearch.cc: Remove superfluous _SEARCH_PRIVATE define.
 | |
| 	* posix.sgml: Move insque to defined SUSv3 interfaces.  Remove
 | |
| 	comment for remque.
 | |
| 	* include/search.h: Remove _SEARCH_PRIVATE guarded definitions.
 | |
| 	Add struct qelem definition.  Add insque and remque declarations.
 | |
| 	* include/cygwin/version.h: Bump API minor number.
 | |
| 	* include/sys/queue.h: Remove insque/remque definitions so as not
 | |
| 	to collide with SUSv3 compatible declaration in search.h.
 | |
| 	* libc/xsique.cc: New file implementing insque and remque.
 | |
| 
 | |
| 2007-06-12  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.cc (fhandler_base::fstat): Set pipe permission bits more
 | |
| 	correctly.
 | |
| 
 | |
| 2007-06-11  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygwin.din (confstr): Export.
 | |
| 	* posix.sgml (confstr): Move to list of implemented SUSv3 functions.
 | |
| 	* sysconf.cc (confstr): Implement.
 | |
| 	* include/cygwin/version.h: Bump API minor number.
 | |
| 
 | |
| 2007-06-05  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* ansi.sgml: Delete.
 | |
| 	* misc-std.sgml: Delete.
 | |
| 	* posix.sgml: Rework entirely.
 | |
| 
 | |
| 2007-05-29  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* dtable.cc (dtable::set_file_pointers_for_exec): Call SetFilePointer
 | |
| 	correctly for 64 bit file access.  Comment out functionality.
 | |
| 	* fhandler.cc (fhandler_base::open): Don't set append_mode.
 | |
| 	(fhandler_base::write): Check for O_APPEND instead of append_mode.
 | |
| 	Call SetFilePointer correctly for 64 bit file access.  Handle
 | |
| 	errors from SetFilePointer.
 | |
| 	* fhandler.h (class fhandler_base): Drop append_mode status flag.
 | |
| 	* fhandler_disk_file.cc (fhandler_base::fstat_helper): Handle
 | |
| 	seeking correctly for 64 bit file access.
 | |
| 
 | |
| 2007-05-22  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* path.cc (cwdstuff::set): Revert useless acquire check.
 | |
| 
 | |
| 2007-05-22  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* path.cc (cwdstuff::set): Avoid double aquiring of cwd_lock.
 | |
| 	Open directory with inheriting enabled.
 | |
| 
 | |
| 2007-05-21  Christian Franke <franke@computer.org>
 | |
| 
 | |
| 	* fhandler_floppy.cc (fhandler_dev_floppy::lseek): Don't invalidate
 | |
| 	devbuf if new position is within buffered range.
 | |
| 
 | |
| 2007-05-21  Eric Blake  <ebb9@byu.net>
 | |
| 
 | |
| 	* include/search.h (hsearch_r): Provide declaration.
 | |
| 
 | |
| 2007-05-21  Christian Franke <franke@computer.org>
 | |
| 	    Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_floppy.cc (fhandler_dev_floppy::lseek): Set buf size to
 | |
| 	sector size.  Simplify non-sector aligned case.  Handle errors from
 | |
| 	raw_read.
 | |
| 
 | |
| 2007-05-15  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_socket.cc (adjust_socket_file_mode): New inline function.
 | |
| 	(fhandler_socket::fchmod): Squeeze mode through adjust_socket_file_mode
 | |
| 	before using it.
 | |
| 	(fhandler_socket::bind): Ditto.
 | |
| 
 | |
| 2007-03-19  Ryan C. Gordon  <icculus@icculus.org>
 | |
| 
 | |
| 	* path.cc (fs_info::update): Set and use is_cdrom.
 | |
| 	* path.cc (fillout_mntent): Set ret.mnt_type to something more
 | |
| 	Linux-like, based on data from fs_info.  Move "system" and "user"
 | |
| 	strings from mnt_type to mnt_opts.
 | |
| 	* path.h (struct fs_info): Add is_cdrom field.
 | |
| 	* path.h (fs_info::clear): Initialize is_cdrom.
 | |
| 	* path.h (struct fs_info): Add IMPLEMENT_STATUS_FLAG(bool,is_cdrom).
 | |
| 	* path.h (class path_conv): Add fs_is_cdrom method.  Add missing
 | |
| 	fs_is_netapp method.
 | |
| 
 | |
| 2007-05-14  Eric Blake  <ebb9@byu.net>
 | |
| 
 | |
| 	* cygwin.din (asnprintf, dprint, _Exit, vasnprintf, vdprintf): Export.
 | |
| 	* include/cygwin/version.h: Bump API minor number.
 | |
| 
 | |
| 2007-04-18  Brian Dessent  <brian@dessent.net>
 | |
| 
 | |
| 	* cygwin.sc: Remove duplicated .debug_macinfo section.
 | |
| 	* dllfixdbg: Also copy DWARF-2 sections into .dbg file.
 | |
| 
 | |
| 2007-04-06  Eric Blake  <ebb9@byu.net>
 | |
| 
 | |
| 	* include/stdint.h (WINT_MIN): Fix sign.
 | |
| 
 | |
| 2007-04-04  Eric Blake  <ebb9@byu.net>
 | |
| 
 | |
| 	* include/stdint.h (WINT_MIN, WINT_MAX): Fix definition.
 | |
| 
 | |
| 2007-03-30  Christopher Faylor  <me@cgf.cx>
 | |
| 
 | |
| 	* external.cc (cygwin_internal): Implement CW_SET_DOS_FILE_WARNING.
 | |
| 	* include/sys/cygwin.h: Define CW_SET_DOS_FILE_WARNING.
 | |
| 
 | |
| 2007-03-29  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygheap.cc (cygheap_init): Fix formatting.  Remove comment.  Set
 | |
| 	shared_prefix depending only on terminal service capability.
 | |
| 	* dcrt0.cc (dll_crt0_1): Don't call set_cygwin_privileges here.
 | |
| 	* fhandler_fifo.cc (fhandler_fifo::open): Create the mutex as global
 | |
| 	object.
 | |
| 	* posix_ipc.cc (ipc_mutex_init): Use cygheap->shared_prefix.
 | |
| 	(ipc_cond_init): Ditto.
 | |
| 	* sec_helper.cc (privilege_name): Make static.  Use LookupPrivilegeName
 | |
| 	directly to be independent of the state of cygheap.
 | |
| 	(set_privilege): Take a LUID as parameter instead of an index value.
 | |
| 	Only print debug output in case of failure.
 | |
| 	(set_cygwin_privileges): Add comment.  Use LookupPrivilegeValue to
 | |
| 	get privilege LUIDs.
 | |
| 	(init_global_security): Call set_cygwin_privileges here.
 | |
| 	* security.h (privilege_name): Drop declaration.
 | |
| 	(set_privilege): Declare according to above change.
 | |
| 	(set_process_privilege): Call privilege_luid to get LUID.
 | |
| 	(_push_thread_privilege): Ditto.
 | |
| 	* shared.cc (open_shared): Add comment.  On systems supporting the
 | |
| 	SeCreateGlobalPrivilege, try to create/open global shared memory first.
 | |
| 	Fall back to local shared memory if that fails.
 | |
| 	* thread.cc (semaphore::semaphore): Use cygheap->shared_prefix.
 | |
| 	* wincap.h (wincapc::has_create_global_privilege): New element.
 | |
| 	* wincap.cc: Implement above element throughout.
 | |
| 
 | |
| 2007-03-28  Christopher Faylor  <me@cgf.cx>
 | |
| 
 | |
| 	* spawn.cc (spawn_guts): Start pure-windows processes in a suspended
 | |
| 	state to avoid potential DuplicateHandle problems.
 | |
| 
 | |
| 2007-03-13  Eric Blake  <ebb9@byu.net>
 | |
| 
 | |
| 	* include/cygwin/stat.h (S_TYPEISMQ, S_TYPEISSEM, S_TYPEISSHM):
 | |
| 	Avoid compiler warnings.
 | |
| 
 | |
| 2007-03-07  Christopher Faylor  <me@cgf.cx>
 | |
| 
 | |
| 	* signal.cc (handle_sigprocmask): Remove extraneous
 | |
| 	sig_dispatch_pending.
 | |
| 
 | |
| 2007-03-07  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_proc.cc: Fix formatting.  Drop setting errno when creating
 | |
| 	proc file content.
 | |
| 	(format_proc_uptime): Simplify.
 | |
| 	(format_proc_cpuinfo): Align more closely to output of Linux 2.6 kernel.
 | |
| 	Evaluate more data, especially for AMD CPUs.
 | |
| 
 | |
| 2007-03-06  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (fhandler_base::fstat_helper): Add creation time parameter.
 | |
| 	* glob.cc (stat32_to_stat64): Set st_birthtim to st_mtim.
 | |
| 
 | |
| 2007-03-06  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* include/cygwin/stat.h (S_TYPEISMQ): Define.
 | |
| 	(S_TYPEISSEM): Dttio.
 | |
| 	(S_TYPEISSHM): Ditto.
 | |
| 
 | |
| 2007-03-06  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_mailslot.cc (fhandler_mailslot::fstat): Set new stat member
 | |
| 	st_birthtim to useful value.
 | |
| 	* fhandler_process.cc (fhandler_process::fstat): Ditto.
 | |
| 	* fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Take
 | |
| 	additional parameter for creation time.  Fill st_birthtim with it.
 | |
| 	Accomodate additional creation time parameter throughout.
 | |
| 	* fhandler_raw.cc (fhandler_dev_raw::fstat): Set new stat member
 | |
| 	st_birthtim to useful value.
 | |
| 	* fhandler.cc (fhandler_base::fstat): Ditto.
 | |
| 	* fhandler_registry.cc (fhandler_registry::fstat): Ditto.
 | |
| 	* include/cygwin/version.h: Bump API minor number.
 | |
| 	* include/cygwin/stat.h (struct __stat64): Replace st_spare4 with
 | |
| 	timestruc_t st_birthtim.
 | |
| 	(struct stat): Ditto if __CYGWIN_USE_BIG_TYPES__ is defined.
 | |
| 	(st_birthtime): Define if __CYGWIN_USE_BIG_TYPES__ is defined.
 | |
| 
 | |
| 2007-03-02  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* ntdll.h (struct _FILE_NAMES_INFORMATION): Define.
 | |
| 	* syscalls.cc (unlink_nt): Check shared directory for being empty
 | |
| 	before trying to move and mark for deletion.
 | |
| 
 | |
| 2007-03-02  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* security.cc (get_file_attribute): Avoid compiler warning.
 | |
| 
 | |
| 2007-03-01  Christopher Faylor  <me@cgf.cx>
 | |
| 
 | |
| 	* fork.cc (fork): Reset child to true after fork since it may have been
 | |
| 	reset by fork memory copies.
 | |
| 
 | |
| 2007-03-01  Christopher Faylor  <me@cgf.cx>
 | |
| 
 | |
| 	* Makefile (DLL_OFILES): Remove ntea.o
 | |
| 	* environ.cc (set_ntea): Delete.
 | |
| 	(parse_thing): Delete "ntea" setting.
 | |
| 	* fhandler.cc (fhandler_base::open): Remove allow_ntea considerations.
 | |
| 	(check_posix_perm): Ditto.
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::fchmod): Ditto.
 | |
| 	(fhandler_base::open_fs): Ditto.
 | |
| 	(fhandler_disk_file::mkdir): Ditto.
 | |
| 	* path.cc (symlink_worker): Ditto.
 | |
| 	* security.cc (get_file_attribute): Ditto.
 | |
| 	(set_file_attribute): Ditto.
 | |
| 	* security.h: Remove allow_ntea declaration.
 | |
| 
 | |
| 2007-02-27  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* path.cc (close_user_proc_parms_cwd_handle): Remove.
 | |
| 	(cwdstuff::init): Don't call close_user_proc_parms_cwd_handle.
 | |
| 	Call set to set cwd with all-sharing handle.
 | |
| 	(cwdstuff::set): Fix comment.  Don't close cwd handle.  Set in
 | |
| 	user parameter block instead and close old cwd handle.
 | |
| 	* syscalls.cc (rename): Call unlink_nt instead of RemoveDirectory or
 | |
| 	DeleteFile to allow deleting shared files/directories.
 | |
| 
 | |
| 2007-02-27  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.cc(fhandler_base::open): Open with READ_CONTROL only in
 | |
| 	case of query_open flag set to query_read_control.  Add case for
 | |
| 	new query_read_attributes flag.
 | |
| 	(fhandler_base::fstatvfs): New method.
 | |
| 	* fhandler.h (enum query_state): Add query_read_attributes flag.
 | |
| 	(class fhandler_base): Declare new virtual fstatvfs method.
 | |
| 	(class fhandler_socket): Ditto.
 | |
| 	(class fhandler_pipe): Ditto.
 | |
| 	(class fhandler_fifo): Ditto.
 | |
| 	(class fhandler_disk_file): Ditto.
 | |
| 	(class fhandler_virtual): Ditto.
 | |
| 	* fhandler_disk_file.cc (fhandler_base::fstat_fs): Open with
 | |
| 	query_read_attributes instead of query_read_control.
 | |
| 	(fhandler_disk_file::fstatvfs): New method.
 | |
| 	(fhandler_disk_file::facl): Open with query_read_attributes instead of
 | |
| 	query_read_control.
 | |
| 	* fhandler_fifo.cc (fhandler_fifo::fstatvfs): New method.
 | |
| 	* fhandler_socket.cc (fhandler_socket::fstatvfs): New method.
 | |
| 	(fhandler_socket::fchmod): Return with EBADF in the default case.
 | |
| 	(fhandler_socket::fchown): Ditto.
 | |
| 	(fhandler_socket::facl): Ditto.
 | |
| 	* fhandler_virtual.cc (fhandler_virtual::fstatvfs): Ditto.
 | |
| 	* ntdll.h (struct _FILE_FS_ATTRIBUTE_INFORMATION): Define.
 | |
| 	(struct _FILE_FS_FULL_SIZE_INFORMATION): Define.
 | |
| 	* pipe.cc (fhandler_pipe::fstatvfs): New method.
 | |
| 	* syscalls.cc (fstatvfs): Just call the fhandler's fstatvfs.
 | |
| 	(statvfs): Ditto.
 | |
| 	(fstatfs): Call fstatvfs.
 | |
| 	(statfs): Drop EFAULT handling.
 | |
| 
 | |
| 2007-02-26  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.cc (fhandler_base::fstat): Set all file times to arbitrary
 | |
| 	fixed value.
 | |
| 
 | |
| 2007-02-26  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_registry.cc (registry_listing): Drop name of HKEY_DYN_DATA.
 | |
| 	(registry_keys): Drop HKEY_DYN_DATA.
 | |
| 	* net.cc: Fix comment.
 | |
| 	* syslog.cc: Ditto.
 | |
| 
 | |
| 2007-02-26  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::fchmod): Drop comment.
 | |
| 	* mmap.cc (gen_access): Remove.
 | |
| 	(mmap_record::gen_access): Remove.
 | |
| 	(mmap64): Don't mention 9x any longer.
 | |
| 	* syscalls.cc (statvfs): Drop status code consideration for 9x.
 | |
| 	* libc/minires-os-if.c (get_registry_dns_items): Don't mention 9x any
 | |
| 	longer.
 | |
| 	(get_registry_dns): Drop getting registry key on 9x.  Drop is9x
 | |
| 	variable.
 | |
| 
 | |
| 2007-02-23  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	Throughout remove all usage of wincap.has_security.
 | |
| 	* environ.cc (environ_init): Drop setting allow_ntsec here.
 | |
| 	* grp.cc (initgroups32): Drop usage of label "out".
 | |
| 	* security.cc (allow_ntsec): Set to true by default.
 | |
| 	* syscalls.cc (seteuid32): Remove label success_9x.
 | |
| 	* wincap.cc: Remove has_security throughout.
 | |
| 	* wincap.h: Ditto.
 | |
| 
 | |
| 2007-02-23  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (class fhandler_pipe): Remove members writepipe_exists,
 | |
| 	orig_pid and id.  Make hit_eof inline.
 | |
| 	* fhandler_fifo.cc (fhandler_fifo::open): Drop handling of
 | |
| 	writepipe_exists, orig_pid and id.
 | |
| 	* pipe.cc: Ditto throughout.
 | |
| 	(pipecount): Remove.
 | |
| 	(pipeid_fmt): Remove.
 | |
| 	(fhandler_pipe::hit_eof): Simplify.  Move to fhandler.h.
 | |
| 	(fhandler_pipe::dup): Drop leave label.
 | |
| 	(fhandler_pipe::create): Drop has_unreliable_pipes case.
 | |
| 	* wincap.cc: Remove has_unreliable_pipes throughout.
 | |
| 	* wincap.h: Ditto.
 | |
| 
 | |
| 2007-02-23  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* devices.in: Change native device name to native NT device name for
 | |
| 	/dev/null, /dev/comX and /dev/ttySx.
 | |
| 	* devices.cc: Regenerate.
 | |
| 	* fhandler.cc (fhandler_base::open_9x): Remove.
 | |
| 	(fhandler_base::open): Don't test for DOS device name, don't call
 | |
| 	open_9x.
 | |
| 	(fhandler_dev_null::open): Remove.
 | |
| 	* fhandler.h (class fhandler_base): Drop open_9x declaration.
 | |
| 	(class fhandler_dev_null): Drop open declaration.
 | |
| 
 | |
| 2007-02-23  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_console.cc (fhandler_console::need_invisible): Drop
 | |
| 	pty_needs_alloc_console check.
 | |
| 	* spawn.cc (spawn_guts): Ditto.
 | |
| 	(av::fixup): Remove setting iscui.
 | |
| 	* syscalls.cc (rename): Drop has_move_file_ex checks.  Remove 9x
 | |
| 	specific code.
 | |
| 	* wincap.cc: Remove has_move_file_ex and pty_needs_alloc_console
 | |
| 	throughout.
 | |
| 	* wincap.h: Ditto.
 | |
| 
 | |
| 2007-02-23  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* exceptions.cc (dummy_ctrl_c_handler): Remove.
 | |
| 	(init_console_handler): Drop has_null_console_handler_routine checks.
 | |
| 	* fhandler_raw.cc (fhandler_dev_raw::open): Drop has_raw_devices check.
 | |
| 	* fhandler_serial.cc (fhandler_serial::open): Drop
 | |
| 	.supports_reading_modem_output_lines check.
 | |
| 	* miscfuncs.cc (low_priority_sleep): Drop has_switch_to_thread check.
 | |
| 	* shared.cc (open_shared): Drop needs_memory_protection checks.
 | |
| 	* spawn.cc (spawn_guts): Drop start_proc_suspended check.
 | |
| 	* uname.cc (uname): Drop has_valid_processorlevel check.
 | |
| 	* wincap.cc: Remove has_raw_devices, has_valid_processorlevel,
 | |
| 	supports_reading_modem_output_lines, needs_memory_protection,
 | |
| 	has_switch_to_thread, start_proc_suspended and
 | |
| 	has_null_console_handler_routine throughout.
 | |
| 	* wincap.h: Ditto.
 | |
| 
 | |
| 2007-02-23  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.cc (fhandler_base::lseek): Drop 9x considerations.
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::lock): Ditto.
 | |
| 	* wincap.cc: Remove lock_file_highword and has_64bit_file_access
 | |
| 	throughout.
 | |
| 	* wincap.h: Ditto.
 | |
| 
 | |
| 2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygheap.h (struct cwdstuff): Remove sync member and keep_in_sync
 | |
| 	accessors.
 | |
| 	* external.cc (cygwin_internal): Drop call to cygheap->cwd.keep_in_sync.
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::link): Always presume
 | |
| 	ability to create hard links.
 | |
| 	* path.cc (cwdstuff::init): Drop 9x considerations.
 | |
| 	(cwdstuff::keep_in_sync): Remove.
 | |
| 	(cwdstuff::set): Take NT for granted.
 | |
| 	* pinfo.h (cygwin_pid): Just return pid.
 | |
| 	* wincap.cc: Remove has_hard_links, can_open_directories,
 | |
| 	has_negative_pids, has_named_pipes, has_try_enter_critical_section,
 | |
| 	cant_debug_dll_entry and detect_win16_exe throughout.
 | |
| 	* wincap.h: Ditto.
 | |
| 
 | |
| 2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_console.cc (fhandler_console::read): Drop 9x specific
 | |
| 	handling of AltGr key.
 | |
| 	* mmap.cc: Take NT for granted throughout.
 | |
| 	* wincap.cc: Remove map_view_of_file_ex_sucks, altgr_is_ctrl_alt,
 | |
| 	has_working_copy_on_write, share_mmaps_only_by_name,
 | |
| 	virtual_protect_works_on_shared_pages, has_mmap_alignment_bug and
 | |
| 	has_working_virtual_lock throughout.
 | |
| 	* wincap.h: Ditto.
 | |
| 
 | |
| 2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.cc (fhandler_base::set_no_inheritance): Always use
 | |
| 	SetHandleInformation.
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::lock): Always use
 | |
| 	UnlockFileEx/LockFileEx functions.
 | |
| 	* net.cc (fdsock): Don't bother to duplicate socket for inheritance.
 | |
| 	* sysconf.cc (get_nproc_values): Take NT for granted.
 | |
| 	(get_avphys): Ditto.
 | |
| 	* syslog.cc (WIN95_EVENT_LOG_PATH): Remove define.
 | |
| 	(get_win95_event_log_path): Remove.
 | |
| 	(vsyslog): Fix formatting.  Take NT for granted.
 | |
| 	* wincap.cc: Remove has_lock_file_ex, has_signal_object_and_wait,
 | |
| 	has_eventlog, has_set_handle_information,
 | |
| 	has_set_handle_information_on_console_handles and supports_smp
 | |
| 	throughout.
 | |
| 	* wincap.h: Ditto.
 | |
| 
 | |
| 2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* dir.cc (rmdir): Move existance check in front of
 | |
| 	has_dot_last_component check.  Simplify setting errno in latter case.
 | |
| 
 | |
| 2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.cc (fhandler_base::write): Remove wincap.has_lseek_bug case.
 | |
| 	Simplify seek beyond EOF case.
 | |
| 	* times.cc (times): Remove wincap.has_get_process_times case.
 | |
| 	* wincap.cc: Remove has_delete_on_close, has_page_guard,
 | |
| 	has_get_process_times and has_lseek_bug throughout.
 | |
| 	* wincap.h: Ditto.
 | |
| 
 | |
| 2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	Throughout remove all usage of wincap.access_denied_on_delete.
 | |
| 	* dir.cc (rmdir): Add existance check to be errno-compatible with Linux.
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::rmdir): Drop test for
 | |
| 	non-existent dir on 9x share.
 | |
| 	* syscalls.cc (unlink): Add comment.
 | |
| 	* wincap.cc: Remove access_denied_on_delete flag throughout.
 | |
| 	* wincap.h: Ditto.
 | |
| 
 | |
| 2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::closedir): Fix bug
 | |
| 	introduced by switching to NtClose.
 | |
| 
 | |
| 2007-02-22  Christopher Faylor  <me@cgf.cx>
 | |
| 
 | |
| 	* dcrt0.cc (child_info_fork::alloc_stack_hard_way): Change sense of
 | |
| 	guard test.  Increase size of stack reserved and increase size before
 | |
| 	the current stack pointer.  Use pointers when doing arithmetic.
 | |
| 	(dll_crt0_1): Initialize exception handler when we notice we're the
 | |
| 	child of a fork from non-main thread.
 | |
| 	* fork.cc (frok::parent): Make argument volatile.
 | |
| 	(frok::child): Ditto.
 | |
| 	(lock_signals): New class.
 | |
| 	(lock_pthread): Ditto.
 | |
| 	(hold_everhthing): Ditto.
 | |
| 	(frok::parent): Move atforkprepare and atforkparent to lock_pthread
 | |
| 	class.
 | |
| 	(fork): Make ischild boolean.  Use hold_everything variable within
 | |
| 	limited scope to set various mutexes in such a way as to avoid
 | |
| 	deadlocks.
 | |
| 	* thread.h (pthread_mutex::tid): New variable, active when debugging
 | |
| 	for tracking thread id of owner.
 | |
| 	(pthread_mutex::set_owner): Set tid when debugging.
 | |
| 	* thread.cc (pthread_mutex::pthread_mutex): Clear tid.
 | |
| 	(pthread_mutex::_unlock): Ditto when unlocking.
 | |
| 	(pthread_mutex::fixup_after_fork): Set tid to special value after
 | |
| 	forking since owner is unknown.
 | |
| 
 | |
| 2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	Throughout replace all usage of wincap.shared with the constant
 | |
| 	FILE_SHARE_VALID_FLAGS.
 | |
| 	* fhandler.cc (fhandler_base::open_9x): Drop local variable shared.
 | |
| 	* wincap.cc: Remove shared member throughout.
 | |
| 	* wincap.h: Ditto.
 | |
| 
 | |
| 2007-02-22  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* Makefile.in (DLL_IMPORTS): Add libntdll.a.
 | |
| 	* autoload.cc: Remove all symbols from advapi32.dll, kernel32.dll and
 | |
| 	ntdll.dll available on all platforms since NT4.
 | |
| 
 | |
| 	Throughout remove all usage of wincap.is_winnt.
 | |
| 	* dcrt0.cc (dll_crt0_0): Remove call to mmap_init.
 | |
| 	* fhandler.h (class fhandler_base): Remove has_changed flag.
 | |
| 	(fhandler_disk_file::touch_ctime): Remove declaration.
 | |
| 	(fhandler_disk_file::readdir_9x): Ditto.
 | |
| 	(fhandler_disk_file::touch_ctime): Remove.
 | |
| 	(fhandler_disk_file::readdir_9x): Remove.
 | |
| 	(fhandler_disk_file::closedir): Call NtClose instead of CloseHandle.
 | |
| 	* mmap.cc: Throughout call CreateMapping and MapView directly.
 | |
| 	(VirtualProt9x): Remove.
 | |
| 	(VirtualProtNT): Remove.
 | |
| 	(VirtualProtEx9x): Remove.
 | |
| 	(VirtualProtExNT): Remove.
 | |
| 	(VirtualProtect): Remove define.
 | |
| 	(VirtualProtectEx): Remove define.
 | |
| 	(CreateMapping9x): Remove.
 | |
| 	(CreateMappingNT): Rename to CreateMapping.
 | |
| 	(MapView9x): Remove.
 | |
| 	(MapViewNT): Rename to MapView.
 | |
| 	(struct mmap_func_t): Remove definition.
 | |
| 	(mmap_funcs_9x): Remove.
 | |
| 	(mmap_funcs_nt): Remove.
 | |
| 	(mmap_func): Remove.
 | |
| 	(mmap_init): Remove.
 | |
| 	* net.cc (getdomainname): Drop comment. Use NT4 registry key only.
 | |
| 	(get_95_ifconf): Remove.
 | |
| 	* pinfo.cc (winpids::enumNT): Rename to winpids::enum_processes.
 | |
| 	(winpids::enum9x): Remove.
 | |
| 	(winpids::set): Just call enum_processes directly.
 | |
| 	(winpids::enum_init): Ditto.
 | |
| 	* pinfo.h (class winpids): Drop enum_processes pointer.  Rename
 | |
| 	enumNT to enum_processes.  Drop enum9x declaration.  Drop initialization
 | |
| 	of enum_processes throughout.
 | |
| 	* registry.cc (get_registry_hive_path): Just create NT key.
 | |
| 	(load_registry_hive): Only load NT specific file.
 | |
| 	* syscalls.cc (unlink_9x): Remove.
 | |
| 	(unlink): Just call unlink_nt.
 | |
| 	* wincap.cc: Remove is_winnt flag throughout.
 | |
| 	* wincap.h: Ditto.
 | |
| 	* winsup.h: Remove mmap_init declaration.
 | |
| 
 | |
| 2007-02-21  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* wincap.cc (wincap_unknown): Change settings for unknown to reflect
 | |
| 	the capabilities of NT4.
 | |
| 	(wincap_95): Remove.
 | |
| 	(wincap_95osr2): Remove.
 | |
| 	(wincap_98): Remove.
 | |
| 	(wincap_98se): Remove.
 | |
| 	(wincap_me): Remove.
 | |
| 	(wincap_nt3): Remove.
 | |
| 	(wincapc::init): Temporarily bail out on any 9x system.
 | |
| 
 | |
| 2007-02-20  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygwin.din (sem_unlink): Export.
 | |
| 	* posix_ipc.cc: Include thread.h and semaphore.h.  Remove TODO
 | |
| 	comment.
 | |
| 	(ipc_names): Add max_len member.  Set to maximum length of the path
 | |
| 	before tacking on the prefix path.  Set prefix path for named semaphors
 | |
| 	to /dev/shm, as on Linux.
 | |
| 	(enum ipc_type_t): Change sem to semaphore to avoid name conflicts.
 | |
| 	(check_path): Detect empty paths.  Use ipc_names's max_len member.
 | |
| 	Use __small_sprintf to create full object path name.  Special case
 | |
| 	semaphores.
 | |
| 	(ipc_cond_init): Drop superfluous strcpy.
 | |
| 	(class ipc_flock): New class to simplify file locking in subsequent
 | |
| 	code.
 | |
| 	(struct mq_hdr): Raise size of mqh_uname to allow adding a unique
 | |
| 	LUID to the name.
 | |
| 	(mq_open): Fix formatting.  Create unique synchronization object names
 | |
| 	using AllocateLocallyUniqueId.
 | |
| 	(struct sem_finfo): New structure defining named semaphore file content.
 | |
| 	(sem_open): Move here.  Rework implementation to allow kernel
 | |
| 	persistent implementation of POSIX named semaphores.
 | |
| 	(_sem_close): Implement sem_close.
 | |
| 	(sem_close): Move here.  Just call _sem_close with do_close parameter
 | |
| 	set to true.
 | |
| 	(sem_unlink): New function.
 | |
| 	* pthread.cc (mangle_sem_name): Remove.
 | |
| 	(sem_open): Move to posix_ipc.cc.
 | |
| 	(sem_close): Ditto.
 | |
| 	* syscalls.cc (close_all_files): Call semaphore::terminate here.
 | |
| 	* thread.cc: Fix formatting.  Rearrange semaphore functions so that
 | |
| 	they are close together.
 | |
| 	(semaphore::semaphore): Rework to play nicely with new named semaphore
 | |
| 	implementation.
 | |
| 	(semaphore::_terminate): Call _sem_close if semaphore is a named
 | |
| 	semaphore.
 | |
| 	(semaphore::destroy): Don't destroy named semaphores.  Return EINVAL
 | |
| 	instead.
 | |
| 	(semaphore::close): Only destroy named semaphores.  Return EINVAL
 | |
| 	otherwise.
 | |
| 	(semaphore::open): Rework to play nicely with new named semaphore
 | |
| 	implementation.  Loop through existing semaphores to be able to
 | |
| 	return same sem_t pointer as a former call on the same named semaphore.
 | |
| 	(semaphore::getinternal): New function called from _sem_close.
 | |
| 	* thread.h (class List): Make mx and head public.
 | |
| 	(class semaphore): Fix formatting.  Align method declarations with
 | |
| 	implementation in thread.cc.  Add members used for named semaphores.
 | |
| 	(semaphore::terminate): New static method.
 | |
| 	* include/semaphore.h: Redefine SEM_FAILED.  Fix formatting.
 | |
| 	(sem_unlink): Add declaration.
 | |
| 	* include/cygwin/version.h: Bump API minor number.
 | |
| 
 | |
| 2007-02-20  Christopher Faylor  <me@cgf.cx>
 | |
| 
 | |
| 	* exceptions.cc (_cygtls::signal_exit): Only call myself.exit when when
 | |
| 	exit_state indicates that we've visited do_exit.
 | |
| 	* sync.h (lock_process::lock_process): Use renamed exit_state -
 | |
| 	ES_PROCESS_LOCKED.
 | |
| 	* winsup.h: Rename ES_MUTO_SET to ES_PROCESS_LOCKED.
 | |
| 
 | |
| 2007-02-20  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_socket.cc (fhandler_socket::bind): Remove printing wrong
 | |
| 	errno in debug output.
 | |
| 
 | |
| 2007-02-19  Christopher Faylor  <me@cgf.cx>
 | |
| 
 | |
| 	Remove extraneous whitespace.
 | |
| 	* pinfo.cc (commune_process): Use default argument to lock_process.
 | |
| 	* sigproc.cc: Update copyright.
 | |
| 	* select.cc: Ditto.
 | |
| 
 | |
| 2007-02-15  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* posix_ipc.cc (mq_open): Avoid compiler warning.  Initialize mqhdr
 | |
| 	before using it in file exists case.
 | |
| 	* include/mqueue.h (mqd_t): Make non-pointer type.
 | |
| 
 | |
| 2007-02-15  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* posix_ipc.cc (ipc_mutex_init): Create global object name.
 | |
| 	(ipc_cond_init): Ditto.
 | |
| 	(struct mq_hdr): Add mqh_uname member to store synchronization object
 | |
| 	name.
 | |
| 	(mq_open): Create unique synchronization object name and store in
 | |
| 	mq_hdr->mqh_uname.  Use this name in calls to ipc_mutex_init and
 | |
| 	ipc_cond_init.
 | |
| 
 | |
| 2007-02-14  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* Makefile.in (DLL_OFILES): Add posix_ipc.o.
 | |
| 	* cygwin.din (mq_close): Export.
 | |
| 	(mq_getattr): Export.
 | |
| 	(mq_notify): Export.
 | |
| 	(mq_open): Export.
 | |
| 	(mq_receive): Export.
 | |
| 	(mq_send): Export.
 | |
| 	(mq_setattr): Export.
 | |
| 	(mq_timedreceive): Export.
 | |
| 	(mq_timedsend): Export.
 | |
| 	(mq_unlink): Export.
 | |
| 	* posix_ipc.cc: New file implementing the above functions.  Move
 | |
| 	shm_open and shm_unlink from syscalls.cc here.
 | |
| 	* sysconf.cc (sca): Set value of _SC_MQ_OPEN_MAX to MQ_OPEN_MAX,
 | |
| 	_SC_MQ_PRIO_MAX to MQ_PRIO_MAX, _SC_MESSAGE_PASSING to
 | |
| 	_POSIX_MESSAGE_PASSING.
 | |
| 	* include/limits.h (MQ_OPEN_MAX): Define.
 | |
| 	(MQ_PRIO_MAX): Define.
 | |
| 	* include/mqueue.h: New file.
 | |
| 	* include/cygwin/version.h: Bump API minor number.
 | |
| 
 | |
| 2007-02-13  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* include/cygwin/stdlib.h (valloc): Declare.
 | |
| 	(memalign): Declare.
 | |
| 
 | |
| 2007-02-09  Pierre A. Humblet  <Pierre.Humblet@ieee.org>
 | |
| 
 | |
| 	* libc/minires-os-if.c (write_record): Handle DNS_TYPE_SRV and
 | |
| 	some obsolete types.
 | |
| 
 | |
| 2007-02-08  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* syscalls.cc (check_shm): New static function to do path checking
 | |
| 	common to shm_open and shm_unlink.  Check for /dev/shm existance.
 | |
| 	(shm_open): Call check_shm.
 | |
| 	(shm_unlink): Ditto.
 | |
| 
 | |
| 2007-02-08  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygwin.din (shm_open): Export.
 | |
| 	(shm_unlink): Export.
 | |
| 	* syscalls.cc (shm_open): New function.
 | |
| 	(shm_unlink): New function.
 | |
| 	* sysconf.cc (sca): Set value of _SC_SHARED_MEMORY_OBJECTS to
 | |
| 	_POSIX_SHARED_MEMORY_OBJECTS.
 | |
| 	* include/cygwin/version.h: Bump API minor number.
 | |
| 	* include/sys/mman.h (shm_open): Add prototype.
 | |
| 	(shm_unlink): Ditto.
 | |
| 
 | |
| 2007-02-08  Christopher Faylor <me@cgf.cx>
 | |
| 	    Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygmalloc.h (__set_ENOMEM): Declare.
 | |
| 	(MALLOC_FAILURE_ACTION): Call __set_ENOMEM.
 | |
| 	* malloc_wrapper.cc (malloc) Remove setting errno here.
 | |
| 	(realloc): Ditto.
 | |
| 	(calloc): Ditto.
 | |
| 	(memalign): Ditto.
 | |
| 	(valloc): Ditto.
 | |
| 	(posix_memalign): Save and restore errno.
 | |
| 
 | |
| 2007-02-07  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygmalloc.h (MALLOC_FAILURE_ACTION): Move to correct #if branch.
 | |
| 
 | |
| 2007-02-07  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygmalloc.h (MALLOC_FAILURE_ACTION): Define empty.
 | |
| 	* cygwin.din (posix_madvise): Export.
 | |
| 	(posix_memalign): Export.
 | |
| 	* fhandler.cc (fhandler_base::fpathconf): Return useful values in
 | |
| 	_PC_VDISABLE, _PC_SYNC_IO and _PC_SYMLINK_MAX cases.
 | |
| 	* malloc_wrapper.cc (malloc): Set errno here since it's not set in
 | |
| 	dlmalloc.c anymore.
 | |
| 	(realloc): Ditto.
 | |
| 	(calloc): Ditto.
 | |
| 	(memalign): Ditto.
 | |
| 	(valloc): Ditto.
 | |
| 	(posix_memalign): New function.
 | |
| 	* mmap.cc (posix_madvise): New function.
 | |
| 	* sysconf.cc (get_open_max): New function.
 | |
| 	(get_page_size): Ditto.
 | |
| 	(get_nproc_values): Ditto.
 | |
| 	(get_avphys): Ditto.
 | |
| 	(sc_type): New type.
 | |
| 	(sca): New array to map _SC_xxx options to sysconf return values.
 | |
| 	(sysconf): Reimplement using sca array.
 | |
| 	* include/limits.h: Add all missing values as defined by SUSv3.
 | |
| 	* include/pthread.h (PTHREAD_DESTRUCTOR_ITERATIONS): Move definition
 | |
| 	to sys/limits.h.
 | |
| 	(PTHREAD_KEYS_MAX): Ditto.
 | |
| 	* include/semaphore.h (SEM_VALUE_MAX): Ditto.
 | |
| 	* include/cygwin/stdlib.h (posix_memalign): Declare.
 | |
| 	* include/cygwin/version.h: Bump API minor number.
 | |
| 	* include/sys/mman.h: Add posix_madvise flags.
 | |
| 	(posix_madvise): Declare.
 | |
| 	* include/sys/termios.h (_POSIX_VDISABLE): Move definition to
 | |
| 	sys/limits.h.
 | |
| 
 | |
| 2007-02-05  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_serial.cc (fhandler_serial::tcsetattr): Add support for
 | |
| 	baud rates up to 3000000 baud.  Add missing 128K and 256K cases.
 | |
| 	(fhandler_serial::tcgetattr): Ditto.
 | |
| 	* include/sys/termios.h: Add baud rate definitions from B460800 up to
 | |
| 	B3000000.
 | |
| 
 | |
| 2007-02-02  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* syscalls.cc (unlink_nt): Add missing assignment in case NtClose fails.
 | |
| 
 | |
| 2007-02-01  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* net.cc (ga_dup): New function, taken from ga_clone with v4-in-v6
 | |
| 	mapping addition.
 | |
| 	(ga_clone): Just call ga_dup from here.
 | |
| 	(ga_duplist): New function to duplicate list of struct addrinfo.
 | |
| 	(ga_echeck): Don't check ai_flags, it already happened in
 | |
| 	cygwin_getaddrinfo.
 | |
| 	(cygwin_freeaddrinfo): Always call ipv4_freeaddrinfo.
 | |
| 	(cygwin_getaddrinfo): Use new wincap.supports_all_posix_ai_flags
 | |
| 	flag rather than wincap.has_gaa_on_link_prefix.  Always duplicate
 | |
| 	WinSock's addrinfo list to a self-allocated list.  Handle AI_V4MAPPED
 | |
| 	for pre-Vista platforms supporting getaddrinfo.
 | |
| 	* wincap.h (wincapc::supports_all_posix_ai_flags): New element.
 | |
| 	* wincap.cc: Implement above element throughout.
 | |
| 	* include/netdb.h: Note how AI_ADDRCONFIG is not supported pre-Vista.
 | |
| 	Remove superfluous comment.
 | |
| 
 | |
| 2007-02-01  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* include/cygwin/socket.h: Add IPv6 socket options.
 | |
| 
 | |
| 2007-01-31  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* net.cc (cygwin_getaddrinfo): Fix thinko in AI_ADDRCONFIG handling.
 | |
| 
 | |
| 2007-01-31  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* net.cc (cygwin_getaddrinfo): Check ai_flags for valid values.
 | |
| 	Handle AI_NUMERICSERV.  Handle AI_ADDRCONFIG behaviour on Vista.
 | |
| 	* include/netdb.h (AI_NUMERICSERV): Add missing flag.
 | |
| 
 | |
| 2007-01-30  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::closedir): Add dir name
 | |
| 	to debug output.
 | |
| 	* syscalls.cc (try_to_bin): Enable code to move file to user specific
 | |
| 	recycler dir to eliminate Vista problem.
 | |
| 	(unlink_nt): Add comment that rename after opening for delete on close
 | |
| 	only fails on XP.
 | |
| 
 | |
| 2007-01-30  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* sigproc.cc (child_info::child_info): Set msv_count to non-zero
 | |
| 	value only on systems requiring it.
 | |
| 
 | |
| 2007-01-28  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* include/ftw.h: Include sys/cdefs.h.
 | |
| 
 | |
| 2007-01-26  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::rmdir): Implement rmdir
 | |
| 	on NT by calling unlink_nt.  Check for directory here.
 | |
| 	* syscalls.cc (try_to_bin): Fix buggy debug_printf statement.
 | |
| 	(unlink_nt): Make non-static.  Don't use delete-on-close semantics on
 | |
| 	directories.  Explain why.
 | |
| 
 | |
| 2007-01-24  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* net.cc (if_nametoindex): This time, really free IP_ADAPTER_ADDRESSES
 | |
| 	memory.
 | |
| 	(if_indextoname): Ditto.
 | |
| 
 | |
| 2007-01-24  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* security.h (pop_thread_privilege): Revert to previous state, not
 | |
| 	to token used for impersonation.
 | |
| 
 | |
| 2007-01-24  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygheap.h (cygheap_user::deimpersonate): Always RevertToSelf.
 | |
| 
 | |
| 2007-01-23  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* net.cc (gai_errmap): Add EAI_OVERFLOW entry.  Fix formatting.
 | |
| 	(cygwin_gai_strerror): Drop using EAI_MAX.
 | |
| 	(w32_to_gai_err): Ditto.
 | |
| 	* include/netdb.h: Define EAI_OVERFLOW. Remove EAI_MAX.
 | |
| 
 | |
| 2007-01-23  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* include/netdb.h: Add AI_xxx flags available since Vista.
 | |
| 
 | |
| 2007-01-23  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* net.cc (if_nametoindex): Free IP_ADAPTER_ADDRESSES memory.
 | |
| 	(if_indextoname): Ditto.
 | |
| 	(if_nameindex): Ditto.  Remove duplicate indexed entries in result.
 | |
| 
 | |
| 2007-01-21  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* autoload.cc (WSAIoctl): Define.
 | |
| 	(SendARP): Define.
 | |
| 	* cygwin.din: Export if_freenameindex, if_indextoname, if_nameindex and
 | |
| 	if_nametoindex.
 | |
| 	* fhandler_procnet.cc: Drop including wchar.h.  Drop definitions of
 | |
| 	GAA_FLAG_INCLUDE_ALL_INTERFACES, IP_ADAPTER_UNICAST_ADDRESS_VISTA.
 | |
| 	(fhandler_procnet::exists): Check for has_gaa_prefixes.  Call
 | |
| 	get_adapters_addresses here.
 | |
| 	(fhandler_procnet::readdir): Ditto.
 | |
| 	(prefix): Move to net.cc.
 | |
| 	(fhandler_procnet::fill_filebuf): Call get_adapters_addresses here.
 | |
| 	Simplify allocation.  Use AdapterName rather than FriendlyName as
 | |
| 	interface name.  Use IfIndex if available, Ipv6IfIndex otherwise.
 | |
| 	(in6_are_prefix_equal): Move to net.cc.
 | |
| 	* fhandler_socket.cc: Define old SIOCGxxx values.
 | |
| 	(CONV_OLD_TO_NEW_SIO): Convert old SIOCGxxx value to new one.
 | |
| 	(struct __old_ifreq): Define old struct ifreq.
 | |
| 	(fhandler_socket::ioctl): Handle old SIOCGxxx values.  Handle new
 | |
| 	SIOCGIFFRNDLYNAM command.  Simplify copying ifreq data to user space.
 | |
| 	Call get_ifconf with additional SOCKET parameter.
 | |
| 	* net.cc (IP_ADAPTER_UNICAST_ADDRESS_LH): Define.
 | |
| 	(IP_ADAPTER_ADDRESSES_LH): Define.
 | |
| 	(SIO_GET_INTERFACE_LIST): Define.
 | |
| 	(sockaddr_in6_old): Define.
 | |
| 	(sockaddr_gen): Define.
 | |
| 	(INTERFACE_INFO): Define.
 | |
| 	(IN_LOOPBACK): Define.
 | |
| 	(in_are_prefix_equal): New static function.
 | |
| 	(ip_addr_prefix): New function, replaces prefix function, add AF_INET
 | |
| 	handling.
 | |
| 	(GAA_FLAG_INCLUDE_ALL_INTERFACES): Define.
 | |
| 	(get_adapters_addresses): New function.
 | |
| 	(WS_IFF_xxx): Define Winsock interface flag values.
 | |
| 	(convert_ifr_flags): New function to convert Winsock interface flag
 | |
| 	values to Cygwin interface flag values.
 | |
| 	(get_xp_ifconf): New get_ifconf implementation for XP SP1 and above.
 | |
| 	(get_2k_ifconf): Fix interface index.  Fix formatting.
 | |
| 	(get_nt_ifconf): Fix formatting.
 | |
| 	(get_95_ifconf): Ditto.
 | |
| 	(get_ifconf): Take additional SOCKET parameter.  Call get_xp_ifconf
 | |
| 	on XP SP1 and above.
 | |
| 	(if_nametoindex): New function.
 | |
| 	(if_indextoname): New function.
 | |
| 	(if_nameindex): New function.
 | |
| 	(if_freenameindex): New function.
 | |
| 	(in6_are_prefix_equal): Moved here from fhandler_procnet.cc.
 | |
| 	* wincap.cc (wincap_xp): Define has_gaa_prefixes as true by default.
 | |
| 	(wincapc::init): Assume has_osversioninfoex by default.  Call
 | |
| 	GetVersionEx with OSVERSIONINFOEX first.  Call with OSVERSIONINFO only
 | |
| 	if that fails.  Simplify NT4 case and try to avoid strcmp.  Check XP
 | |
| 	Service Pack using version.wServicePackMajor to avoid strcmp.
 | |
| 	* include/asm/socket.h (SIOCGIFFRNDLYNAM): Define.
 | |
| 	* include/cygwin/if.h: Fix formatting.
 | |
| 	(IFF_POINTTOPOINT): Define.
 | |
| 	(IFF_NOARP): Define.
 | |
| 	(IFF_LOWER_UP): Define.
 | |
| 	(IFF_DORMANT): Define.
 | |
| 	(struct if_nameindex): Define.
 | |
| 	(IFRF_FRIENDLYNAMESIZ): Define.
 | |
| 	(struct ifreq_frndlyname): Define.
 | |
| 	(IFNAMSIZ): Redefine as 44.
 | |
| 	(IF_NAMESIZE): Define.
 | |
| 	(struct ifreq): Redefine ifru_flags as int.  Define ifru_data.  Pad size
 | |
| 	to sizeof sockaddr_in6 for further extensions.
 | |
| 	(ifr_data): Define.
 | |
| 	(ifr_frndlyname): Define.
 | |
| 	(if_nametoindex): Declare.
 | |
| 	(if_indextoname): Declare.
 | |
| 	(if_nameindex): Declare.
 | |
| 	(if_freenameindex): Declare.
 | |
| 	* include/cygwin/version.h: Bump API minor number.
 | |
| 	(CYGWIN_VERSION_CHECK_FOR_OLD_IFREQ): Define check for old vs. new
 | |
| 	ifreq structure.
 | |
| 
 | |
| 2007-01-18  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* spawn.cc (spawn_guts): Don't set cwd for non-Cygwin child processes
 | |
| 	on NT to allow starting them in virtual directories.
 | |
| 
 | |
| 2007-01-18  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* mmap.cc (list::hash): Fix type to __ino64_t.
 | |
| 	(list::get_hash): Ditto.
 | |
| 	(list::set): Add struct stat parameter.  Use that instead of calling
 | |
| 	fstat.
 | |
| 	(map::get_list_by_fd): Ditto.
 | |
| 	(map::add_list): Ditto.
 | |
| 	(mmap_is_attached_or_noreserve): Call get_list_by_fd appropriately.
 | |
| 	(mmap_worker): Add pameters for map list and file stat information.
 | |
| 	Propagate to called functions.
 | |
| 	(mmap64): Use fstat on files early.  Replace call to GetFileSize.
 | |
| 	Call get_list_by_fd and mmap_worker appropriately.
 | |
| 
 | |
| 2007-01-18  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_procnet.cc: Drop declaration of htonl and ntohs.  Include
 | |
| 	asm/byteorder.h instead.
 | |
| 
 | |
| 2007-01-18  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* include/cygwin/in6.h: Drop inclusion of asm/byteorder.h.
 | |
| 	* fhandler_procnet.cc: Declare htonl and ntohs here.
 | |
| 
 | |
| 2007-01-17  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* Makefile.in (DLL_OFILES): Add fhandler_procnet.o.
 | |
| 	* autoload.cc (GetAdaptersAddresses): Define.
 | |
| 	* devices.h (FH_PROCNET): Define new device.
 | |
| 	* devices.in (dev_procnet_storage): Add "/proc/net" entry.
 | |
| 	* devices.cc: Regenerate.
 | |
| 	* dir.cc (readdir_worker): Use isproc_dev macro.
 | |
| 	* dtable.cc (build_fh_pc): Add FH_PROCNET.
 | |
| 	* fhandler.h (class fhandler_procnet): New class.
 | |
| 	* fhandler_proc.cc: Add "net" subdirectory handling.
 | |
| 	* fhandler_procnet.cc: New file handling "/proc/net" directory.
 | |
| 	* path.cc (isvirtual_dev): Move to path.h.
 | |
| 	* path.h (isproc_dev): New macro to identify /proc files by device.
 | |
| 	(isvirtual_dev): Moved here.  Define using isproc_dev.
 | |
| 	* syscalls.cc (unlink): Use isproc_dev macro.
 | |
| 	* wincap.h (wincapc::has_gaa_prefixes): New element.
 | |
| 	(wincapc::has_gaa_on_link_prefix): New element.
 | |
| 	* wincap.cc: Implement above elements throughout.
 | |
| 	(wincapc::init): Check XP for service pack and set has_gaa_prefixes
 | |
| 	appropriately.
 | |
| 	* include/cygwin/in6.h: Include asm/byteorder.h.
 | |
| 
 | |
| 2007-01-17  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* include/asm/socket.h (SIOGIFINDEX): Define.
 | |
| 
 | |
| 2007-01-17  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* mmap.cc (MapView9x): Note possible uselessness of retrying.
 | |
| 	(MapViewNT): Ditto.
 | |
| 	(mmap64): Fix pre-reservation to work for non NULL, non MAP_FIXED.
 | |
| 
 | |
| 2007-01-16  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* autoload.cc (RtlAnsiStringToUnicodeString): Define.
 | |
| 	(RtlOemStringToUnicodeString): Define.
 | |
| 	* ntdll.h (struct _RTL_USER_PROCESS_PARAMETERS): Define.
 | |
| 	(struct _PEB): Redefine with a bit of content.
 | |
| 	(RtlAnsiStringToUnicodeString): Declare.
 | |
| 	(RtlOemStringToUnicodeString): Declare.
 | |
| 	* path.cc: Include ntdll.h.
 | |
| 	(_upp): New global variable pointing to user process parameter block.
 | |
| 	(get_user_proc_parms): New static function to retrieve user process
 | |
| 	parameter block.
 | |
| 	(close_user_proc_parms_cwd_handle): New function to close handle to
 | |
| 	current working directory in user process parameter block.
 | |
| 	(cwdstuff::init): Drop redundant declaration of dynamically_loaded.
 | |
| 	Set current dir only on 9x.  Call close_user_proc_parms_cwd_handle
 | |
| 	on NT instead.
 | |
| 	(cwdstuff::keep_in_sync): Only on 9x.
 | |
| 	(cwdstuff::set): Keep behaviour on 9x.  On NT write cwd path into user
 | |
| 	process parameter block and set cwd handle to NULL.  Fix comments to
 | |
| 	reflect new behaviour.
 | |
| 
 | |
| 2007-01-16  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_socket.cc (fhandler_socket::ioctl): Handle SIOCGIFINDEX.
 | |
| 	* net.cc (get_2k_ifconf): Ditto.
 | |
| 	(get_nt_ifconf): Fake SIOCGIFINDEX.
 | |
| 	(get_95_ifconf): Ditto.
 | |
| 	(get_ifconf): Handle SIOCGIFINDEX.  Fake it for loopback on systems
 | |
| 	not supporting IP Helper Lib.
 | |
| 	* include/asm/socket.h (SIOCGIFINDEX): Define.
 | |
| 	* include/cygwin/if.h (struct ifreq): Add member for interface index.
 | |
| 	(ifr_ifindex): Define.
 | |
| 
 | |
| 2007-01-16  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* include/cygwin/in6.h (struct ipv6_mreq): Change type of interface
 | |
| 	member to uint32_t.
 | |
| 	(struct in6_pktinfo): Ditto.
 | |
| 
 | |
| 2007-01-16  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* include/cygwin/in.h (struct ip_mreq_source): Define.
 | |
| 	(struct ip_msfilter): Define.
 | |
| 	(IP_MSFILTER_SIZE): Define.
 | |
| 	(struct in_pktinfo): Define.
 | |
| 	(struct group_req): Define.
 | |
| 	(struct group_source_req): Define.
 | |
| 	(struct group_filter): Define.
 | |
| 	(GROUP_FILTER_SIZE): Define.
 | |
| 	(INADDR_ALLRTRS_GROUP): Define.
 | |
| 	* include/cygwin/socket.h: Define protocol agnostic multicast options.
 | |
| 
 | |
| 2007-01-15  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* CYGWIN_LICENSE: Fix web pages and contact information.
 | |
| 
 | |
| 2007-01-15  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* ntdll.h: Adjust status definitions.
 | |
| 
 | |
| 2007-01-15  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygheap.cc (cygheap_init): Add TODO comment.
 | |
| 
 | |
| 2007-01-15  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* ntdll.h (STATUS_SHARING_VIOLATION): Define.
 | |
| 
 | |
| 2007-01-13  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* syscalls.cc (unlink_nt): Don't move files to recycle bin which are
 | |
| 	not in use.
 | |
| 
 | |
| 2007-01-13  Christopher Faylor  <me@cgf.cx>
 | |
| 
 | |
| 	* glob.cc: Update copyright notice with latest from FreeBSD.
 | |
| 	(glob0): Use correct type for c variable to propagate previously
 | |
| 	detected protection.
 | |
| 
 | |
| 2007-01-12  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygheap.cc (_csbrk): Fix off-by-one error.
 | |
| 	* cygwin.sc: Give .cygheap a minimum size of 512K.
 | |
| 
 | |
| 2007-01-12  Christopher Faylor  <me@cgf.cx>
 | |
| 
 | |
| 	* external.cc (sync_winenv): Use cur_environ () rather than
 | |
| 	__cygwin_environ.
 | |
| 
 | |
| 2007-01-12  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fork.cc (child_copy): Add missing Windows PID in debug output.
 | |
| 
 | |
| 2007-01-12  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* syscalls.cc: Update copyright.
 | |
| 
 | |
| 2007-01-10  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* mmap.cc (mmap64): Pre-Reserve space for the whole mapping to get a
 | |
| 	useful, valid address before the actual mappings take place.
 | |
| 	Fix typo in comment.
 | |
| 
 | |
| 2007-01-10  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* syscalls.cc (sync): Use b_drive for B: drive (Thanks to Howard Chu).
 | |
| 
 | |
| 2007-01-09  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* syscalls.cc (getpagesize): Change condition for clarity.
 | |
| 	(getsystempagesize): Ditto.
 | |
| 
 | |
| 2007-01-09  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* mmap.cc: Do bookkeeping in 4K pages, rather than in 64K chunks.
 | |
| 
 | |
| 2007-01-07  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* security.h (setacl): Add parameter for writability flag.
 | |
| 	* sec_acl.cc (setacl): Ditto.  Set to true if any ACE with write
 | |
| 	permissions is created.
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::facl): Reset
 | |
| 	FILE_ATTRIBUTE_READONLY if ACL contains an ACE with write permissions.
 | |
| 
 | |
| 2007-01-05  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* include/strings.h: Don't include string.h.  Only declare functions
 | |
| 	according to SUSv3.
 | |
| 
 | |
| 2007-01-04  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	(get_ifconf): Set MTU for loopback to more correct value.
 | |
| 
 | |
| 2007-01-04  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_socket.cc (fhandler_socket::ioctl): Don't fake results
 | |
| 	for SIOCGIFFLAGS here.  Call get_ifconf instead.
 | |
| 	* net.cc (get_2k_ifconf): Clean up code to generate interface name.
 | |
| 	Handle SIOCGIFFLAGS here.
 | |
| 	(get_nt_ifconf): Fake SIOCGIFFLAGS here.
 | |
| 	(get_95_ifconf): Ditto.
 | |
| 	(get_ifconf): Don't fake loopback on systems with IP Helper Lib.
 | |
| 	Set MTU for loopback to a more "modern" value.
 | |
| 
 | |
| 2007-01-04  Brian Ford  <Brian.Ford@FlightSafety.com>
 | |
| 	    Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (PREFERRED_IO_BLKSIZE): Define as 64K.
 | |
| 	* fhandler.cc (fhandler_base::fstat): Set st_blksize to
 | |
| 	PREFERRED_IO_BLKSIZE.
 | |
| 	* fhandler_disk_file.cc (fhandler_base::fstat_helper): Ditto.
 | |
| 	* fhandler_mailslot.cc (fhandler_mailslot::fstat): Ditto.
 | |
| 	* fhandler_raw.cc (fhandler_dev_raw::fstat): Ditto.
 | |
| 
 | |
| 2007-01-01  Christopher Faylor  <me@cgf.cx>
 | |
| 
 | |
| 	* spawn.cc (spawn_guts): Don't expect synchronization from a non-cygwin
 | |
| 	_P_NOWAIT process.
 |