2083 lines
		
	
	
		
			78 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			2083 lines
		
	
	
		
			78 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
2005-04-20  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* sigproc.cc (proc_subproc): Fix handling of waiting for pids with zero
 | 
						|
	value.
 | 
						|
 | 
						|
	* strace.cc (strace::hello): Report parent pid of executing process.
 | 
						|
 | 
						|
2005-04-20  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* path.cc (path_conv::check): Fix problem reading symlinks introduced
 | 
						|
	in below change by reverting the change and adding an additional test
 | 
						|
	for nonexistent files in /proc.
 | 
						|
 | 
						|
2005-04-20  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* path.cc (path_conv::check): Punt when attempting to access a
 | 
						|
	nonexistent directory or file in /proc.
 | 
						|
 | 
						|
2005-04-19  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* security.cc (alloc_sd): Remove DELETE bit from user's ACE if
 | 
						|
	allow_traverse is set.
 | 
						|
 | 
						|
2005-04-19  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* cygwin.din (pselect): Export.
 | 
						|
	* select.cc (pselect): New function.
 | 
						|
	* include/cygwin/version.h: Bump API minor number.
 | 
						|
	* include/sys/select.h: Include signal.h.  Declare pselect.
 | 
						|
 | 
						|
2005-04-18  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.h (enum conn_state): Add connect_failed state.
 | 
						|
	* fhandler_socket.cc (fhandler_socket::connect): Set connect_state to
 | 
						|
	connect_failed when connect failed.
 | 
						|
	* poll.cc (poll): Change errno to EINVAL if allocating memory fails,
 | 
						|
	according to SUSv3. Add socket descriptors always to except_fds. Test
 | 
						|
	for failed connect and set revents flags appropriately.
 | 
						|
	* select.cc (set_bits): Set connect_state to connect_failed when
 | 
						|
	select indicates failed nonblocking connect.
 | 
						|
	(fhandler_dev_null::select_except): Set except_ready to false so that
 | 
						|
	/dev/null is not always in except state.
 | 
						|
	(peek_socket): Fix bogus conditional.
 | 
						|
	(fhandler_socket::select_write): Treat all connect_states except
 | 
						|
	unconnected equivalent to return consistent results.
 | 
						|
	(fhandler_windows::select_except): Set except_ready to false so that
 | 
						|
	/dev/windows is not always in except state.
 | 
						|
 | 
						|
2005-04-18  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* include/cygwin/version.h: Bump DLL minor number to 16.
 | 
						|
 | 
						|
2005-04-18  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* grp.cc (initgroups32): Return the correct value.
 | 
						|
 | 
						|
2005-04-16  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_disk_file.cc (fhandler_base::utimes_fs): Ignore
 | 
						|
	ERROR_NOT_SUPPORTED to workaround Win9x weirdness.
 | 
						|
	* path.cc (symlink_info::check): Remap ERROR_INVALID_FUNTION to
 | 
						|
	ERROR_FILE_NOT_FOUND for the same reason.
 | 
						|
 | 
						|
2005-04-16  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
	    Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* security.h (cygsidlist::addfromgr): Allow duplicate entries.
 | 
						|
	(get_server_groups): Declare new function.
 | 
						|
	* security.cc (is_group_member): Simplify.
 | 
						|
	(get_server_groups): New function.
 | 
						|
	(get_initgroups_sidlist): Call get_server_groups.
 | 
						|
	(verify_token): Allow token when supplementary sids are not in
 | 
						|
	/etc/group but are in the token.
 | 
						|
	Streamline the code.
 | 
						|
	* grp.cc (initgroups32): New implementation.
 | 
						|
	(getgroups32): Handle case where the supplementary groups are set.
 | 
						|
 | 
						|
2005-04-16  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* environ.cc (environ_init): Don't set traverse checking as default.
 | 
						|
 | 
						|
2005-04-16  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_disk_file.cc (fhandler_base::utimes_fs): Drop touching
 | 
						|
	ChangeTime.
 | 
						|
 | 
						|
2005-04-16  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* fhandler.cc (fhandler::dup): Duplicate flags, too.
 | 
						|
	* fhandler.h (fhandler_fifo::owner): Eliminate.
 | 
						|
	* fhandler_disk_file.cc (fhandler_base::fstat_fs): Handle on-disk
 | 
						|
	devices better.
 | 
						|
	(fhandler_base::fstat_helper): Ditto.
 | 
						|
	* fhandler_fifo.cc (fhandler_fifo::fhandler_fifo): Don't initialize
 | 
						|
	obsolete "owner".
 | 
						|
	(fhandler_fifo::open_not_mine): Add some debugging.  Duplicate correct
 | 
						|
	handle when we own it.
 | 
						|
	(fhandler_fifo::open): Set flags from input, not from first pipe.  Flag
 | 
						|
	that fork fixup is needed.
 | 
						|
	(fhandler_fifo::dup): Set errno correctly when DuplicateHandle fails.
 | 
						|
	* pinfo.cc (commune_send): Add debugging for fifo.
 | 
						|
 | 
						|
	* cygwin/version.h: Bump API minor version to 127 to reflect exporting
 | 
						|
	of sigrelese.
 | 
						|
 | 
						|
2005-04-14  Kazuhiro Fujieda  <fujieda@jaist.ac.jp>
 | 
						|
 | 
						|
	* syscalls.cc (setuid32): Correct debugging output.
 | 
						|
 | 
						|
2005-04-14  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* dcrt0.cc (do_global_dtors): Run DLL dtors.
 | 
						|
	(__main): Don't rely on atexit to run dtors.
 | 
						|
	(do_exit): Specifically call do_global_dtors here.
 | 
						|
	(cygwin_exit): Ditto.
 | 
						|
	* dll_init.cc (dll_global_dtors): Make global.  Only run dtors once.
 | 
						|
	(dll_list::init): Just set flag that dtors should be run.  Don't rely on atexit.
 | 
						|
	* dll_init.h (dll_global_dtors): Declare.
 | 
						|
 | 
						|
	* exceptions.cc (sigrelse): Define.
 | 
						|
 | 
						|
	* path.h (is_fs_device): New method.
 | 
						|
	(is_lnk_special): Ditto.
 | 
						|
	* fhandler_disk_file.cc (fhandler_disk_file::link): Use
 | 
						|
	"is_lnk_special" rather than "is_lnk_symlink".
 | 
						|
	* syscalls.cc (rename): Ditto.
 | 
						|
 | 
						|
	* hookapi.cc (ld_preload): Use colon as a separator rather than space.
 | 
						|
 | 
						|
2005-04-13  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.h (class fhandler_socket): Remove utimes.
 | 
						|
	* fhandler_socket.cc (fhandler_socket::utimes): Remove.
 | 
						|
 | 
						|
2005-04-13  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* cygerrno.h (__seterrno_from_nt_status): Define. Always set Win32
 | 
						|
	error code as well as errno. Use throughout where errno is set from
 | 
						|
	NT status.
 | 
						|
	(set_errno): Evaluate val only once.
 | 
						|
	* fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Fix typo in
 | 
						|
	debug output.
 | 
						|
	* fhandler_mem.cc (fhandler_dev_mem::open): Rely on
 | 
						|
	__seterrno_from_nt_status setting Win32 error code in debug output.
 | 
						|
	* fhandler_proc.cc (format_proc_uptime): Ditto.
 | 
						|
	(format_proc_stat): Ditto.
 | 
						|
	* fhandler_process.cc (format_process_stat): Ditto.
 | 
						|
	* sysconf.cc (sysconf): Ditto.
 | 
						|
 | 
						|
2005-04-13  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* fhandler.h (fhandler_base::utimes_fs): New method.
 | 
						|
	* fhandler.cc (fhandler_base::utimes): Call utimes_fs if on-disk
 | 
						|
	special file.
 | 
						|
	* fhandler_disk_file.cc (fhandler_disk_file::utimes): Use utimes_fs.
 | 
						|
	(fhandler_base::utimes_fs): Handle on-disk device files.
 | 
						|
 | 
						|
2005-04-13  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_disk_file.cc (fhandler_disk_file::utimes): Don't set errno
 | 
						|
	if open fails, it has already been set by open.
 | 
						|
 | 
						|
2005-04-12  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* autoload.cc (NtQueryVolumeInformationFile): Add.
 | 
						|
	* fhandler.cc (fhandler_base::raw_write): Don't touch has_changed flag.
 | 
						|
	* fhandler.h (enum change_state): Remove.
 | 
						|
	(fhandler_base::status): Revert has_changed to a simple bit.
 | 
						|
	(fhandler_base::fstat_helper): Add nAllocSize parameter.  Rename
 | 
						|
	ftCreationTime to ftChangeTime.
 | 
						|
	* fhandler_disk_file.cc: Call fstat_helper with additional
 | 
						|
	allocation size throughout.
 | 
						|
	(fhandler_base::fstat_by_handle): Use NT native functions to get
 | 
						|
	full file information on NT.  Call fstat_helper with LastWriteTime
 | 
						|
	as ctime, if ChangeTime is not available.
 | 
						|
	(fhandler_base::fstat_by_name): Call fstat_helper with LastWriteTime
 | 
						|
	as ctime.
 | 
						|
	(fhandler_base::fstat_helper): Add comment. Drop special FAT
 | 
						|
	handling since it's useless. Use nAllocSize for st_blocks if available.
 | 
						|
	(fhandler_disk_file::touch_ctime): Only touch LastWriteTime.
 | 
						|
	(fhandler_disk_file::fchmod): Set has_changed on 9x only.
 | 
						|
	(fhandler_disk_file::fchown): Don't set has_changed.
 | 
						|
	(fhandler_disk_file::facl): Ditto.
 | 
						|
	(fhandler_disk_file::ftruncate): Ditto.
 | 
						|
	(fhandler_disk_file::link): Set has_changed on 9x only and on original
 | 
						|
	file only.
 | 
						|
	(fhandler_base::open_fs): Don't set has_changed in O_TRUNC case.
 | 
						|
	* ntdll.h (FILE_BASIC_INFORMATION): Define.
 | 
						|
	(FILE_STANDARD_INFORMATION): Define.
 | 
						|
	(FILE_INTERNAL_INFORMATION): Define.
 | 
						|
	(FILE_EA_INFORMATION): Define.
 | 
						|
	(FILE_ACCESS_INFORMATION): Define.
 | 
						|
	(FILE_POSITION_INFORMATION): Define.
 | 
						|
	(FILE_MODE_INFORMATION): Define.
 | 
						|
	(FILE_ALIGNMENT_INFORMATION): Define.
 | 
						|
	(FILE_NAME_INFORMATION): Don't define with arbitrary FileName size.
 | 
						|
	(FILE_ALL_INFORMATION): Define.
 | 
						|
	(FILE_INFORMATION_CLASS): Add FileAllInformation.
 | 
						|
	(FILE_FS_VOLUME_INFORMATION): Define.
 | 
						|
	(FS_INFORMATION_CLASS): Define.
 | 
						|
	(NtQueryVolumeInformationFile): Define.
 | 
						|
 | 
						|
2005-04-11  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	Revert previous patch.
 | 
						|
	* autoload.cc (GetVolumePathNamesForVolumeNameA): Remove.
 | 
						|
	(GetVolumeNameForVolumeMountPointA): Add.
 | 
						|
	* syscalls.cc (sync): Rewrite guid case to skip floppies also on
 | 
						|
	Windows 2000.
 | 
						|
 | 
						|
2005-04-11  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* syscalls.cc (sync): Use renamed has_get_volume_pathnames wincap.
 | 
						|
	* wincap.h (wincaps::has_get_volume_pathnames): Rename from
 | 
						|
	has_guid_volumes
 | 
						|
	* wincap.cc: Accomodate above rename throughout.  Set to false on
 | 
						|
	Windows 2000.
 | 
						|
 | 
						|
2005-04-08  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* pipe.cc (fhandler_pipe::open): Remove O_CREAT limitation.
 | 
						|
 | 
						|
2005-04-07  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* syslog.cc (try_connect_guard): Remove useless conditionalized code.
 | 
						|
 | 
						|
2005-04-07  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* syslog.cc: Include sys/socket.h.
 | 
						|
	(try_connect_guard): New static variable.
 | 
						|
	(syslogd_inited): Ditto.
 | 
						|
	(syslogd_sock): Ditto.
 | 
						|
	(try_connect_syslogd): New function to connect and write syslog to
 | 
						|
	local syslogd.
 | 
						|
	(vsyslog): Log to stderr if LOG_PERROR flag has been given to openlog.
 | 
						|
	Try logging to syslogd.  Use Event Log resp. log file as fallback.
 | 
						|
	(closelog): Close socket to syslogd.
 | 
						|
	* include/sys/syslog.h (_PATH_LOG): Define.
 | 
						|
	(INTERNAL_NOPRI): Define if SYSLOG_NAMES is defined.
 | 
						|
	(INTERNAL_MARK): Ditto.
 | 
						|
	(struct _code): Ditto.
 | 
						|
	(prioritynames): Ditto.
 | 
						|
	(facilitynames): Ditto.
 | 
						|
 | 
						|
2005-04-06  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_socket.cc (get_inet_addr): Add type parameter to return
 | 
						|
	unix socket type.  Read socket type from unix socket file.
 | 
						|
	(fhandler_socket::bind): Write socket type to unix socket file.
 | 
						|
	(fhandler_socket::connect): Return with errno EPROTOTYPE if
 | 
						|
	socket type of socket doesn't match socket type of unix socket
 | 
						|
	trying to connect to.
 | 
						|
 | 
						|
2005-04-06  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* security.h (cygsidlist::addfromgr): Avoid duplicate entries.
 | 
						|
	* grp.cc (initgrousp): Add syscall_printf.
 | 
						|
	(setgroups): Add syscall_printf and make sure sids are added only once.
 | 
						|
 | 
						|
2005-04-06  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* net.cc (cygwin_getservbyname): Return (possibly NULL) return value of
 | 
						|
	dup_ent rather than assuming that tls buffer is valid.
 | 
						|
	(cygwin_getservbyport): Ditto.
 | 
						|
	(cygwin_gethostbyname): Ditto.
 | 
						|
	(cygwin_gethostbyaddr): Ditto.
 | 
						|
 | 
						|
2005-04-05  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* cygtls.cc (_cygtls::remove): Don't free or close stuff if we're being
 | 
						|
	called in a "non-standard" way.
 | 
						|
 | 
						|
2005-04-05  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* sync.h (muto::initforce): Delete flawed implementation.
 | 
						|
	* pwdgrp.h (pwdgrp::pglock): Make static.
 | 
						|
	* grp.cc (pwdgrp::pwdgrp): Eliminate use of initforce.
 | 
						|
 | 
						|
2005-04-05  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* sync.h (muto::initforce): Force initialization even when name !=
 | 
						|
	NULL.
 | 
						|
	* grp.cc (pwdgrp::pwdgrp): Use initforce since the enclosing structure
 | 
						|
	is !NO_COPY.
 | 
						|
 | 
						|
2005-04-05  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* sync.h (muto::operator int): New operator.
 | 
						|
	(locker): Remove unused class.
 | 
						|
	(new_muto): Delete.
 | 
						|
	(new_muto1): Ditto.
 | 
						|
	(new_muto_name): Ditto.
 | 
						|
	* cygheap.cc (cygheap_setup_for_child): Reflect use of static storage
 | 
						|
	for muto rather than pointer.
 | 
						|
	(_csbrk): Ditto.
 | 
						|
	(_cmalloc): Ditto.
 | 
						|
	(_cmalloc): Ditto.
 | 
						|
	(_cfree): Ditto.
 | 
						|
	* cygheap.h (cwdstuff::cwd_lock): Ditto.
 | 
						|
	(cwdstuff::get_drive): Ditto.
 | 
						|
	* cygmalloc.h (__malloc_lock): Ditto.
 | 
						|
	(__malloc_unlock): Ditto.
 | 
						|
	* cygtls.cc (sentry::lock): Ditto.
 | 
						|
	(sentry::sentry): Ditto.
 | 
						|
	(~sentry): Ditto.
 | 
						|
	(_cygtls::init): Ditto.
 | 
						|
	* dcrt0.cc: Ditto.
 | 
						|
	(cygwin_atexit): Ditto.
 | 
						|
	(cygwin_exit): Ditto.
 | 
						|
	* debug.cc (lock_debug::locker): Ditto.
 | 
						|
	(lock_debug::lock_debug): Ditto.
 | 
						|
	(lock_debug::unlock): Ditto.
 | 
						|
	(debug_init): Ditto.
 | 
						|
	* dtable.cc (dtable::init_lock): Ditto.
 | 
						|
	* dtable.h (dtable::lock_cs): Ditto.
 | 
						|
	(dtable::lock): Ditto.
 | 
						|
	(dtable::unlock): Ditto.
 | 
						|
	* exceptions.cc (mask_sync): Ditto.
 | 
						|
	(sighold): Ditto.
 | 
						|
	(set_process_mask_delta): Ditto.
 | 
						|
	(set_signal_mask): Ditto.
 | 
						|
	(events_init): Ditto.
 | 
						|
	* grp.cc (pwdgrp::pwdgrp): Ditto.
 | 
						|
	* malloc_wrapper.cc (mallock): Ditto.
 | 
						|
	(malloc_init): Ditto.
 | 
						|
	* path.cc (cwdstuff::cwd_lock): Ditto.
 | 
						|
	(cwdstuff::get_hash): Ditto.
 | 
						|
	(cwdstuff::get_hash): Ditto.
 | 
						|
	(cwdstuff::init): Ditto.
 | 
						|
	(cwdstuff::set): Ditto.
 | 
						|
	(cwdstuff::get): Ditto.
 | 
						|
	* pwdgrp.h (pwdgrp::pglock): Ditto.
 | 
						|
	(pwdgrp::refresh): Ditto.
 | 
						|
	* sigproc.cc (sync_proc_subproc): Ditto.
 | 
						|
	(get_proc_lock): Ditto.
 | 
						|
	(proc_subproc): Ditto.
 | 
						|
	(_cygtls::remove_wq): Ditto.
 | 
						|
	(proc_terminate): Ditto.
 | 
						|
	(sigproc_init): Ditto.
 | 
						|
	* timer.cc (lock_timer_tracker::protect): Ditto.
 | 
						|
	(lock_timer_tracker::lock_timer_tracker): Ditto.
 | 
						|
	(lock_timer_tracker::~lock_timer_tracker): Ditto.
 | 
						|
	* wininfo.cc (wininfo::_lock;): Ditto.
 | 
						|
	(wininfo::winthread): Ditto.
 | 
						|
	(operator HWND): Ditto.
 | 
						|
	(wininfo::lock): Ditto.
 | 
						|
	(wininfo::release): Ditto.
 | 
						|
	* wininfo.h (wininfo::_lock;): Ditto.
 | 
						|
 | 
						|
2005-04-04  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* path.cc (path_conv::check): Only check for PC_NO_ACCESS_CHECK in end
 | 
						|
	component.
 | 
						|
 | 
						|
2005-04-04  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* dcrt0.cc (dll_crt0_1): Don't call set_cygwin_privileges on 9x.
 | 
						|
 | 
						|
	* fhandler.h (enum change_state): Add.
 | 
						|
	(fhandler_base::status): Add a bit to has_changed flag.
 | 
						|
	(fhandler_base::has_changed): Implement with type change_state.
 | 
						|
	* fhandler.cc (fhandler_base::raw_write): Accommodate type change
 | 
						|
	of has_changed.
 | 
						|
	* fhandler_disk_file.cc (fhandler_disk_file::touch_ctime): Also
 | 
						|
	touch modification time if has_changed == data_changed.
 | 
						|
	(fhandler_disk_file::fchmod): Also open on 9x, otherwise we can't
 | 
						|
	touch ctime.  Accommodate type change of has_changed.
 | 
						|
	(fhandler_disk_file::fchown): Accommodate type change of has_changed.
 | 
						|
	(fhandler_disk_file::facl): Ditto.
 | 
						|
	(fhandler_disk_file::ftruncate): Ditto.
 | 
						|
	(fhandler_disk_file::link): Ditto.
 | 
						|
	(fhandler_base::open_fs): Ditto.
 | 
						|
 | 
						|
2005-04-03  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* cygheap.cc (cygheap_init): Accommodate set_process_privilege change.
 | 
						|
	* cygheap.h (cygheap_user::curr_primary_token): New member.
 | 
						|
	(cygheap_user::primary_token): New method.
 | 
						|
	(cygheap_user::deimpersonate): Always revert to processes'
 | 
						|
	impersonation token.
 | 
						|
	(cygheap_user::reimpersonate): Set processes' or setuid token as
 | 
						|
	necessary.
 | 
						|
	(cygheap_user::has_impersonation_tokens): Look for curr_primary_token
 | 
						|
	value.
 | 
						|
	(cygheap_user::close_impersonation_tokens): Close curr_primary_token
 | 
						|
	here if necessary.  Don't reset token values to NO_IMPERSONATION since
 | 
						|
	that's done in uinfo_init anyway.
 | 
						|
	(init_cygheap::luid): New LUID array keeping privilege LUIDs.
 | 
						|
	* cygtls.cc (_cygtls::init_thread): Call cygheap->user.reimpersonate.
 | 
						|
	* dcrt0.cc (hProcToken): New global variable to keep process token.
 | 
						|
	(hProcImpToken): Ditto for process impersonation token.
 | 
						|
	(dll_crt0_0): Open process token here once.  Duplicate to create
 | 
						|
	hProcImpToken.
 | 
						|
	(dll_crt0_1): Call set_cygwin_privileges.
 | 
						|
	* environ.cc (allow_ntea): Drop duplicate declaration.
 | 
						|
	(allow_smbntsec): Ditto.
 | 
						|
	(set_traverse): Only set allow_traverse here.
 | 
						|
	(environ_init): Ditto.
 | 
						|
	* fhandler_disk_file.cc (fhandler_disk_file::fchmod): Drop call to
 | 
						|
	enable_restore_privilege.
 | 
						|
	(fhandler_disk_file::fchown): Ditto.
 | 
						|
	(fhandler_disk_file::facl): Ditto.
 | 
						|
	* fork.cc (fork_child): Move call to cygheap->user.reimpersonate after
 | 
						|
	syn with parent. Call set_cygwin_privileges.
 | 
						|
	* grp.cc (internal_getgroups): Use hProcImpToken instead of opening
 | 
						|
	process token.
 | 
						|
	* path.cc (fs_info::update): Bypass traverse checking when retrieving
 | 
						|
	volume information using push/pop_thread_privileges.
 | 
						|
	* registry.cc (load_registry_hive): Drop setting restore privilege
 | 
						|
	since it's already set if available.
 | 
						|
	* sec_helper.cc: Include cygtls.h.
 | 
						|
	(cygpriv): Privilege string array.
 | 
						|
	(privilege_luid): New function, evaluate LUID from cygpriv_idx.
 | 
						|
	(privilege_luid_by_name): New function, evaluate LUID from privilege
 | 
						|
	string.
 | 
						|
	(privilege_name): New function, evaluate privilege string from
 | 
						|
	cygpriv_idx.
 | 
						|
	(set_privilege): New static function called by set_process_privilege
 | 
						|
	and set_thread_privilege.  Call privilege_luid to get privilege LUID.
 | 
						|
	Fix bug in return value evaluation. Improve debug output.
 | 
						|
	(set_cygwin_privileges): New function.
 | 
						|
	(set_process_privilege): Remove.
 | 
						|
	(enable_restore_privilege): Remove.
 | 
						|
	* security.cc (allow_traverse): New global variable.
 | 
						|
	(sys_privs): Change type to cygpriv_idx and store privilege indices
 | 
						|
	instead of strings.
 | 
						|
	(SYSTEM_PRIVILEGES_COUNT): Renamed from SYSTEM_PERMISSION_COUNT.
 | 
						|
	(get_system_priv_list): Don't use numerical constant in malloc call.
 | 
						|
	Use privilege_luid to get privilege LUIDs.
 | 
						|
	(get_priv_list): Call privilege_luid_by_name to get LUIDs. Improve
 | 
						|
	inner privilege LUID comparison loop.
 | 
						|
	(create_token): Enable create token privilege using
 | 
						|
	push/pop_self_privileges. Use hProcToken instead of opening process
 | 
						|
	token. Use default DACL when duplicating token.
 | 
						|
	(subauth): Enable tcb privilege using push/pop_self_privileges.
 | 
						|
	Use sec_none instead of homw made security attributes when duplicating
 | 
						|
	token.
 | 
						|
	(check_file_access): Don't duplicate access token, use active
 | 
						|
	impersonation token as is.
 | 
						|
	* security.h (enum cygpriv_idx): New enumeration type enumerating
 | 
						|
	possible privileges.
 | 
						|
	(privilege_luid): Declare new function.
 | 
						|
	(privilege_luid_by_name): Ditto.
 | 
						|
	(privilege_name): Ditto.
 | 
						|
	(allow_traverse): Declare.
 | 
						|
	(set_privilege): Declare function.
 | 
						|
	(set_process_privilege): Define as macro.
 | 
						|
	(enable_restore_privilege): Remove declaration.
 | 
						|
	(_push_thread_privilege): Define macro.
 | 
						|
	(push_thread_privilege): Ditto.
 | 
						|
	(pop_thread_privilege): Ditto.
 | 
						|
	(pop_self_privilege): Ditto.
 | 
						|
	* spawn.cc (spawn_guts): Use cygheap->user.primary_token instead of
 | 
						|
	cygheap->user.token.
 | 
						|
	* syscalls.cc (statvfs): Bypass traverse checking when retrieving
 | 
						|
	volume information using push/pop_thread_privileges. Rearrange code
 | 
						|
	to simplify push/pop bracketing.
 | 
						|
	(seteuid32): Use hProcToken instead of opening process token. Call
 | 
						|
	cygheap->user.deimpersonate instead of RevertToSelf.  Create
 | 
						|
	impersonation token from primary internal or external token.  Set
 | 
						|
	cygheap->user.curr_primary_token and cygheap->user.current_token
 | 
						|
	privileges once here.  Drop "failed" and "failed_ptok" labels.
 | 
						|
	Drop setting DefaultDacl of process token.
 | 
						|
	(setegid32): Use hProcToken and hProcImpToken instead of opening
 | 
						|
	process token. Always reimpersonate afterwards.
 | 
						|
	* uinfo.cc (cygheap_user::init): Use hProcToken instead of opening
 | 
						|
	process token.
 | 
						|
	(internal_getlogin): Ditto. Set hProcImpToken, too.
 | 
						|
	(uinfo_init): Initialize cygheap->user.curr_primary_token.
 | 
						|
	* winsup.h (hProcToken): Declare.
 | 
						|
	(hProcImpToken): Declare.
 | 
						|
 | 
						|
2005-04-03  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	Unify usage of CYG_MAX_PATH throughout.  Change buffers from
 | 
						|
	size CYG_MAX_PATH + 1 to CYG_MAX_PATH.  Change length tests
 | 
						|
	accordingly.
 | 
						|
 | 
						|
2005-04-02  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* include/cygwin/version.h: Bump DLL minor number to 15.
 | 
						|
 | 
						|
2005-04-01  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fork.cc (fork_child): Add missing __stdcall.
 | 
						|
 | 
						|
2005-04-01  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* sigproc.cc (create_signal_arrive): New (temporary?) function to
 | 
						|
	create signal_arrived event.
 | 
						|
	(sigproc_init): Use create_signal_arrived.
 | 
						|
	* fork.cc (fork_child): Create signal_arrived early.
 | 
						|
 | 
						|
2005-04-01  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fork.cc (fork_child): Fixup SYSV IPC shared memory before fixing
 | 
						|
	up fdtab.
 | 
						|
 | 
						|
2005-03-31  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* gentls_offsets: Add '-m32' flag to native compiler call to satisfy
 | 
						|
	cross platform builds.
 | 
						|
 | 
						|
2005-03-31  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* errno.cc (NO_SYSTEM_RESOURCES): Map to EAGAIN.
 | 
						|
	(NONPAGED_SYSTEM_RESOURCES): Ditto.
 | 
						|
	(PAGED_SYSTEM_RESOURCES): Ditto.
 | 
						|
	(WORKING_SET_QUOTA): Ditto.
 | 
						|
	(PAGEFILE_QUOTA): Ditto.
 | 
						|
	(COMMITMENT_LIMIT): Ditto.
 | 
						|
 | 
						|
2005-03-30  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* environ.cc (spenvs): Re-force SYSTEMROOT to always be included in
 | 
						|
	environment.
 | 
						|
	(build_env): Ditto.
 | 
						|
 | 
						|
2005-03-30  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* environ.cc (spenv::retrieve): Revert most of previous change.
 | 
						|
	(build_env): Ditto.  Rework to track environment variables which need
 | 
						|
	to always be in the windows environment in a separate array.
 | 
						|
 | 
						|
2005-03-30  Igor Pechtchanski  <pechtcha@cs.nyu.edu>
 | 
						|
 | 
						|
	* path.cc (symlink_info::case_check): Ignore trailing characters
 | 
						|
	in paths when comparing case.
 | 
						|
 | 
						|
2005-03-30  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* environ.h (win_env::immediate): Declare new field.
 | 
						|
	(win_env::operator = ): Declare new operator.
 | 
						|
	(win_env::reset): Declare new function.
 | 
						|
	(win_env::~win_env): Declare new destructor.
 | 
						|
	(getwinenv): Add optional third argument to declaration.
 | 
						|
	* environ.cc (conv_envvars): Accommodate immediate field.
 | 
						|
	(win_env::operator =): Define new operator.
 | 
						|
	(win_env::~win_env): Define new destructor.
 | 
						|
	(win_env::add_cache): Add value to environment immediately if
 | 
						|
	"immediate" is set.
 | 
						|
	(getwinenv): Accept optional third argument which will be used to store
 | 
						|
	"cached" values to avoid overwriting real cache.
 | 
						|
	(spenv::force): Declare new field.
 | 
						|
	(spenvs): Accommodate force field.  Add "PATH=" with force set to true.
 | 
						|
	(spenv::retrieve): Avoid duping anything if we're not building an
 | 
						|
	envblock.
 | 
						|
	(build_env): Ditto.  Use size of potentially constructed new
 | 
						|
	environment block to determine if we need to create an environment
 | 
						|
	block.  Pass getwinenv temporary storage to avoid inappropriately
 | 
						|
	overwriting the environment cache.
 | 
						|
 | 
						|
2005-03-29  Eric Blake  <ebb9@byu.net>
 | 
						|
 | 
						|
	* include/limits.h (NAME_MAX): New define.
 | 
						|
	(PATH_MAX): POSIX allows PATH_MAX to include trailing NUL.
 | 
						|
 | 
						|
2005-03-29  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* path.cc (is_floppy): Make externally available.
 | 
						|
	* path.h (is_floppy): Declare.
 | 
						|
	* syscalls.cc (sync): Check for floppies on A: and B: in guid case.
 | 
						|
	Don't call setmntent in non-guid case but evaluate drive bit mask
 | 
						|
	locally.
 | 
						|
 | 
						|
2005-03-29  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_process.cc: Re-add exename.
 | 
						|
 | 
						|
2005-03-28  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* include/ctype.h: Accommodate building in newlib.
 | 
						|
 | 
						|
2005-03-28  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* timer.cc (getitimer): Check that ovalue is a valid pointer, not just
 | 
						|
	NULL.
 | 
						|
 | 
						|
2005-03-28  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* timer.cc (timer_tracker::settime): Set times to zero when just
 | 
						|
	cancelling a timer.
 | 
						|
 | 
						|
2005-03-28  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* cygthread.cc (cygthread::detach): Revert to just waiting for thread
 | 
						|
	event since waiting for anything else is racy.
 | 
						|
	* timer.cc (timer_tracker::hcancel): Rename from cancel.
 | 
						|
	(timer_tracker::cancel): New method.
 | 
						|
	(timer_tracker::th): Remove.
 | 
						|
	(timer_tracker::~timer_tracker): Call cancel method.
 | 
						|
	(timer_tracker::timer_tracker): Ditto.
 | 
						|
	(timer_tracker::timer_tracker): Always, clear cancel, even though it is
 | 
						|
	probably not strictly necessary for ttstart.
 | 
						|
	(timer_thread): Accommodate cancel -> hcancel rename.
 | 
						|
	(timer_tracker::settime): Ditto.
 | 
						|
	(timer_tracker::gettime): Ditto.
 | 
						|
	(timer_delete): Ditto.
 | 
						|
 | 
						|
	* cygwin.din: Export _ctype_.
 | 
						|
	* include/ctype.h: Mark that _ctype_ is imported.
 | 
						|
 | 
						|
2005-03-28  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* timer.cc (timer_tracker::timer_tracker): Eliminate simple
 | 
						|
	constructor.
 | 
						|
	(ttstart): Fully initialize.
 | 
						|
 | 
						|
	* errno.cc: Fix typo introduced in previous change.
 | 
						|
 | 
						|
2005-03-28  Eric Blake  <ebb9@byu.net>
 | 
						|
 | 
						|
	* errno.cc (FILENAME_EXCED_RANGE): Map to ENAMETOOLONG.
 | 
						|
 | 
						|
2005-03-27  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* signal.cc (nanosleep): Revert tv_sec < 0 check as it is fixed
 | 
						|
	properly in the below change to hires.h.
 | 
						|
 | 
						|
2005-03-27  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* times.cc (hires_ms::usecs): Compare the difference.
 | 
						|
	* hires.h: Add parentheses to HIRES_DELAY_MAX.
 | 
						|
 | 
						|
2005-03-26  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* timer.cc (nanosleep): Treat tv_sec < 0 as invalid.
 | 
						|
 | 
						|
	* include/search.h: Make declarations consistent with newlib.
 | 
						|
 | 
						|
2005-03-26  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
	    Christopher Faylor <cgf@timesys.com>
 | 
						|
 | 
						|
	* wininfo.h (wininfo::timer_active): Delete.
 | 
						|
	(wininfo::itv): Ditto.
 | 
						|
	(wininfo::start_time): Ditto.
 | 
						|
	(wininfo::window_started): Ditto.
 | 
						|
	(wininfo::getitimer): Ditto.
 | 
						|
	(wininfo::setitimer): Ditto.
 | 
						|
	(wininfo::wininfo): Ditto.
 | 
						|
	(wininfo::lock): New method.
 | 
						|
	(wininfo::release): Ditto.
 | 
						|
	* window.cc:  Use new lock/acquire wininfo methods throughout.
 | 
						|
	 (wininfo::wininfo): Delete
 | 
						|
	(wininfo::getitimer): Ditto.
 | 
						|
	(wininfo::setitimer): Ditto.
 | 
						|
	(getitimer): Ditto.
 | 
						|
	(setitimer): Ditto.
 | 
						|
	(ualarm): Ditto.
 | 
						|
	(alarm): Ditto.
 | 
						|
	(wininfo::lock): Define new function.
 | 
						|
	(wininfo::release): Ditto.
 | 
						|
	(wininfo::process): Delete WM_TIMER handling.
 | 
						|
	* timer.cc (struct timetracker): Delete it, flags.  Add it_interval,
 | 
						|
	interval_us, sleepto_us, running, init_muto(), syncthread, and
 | 
						|
	gettime().
 | 
						|
	(ttstart): Make NO_COPY.
 | 
						|
	(lock_timer_tracker): New class.
 | 
						|
	(timer_tracker::timer_tracker): Distinguish ttstart case.
 | 
						|
	(timer_tracker::~timer_tracker): New destructor.  Clean out events, and
 | 
						|
	reset magic.
 | 
						|
	(timer_tracker::init_muto): New method.
 | 
						|
	(to_us): Round up as per POSIX.
 | 
						|
	(timer_thread): Reorganize to match timer_tracker::settime and
 | 
						|
	timer_tracker::gettime.  Call sig_send without wait.  Call
 | 
						|
	auto_release.
 | 
						|
	(timer_tracker::settime): Reorganize logic to avoid race.  Call gettime
 | 
						|
	to recover old value.
 | 
						|
	(timer_tracker::gettime): New method.
 | 
						|
	(timer_create): Properly set errno on invalid timerid.  Use new
 | 
						|
	lock_timer_tracker method.
 | 
						|
	(timer_delete): Ditto.  Simplify code slightly.
 | 
						|
	(timer_gettime): New function.
 | 
						|
	(fixup_timers_after_fork): Reinit ttstart.
 | 
						|
	(getitimer): New implementation.
 | 
						|
	(setitimer): Ditto.
 | 
						|
	(ualarm): Ditto.
 | 
						|
	(alarm): Ditto.
 | 
						|
	* cygwin.din: Export timer_gettime.
 | 
						|
	* winsup.h: Remove has has_visible_window_station declaration.
 | 
						|
 | 
						|
2005-03-26  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* Makefile.in (DLL_OFILES): Add lsearch.o.
 | 
						|
	* cygthread.h (cygthread::notify_detached): New element.
 | 
						|
	(cygthread::cygthread): Take optional fourth argument signifying event
 | 
						|
	to signal on thread completion.
 | 
						|
	* cygthread.cc (cygthread::stub): Signal notify_detached event, if it
 | 
						|
	exists.
 | 
						|
	(cygthread::cygthread): Initialize notify_detached from fourth argument.
 | 
						|
	(cygthread::detach): Wait for notify_detached field is present.
 | 
						|
 | 
						|
	* lsearch.cc: New file.
 | 
						|
	* search.h: Ditto.
 | 
						|
	* include/cygwin/version.h: Bump API minor number to 126.
 | 
						|
	* cygwin.din: Export lsearch, lfind.
 | 
						|
 | 
						|
2005-03-23  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.h (fhandler_socket::secret_event): Remove.
 | 
						|
	(fhandler_socket::af_local_set_secret): New function combining former
 | 
						|
	set_connect_secret and get_connect_secret into one function.
 | 
						|
	(fhandler_socket::af_local_setblocking): Rename from eid_setblocking.
 | 
						|
	(fhandler_socket::af_local_unsetblocking): Rename from
 | 
						|
	eid_unsetblocking.
 | 
						|
	(fhandler_socket::af_local_set_cred): New method.
 | 
						|
	(fhandler_socket::af_local_copy): New method.
 | 
						|
	(fhandler_socket::af_local_recv_secret): New method.
 | 
						|
	(fhandler_socket::af_local_send_secret): New method.
 | 
						|
	(fhandler_socket::af_local_recv_cred): Rename from eid_recv.
 | 
						|
	(fhandler_socket::af_local_send_cred): Rename from eid_send.
 | 
						|
	(fhandler_socket::af_local_accept): New method.
 | 
						|
	(fhandler_socket::af_local_set_sockpair_cred): Rename from
 | 
						|
	set_socketpair_eids.
 | 
						|
	(fhandler_socket::eid_accept): Remove.
 | 
						|
	(fhandler_socket::eid_connect): Remove.
 | 
						|
	(fhandler_socket::set_connect_secret): Remove.
 | 
						|
	(fhandler_socket::get_connect_secret): Remove.
 | 
						|
	(fhandler_socket::create_secret_event): Remove.
 | 
						|
	(fhandler_socket::check_peer_secret_event): Remove.
 | 
						|
	(fhandler_socket::signal_secret_event): Remove.
 | 
						|
	(fhandler_socket::close_secret_event): Remove.
 | 
						|
	(fhandler_socket::sec_event_accept): Remove.
 | 
						|
	(fhandler_socket::sec_event_connect): Remove.
 | 
						|
	* fhandler_socket.cc (secret_event_name): Remove.
 | 
						|
	(fhandler_socket::af_local_set_sockpair_cred): Rename from
 | 
						|
	set_socketpair_eids.
 | 
						|
	(fhandler_socket::af_local_setblocking): Rename from eid_setblocking.
 | 
						|
	(fhandler_socket::af_local_unsetblocking): Rename from
 | 
						|
	eid_unsetblocking.
 | 
						|
	(fhandler_socket::af_local_recv_secret): New function to receive
 | 
						|
	AF_LOCAL connect secret over socket itself.
 | 
						|
	(fhandler_socket::af_local_send_secret): New function to send AF_LOCAL
 | 
						|
	connect secret over socket itself.
 | 
						|
	(fhandler_socket::af_local_recv_cred): Rename from eid_recv.
 | 
						|
	(fhandler_socket::af_local_send_cred): Rename from eid_send.
 | 
						|
	(fhandler_socket::eid_connect): Remove.
 | 
						|
	(fhandler_socket::af_local_connect): Take over connect side handling
 | 
						|
	of AF_LOCAL secret and credential handshake.
 | 
						|
	(fhandler_socket::eid_accept): Remove.
 | 
						|
	(fhandler_socket::af_local_accept): New method, take over accept side
 | 
						|
	handling of AF_LOCAL secret and credential handshake.
 | 
						|
	(fhandler_socket::af_local_set_cred): New method, set eid credentials
 | 
						|
	to start values.
 | 
						|
	(fhandler_socket::af_local_copy): New method, copy secret and
 | 
						|
	credentials to another socket.
 | 
						|
	(fhandler_socket::af_local_set_secret): New function combining former
 | 
						|
	set_connect_secret and get_connect_secret into one function.
 | 
						|
	(fhandler_socket::create_secret_event): Remove.
 | 
						|
	(fhandler_socket::signal_secret_event): Remove.
 | 
						|
	(fhandler_socket::close_secret_event): Remove.
 | 
						|
	(fhandler_socket::check_peer_secret_event): Remove.
 | 
						|
	(fhandler_socket::sec_event_connect): Remove.
 | 
						|
	(fhandler_socket::sec_event_accept): Remove.
 | 
						|
	(fhandler_socket::fixup_after_fork): Drop secret_event handling.
 | 
						|
	(fhandler_socket::bind): Call af_local_set_secret.
 | 
						|
	(fhandler_socket::connect): Call af_local_set_cred and af_local_connect.
 | 
						|
	(fhandler_socket::listen): Call af_local_set_cred.
 | 
						|
	(fhandler_socket::accept): Call af_local_copy and af_local_accept on
 | 
						|
	accepted socket.
 | 
						|
	(fhandler_socket::close): Don't call close_secret_event.
 | 
						|
	(fhandler_socket::set_close_on_exec): Don't set secret_event
 | 
						|
	inheritance.
 | 
						|
	* net.cc (cygwin_getsockopt): Add debug output.
 | 
						|
	(socketpair): Call af_local_set_sockpair_cred instead of
 | 
						|
	set_socketpair_eids.
 | 
						|
	* select.cc (set_bits): Drop AF_LOCAL special handling in case
 | 
						|
	of except bit set.
 | 
						|
 | 
						|
2005-03-23  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* include/ctype.h: Always define macros when inside cygwin.
 | 
						|
	(isblank): New macro.
 | 
						|
 | 
						|
2005-03-23  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.h (fhandler_socket::eid_connect): Make private.
 | 
						|
	(fhandler_socket::set_connect_secret): Ditto.
 | 
						|
	(fhandler_socket::get_connect_secret): Ditto.
 | 
						|
	(fhandler_socket::create_secret_event): Ditto. Remove secret argument.
 | 
						|
	(fhandler_socket::check_peer_secret_event): Ditto.
 | 
						|
	(fhandler_socket::signal_secret_event): Make private.
 | 
						|
	(fhandler_socket::close_secret_event): Ditto.
 | 
						|
	(fhandler_socket::sec_event_accept): New private method.
 | 
						|
	(fhandler_socket::sec_event_connect): Ditto.
 | 
						|
	(fhandler_socket::af_local_connect): New public method.
 | 
						|
	* fhandler_socket.cc: Use 'struct sockaddr' and 'struct sockaddr_in'
 | 
						|
	rather than just 'sockaddr' and 'sockaddr_in' throughout.
 | 
						|
	(fhandler_socket::eid_connect): Drop AF_LOCAL/SOCK_STREAM test.
 | 
						|
	(fhandler_socket::create_secret_event): Remove secret argument.
 | 
						|
	Always use connect_secret instead.
 | 
						|
	(fhandler_socket::check_peer_secret_event): Ditto.
 | 
						|
	(fhandler_socket::sec_event_connect): New method, combining entire
 | 
						|
	secret event handshake on connect side.
 | 
						|
	(fhandler_socket::af_local_connect): New method, combining secret
 | 
						|
	event handshake and eid credential transaction on connect side, to
 | 
						|
	be called from select.
 | 
						|
	(fhandler_socket::sec_event_accept): New method, combining entire
 | 
						|
	secret event handshake on accept side.
 | 
						|
	(fhandler_socket::connect): Drop secret, use connect_secret instead.
 | 
						|
	Move entire secret event handshake to sec_event_connect.
 | 
						|
	(fhandler_socket::accept): Move entire secret event handshake to
 | 
						|
	sec_event_accept.
 | 
						|
	* select.cc (set_bits): Just call af_local_connect here.
 | 
						|
 | 
						|
2005-03-23  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* include/cygwin/version.h: Change comment for most recent API version
 | 
						|
	bump to reflect new additions to the DLL and to remove change obsoleted
 | 
						|
	by the previous checkin.
 | 
						|
 | 
						|
2005-03-23  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* include/ctype.h: New file.
 | 
						|
	* ctype.cc: Ditto.
 | 
						|
	* Makefile.in: Add ctype.o to DLL_OFILES.
 | 
						|
	* cygwin.din: Remove _ctype_ptr (for now?).
 | 
						|
 | 
						|
2005-03-22  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* Makefile.in (DLL_OFILES): Add hookapi.o.  Eliminate some cruft.
 | 
						|
	* cygheap.h (cygheap_types): Add new enum: HEAP_1_HOOK.
 | 
						|
	(hook_chain): New struct.
 | 
						|
	(init_cygheap::hooks): Define new element.
 | 
						|
	* cygheap.cc (cygheap_fixup_in_child): Zero hook chain on exec.
 | 
						|
	* dcrt0.cc (dll_crt0_1): Call ld_preload just before calling main function.
 | 
						|
	* external.cc (cygwin_internal): Implement CW_HOOK.
 | 
						|
	* fork.cc (fork_child): Call fixup_hooks_after_fork.
 | 
						|
	* init.cc (cygwin_hmodule): Reinstate after a long absence.
 | 
						|
	* include/sys/cygwin.h: Define CW_HOOK.
 | 
						|
	* hookapi.cc: New file.
 | 
						|
 | 
						|
	* select.cc (start_thread_socket): Add debugging output.
 | 
						|
 | 
						|
	* fhandler_disk_file.cc (fhandler_disk_file::fchmod): gcc 4.x
 | 
						|
	accommodation.
 | 
						|
 | 
						|
	* fhandler_socket.cc (fhandler_socket::connect): Make sure that err is
 | 
						|
	initialized.
 | 
						|
 | 
						|
2005-03-22  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* cygwin.din (__ctype_ptr): Export.
 | 
						|
	* include/cygwin/version.h: Bump API minor version.
 | 
						|
 | 
						|
2005-03-21  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.h (class cygthread): Remove forward declaration.
 | 
						|
 | 
						|
2005-03-21  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.h (class cygthread): Forward declare.
 | 
						|
	(fhandler_socket::sec_pipe): Remove.
 | 
						|
	(fhandler_socket::eid_pipe_name): Remove.
 | 
						|
	(fhandler_socket::eid_setblocking): New private method.
 | 
						|
	(fhandler_socket::eid_unsetblocking): Ditto
 | 
						|
	(fhandler_socket::eid_recv): Ditto
 | 
						|
	(fhandler_socket::eid_send): Ditto
 | 
						|
	(fhandler_socket::eid_accept): Ditto
 | 
						|
	(fhandler_socket::eid_connect): New public method.
 | 
						|
	* fhandler_socket.cc (ASYNC_MASK): Move to beginning of file.
 | 
						|
	(fhandler_socket::eid_pipe_name): Remove.
 | 
						|
	(fhandler_socket::set_socketpair_eids): Move down to fhandler_socket
 | 
						|
	methods.
 | 
						|
	(fhandler_socket::fhandler_socket): Drop initializing sec_pipe.
 | 
						|
	(fhandler_socket::~fhandler_socket): Drop closing sec_pipe.
 | 
						|
	(fhandler_socket::eid_setblocking): New method.
 | 
						|
	(fhandler_socket::eid_unsetblocking): New method.
 | 
						|
	(fhandler_socket::eid_recv): New method.
 | 
						|
	(fhandler_socket::eid_send): New method.
 | 
						|
	(fhandler_socket::eid_connect): New method.
 | 
						|
	(fhandler_socket::eid_accept): New method.
 | 
						|
	(fhandler_socket::dup): Drop sec_pipe handling.
 | 
						|
	(fhandler_socket::connect): Fix WinSock error handling. Prepare
 | 
						|
	eid credential transaction. Call eid_connect on successful connect.
 | 
						|
	(fhandler_socket::listen): Drop creating sec_pipe.
 | 
						|
	(fhandler_socket::accept): Slightly simplify code. Call eid_accept
 | 
						|
	on accepted socket.
 | 
						|
	(fhandler_socket::getpeereid): Reshuffle code for readability. Fix
 | 
						|
	test for invalid pid.
 | 
						|
	* select.cc (set_bits): Call eid_connect on successfully connected
 | 
						|
	socket.
 | 
						|
 | 
						|
2005-03-19  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* child_info.h (fork_info): Use different method to alias variable.
 | 
						|
	(spawn_info): Ditto.
 | 
						|
	* cxx.cc (__cxa_guard_acquire): New function (needed for gcc 4.x).
 | 
						|
	(__cxa_guard_release): Ditto.
 | 
						|
	* devices.in: Make sure stuff is correctly bracketed (for gcc 4.x).
 | 
						|
	* devices.cc: Regenerate.
 | 
						|
	* fhandler.h (fhandler_disk_file::fchmod): Avoid left coercion (for gcc
 | 
						|
	4.x).
 | 
						|
	* smallprint.c (__rn): Declare as __fastcall since gcc 4.x complains
 | 
						|
	about use of regparm, for some reason.
 | 
						|
	* sync.h (sync::init_lock): Remove.
 | 
						|
	* sync.cc (sync::init_lock): Ditto.
 | 
						|
 | 
						|
2005-03-18  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* net.cc (cygwin_getprotobyname): Don't try to be fancy with return
 | 
						|
	values.
 | 
						|
	(cygwin_getprotobynumber): Ditto.
 | 
						|
 | 
						|
2005-03-17  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_disk_file.cc (fhandler_disk_file::utimes): Handle opening
 | 
						|
	directories under 9x gracefully.
 | 
						|
 | 
						|
2005-03-17  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_socket.cc (fhandler_socket::connect): Always set sun_path
 | 
						|
	in case of a successful or pending connect.
 | 
						|
	(fhandler_socket::accept): Don't run secret event and eid credential
 | 
						|
	transactions if OS accept returned WSAEWOULDBLOCK.
 | 
						|
 | 
						|
2005-03-16  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* fhandler_tape.cc (get_ll): This is a generally useful function so
 | 
						|
	move it
 | 
						|
	* winsup.h (get_ll): to here.
 | 
						|
	* security.cc (get_token_group_sidlist): Use get_ll to figure out the
 | 
						|
	long long version of the luid since QuadPart is not part of the
 | 
						|
	standard Windows API.
 | 
						|
 | 
						|
2005-03-16  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* dir.cc: Rename opendir_* to dirent_* throughout.
 | 
						|
	(opendir_states): Move and rename.
 | 
						|
	* fhandler.h (dirent_states): to here.
 | 
						|
	* fhandler_disk_file.cc (fhandler_disk_file::readdir): Use raw readdir
 | 
						|
	when skipping through entries since it is keeping track of "." and
 | 
						|
	"..".
 | 
						|
	(fhandler_cygdrive::seekdir): Use fhandler_disk_file::readdir to do
 | 
						|
	everything.
 | 
						|
	* fhandler_virtual.cc (fhandler_virtual::opendir): Set flag indicating
 | 
						|
	that we provide .  and ..
 | 
						|
	(fhandler_virtual::seekdir): Ditto.
 | 
						|
	(fhandler_virtual::rewinddir): Ditto.
 | 
						|
	* fhandler_registry.cc (fhandler_registry::rewinddir): Ditto.
 | 
						|
 | 
						|
2005-03-16  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* cygtls.cc (free_local): New macro.
 | 
						|
	(_cygtls::remove): Use free_local to free known-malloced local
 | 
						|
	variables.
 | 
						|
	* cygtls.h: Mark some variables as "malloced".
 | 
						|
	* net.cc (enum struct_type): Rename from is_* to t_* for clarity.
 | 
						|
	(dump_protoent): Delete.
 | 
						|
	(dup_ent): New macro.
 | 
						|
	(__dup_ent): Renamed from dup_ent.  Change arguments for convenience.
 | 
						|
	Replace first argument with newly alloced value.  Allocate a rounded
 | 
						|
	number of bytes in an attempt to try to reuse space.  Subsume
 | 
						|
	"dump_protent".
 | 
						|
	(cygwin_getprotobyname): Simplify using new dup_ent functionality.
 | 
						|
	(cygwin_getprotobynumber): Ditto.
 | 
						|
	(cygwin_getservbyname): Ditto.
 | 
						|
	(cygwin_getservbyport): Ditto.
 | 
						|
	(cygwin_gethostname): Ditto.
 | 
						|
	(cygwin_gethostbyname): Ditto.
 | 
						|
	* tlsoffsets.h: Regenerate.
 | 
						|
 | 
						|
	* syslog.cc (openlog): Use NULL rather than 0, for consistency with the
 | 
						|
	rest of cygwin.
 | 
						|
	(pass_handler::initialize): Use unbuffered I/O in pass one.
 | 
						|
 | 
						|
2005-03-15  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* errno.cc (errmap): Correct typo in previous change.
 | 
						|
 | 
						|
2005-03-15  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* cygtls.cc (_cygtls::remove): Free process_ident, if it exists.
 | 
						|
 | 
						|
	* errno.cc (errmap): ERROR_DISK_CORRUPT -> EIO.
 | 
						|
 | 
						|
2005-03-11  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* path.h (pathconv_arg): Define PC_NO_ACCESS_CHECK.
 | 
						|
	(path_types): Define PATH_NO_ACCESS_CHECK == PC_NO_ACCESS_CHECK.
 | 
						|
	* path.cc (symlink_info::check_sysfile): Move to symlink_info class and
 | 
						|
	eliminate arguments that are part of class.  Use set_error.
 | 
						|
	(symlink_info::check_shortcut): Ditto.
 | 
						|
	(symlink_info::set_error): New function.
 | 
						|
	(path_conv::check): Pass PC_NO_ACCESS_CHECK to symlink_info::check.
 | 
						|
	(symlink_info::check): Preserve PC_NO_ACCESS_CHECK in pflags.  Use
 | 
						|
	set_error.
 | 
						|
 | 
						|
2005-03-10  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* path.cc (is_floppy): New function.
 | 
						|
	(setmntent): Drop floppy drives on A: and B: from logical drive DWORD.
 | 
						|
	* syscalls.cc (sync): Don't sync floppies on A: and B:.
 | 
						|
 | 
						|
2005-03-10  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* autoload.cc (LoadDLLprime): Use nocopy segment or forked processes
 | 
						|
	will not initialize properly.
 | 
						|
 | 
						|
2005-03-10  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* autoload.cc (LoadDLLprime): Scrap use of .linkonce and just use an
 | 
						|
	ifdef guard to load .foo_init into data segment.
 | 
						|
 | 
						|
	* dcrt0.cc (initial_env): Allow colon or space as CYGWIN_DEBUG
 | 
						|
	separator for consistency.
 | 
						|
 | 
						|
2005-03-09  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* pinfo.h (pinfo::pinfo): Clear more elements in the constructor.
 | 
						|
 | 
						|
2005-03-09  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* net.cc (dup_ent): Revert older stupid test for null.  Don't copy name
 | 
						|
	if it is NULL.
 | 
						|
 | 
						|
2005-03-09  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_socket.cc (fhandler_socket::eid_pipe_name): Fix format
 | 
						|
	string.
 | 
						|
	(fhandler_socket::connect): Set sun_path before running eid credential
 | 
						|
	transaction.  Run transaction only if OS connect was successful.
 | 
						|
	(fhandler_socket::accept): Run transaction only if OS accept was
 | 
						|
	successful.
 | 
						|
 | 
						|
2005-03-09  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* signal.cc (sigprocmask): Rename first parameter to "how".
 | 
						|
	(handle_sigprocmask): Ditto.  Check "how" for being a valid "how" value.
 | 
						|
	Fix call order in case of wrong "how" value.
 | 
						|
 | 
						|
2005-03-09  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* net.cc (dup_ent): Revert previous stupid change.
 | 
						|
 | 
						|
2005-03-09  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* net.cc (dup_ent): Avoid dereferencing a null pointer in a debug_printf.
 | 
						|
 | 
						|
2005-03-09  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* path.cc (path_conv::check): Treat ENOSHARE similarly to ENOENT when
 | 
						|
	determining if there was a problem with a symlink.
 | 
						|
 | 
						|
2005-03-08  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_socket.cc (fhandler_socket::listen): Don't limit the number
 | 
						|
	of pipe instances.
 | 
						|
 | 
						|
2005-03-08  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* pinfo.cc (pinfo::exit): Right shift exit value by eight when not
 | 
						|
	started in a cygwin environment.
 | 
						|
 | 
						|
2005-03-07  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* mmap.cc (mmap64): Handle MAP_AUTOGROW flag.
 | 
						|
	(fhandler_disk_file::mmap): Ditto. Clean conditional for readability.
 | 
						|
	* include/sys/mman.h: Add MAP_AUTOGROW flag.
 | 
						|
	* include/cygwin/version.h: Bump API minor version.
 | 
						|
 | 
						|
2005-03-08  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* dcrt0.cc (dll_crt0_0): Eliminate muto::init call.
 | 
						|
	* sync.h (locker): New, currently unused class.
 | 
						|
	(muto::init): Eliminate.
 | 
						|
	* sync.cc (muto::init): Ditto.
 | 
						|
	(muto::init): Eliminate critical section lock and instead use name as a
 | 
						|
	guard to prevent against multiple attempts to initialize the same muto.
 | 
						|
 | 
						|
	* pinfo.cc (pinfo::init): Set myself procinfo when not execing and pid
 | 
						|
	matches windows pid or cygwin pid.
 | 
						|
 | 
						|
2005-03-06  Pavel Tsekov  <ptsekov@gmx.net>
 | 
						|
 | 
						|
	* path.cc (mount_info::read_cygdrive_info_from_registry): Use the user
 | 
						|
	prefix if it exists.
 | 
						|
 | 
						|
2005-03-06  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* sync.h (sync::init_lock): Declare new static member.
 | 
						|
	(sync::init()): Declare new static function.
 | 
						|
	* sync.cc (sync::init): Define.
 | 
						|
	(sync::init): Lock attempt to initialize a muto to stop multiple
 | 
						|
	threads from colliding.
 | 
						|
	* dcrt0.cc (dll_crt0_0): Initialize muto environment.
 | 
						|
 | 
						|
2005-03-06  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* path.cc (special_name): Reorganize to always detect the use of
 | 
						|
	special names first, before detecting special characters.
 | 
						|
 | 
						|
2005-03-04  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* fhandler_clipboard.cc: Use int for cygnativeformat rather than UINT
 | 
						|
	as that is what is returned by GetPriorityClipboardFormat.
 | 
						|
	(fhandler_dev_clipboard::read): Ditto for the format variable.
 | 
						|
 | 
						|
2005-03-04  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.cc (fhandler_base::open_9x): Satisfy query_open values.
 | 
						|
 | 
						|
2005-03-04  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* fhandler_socket.cc (fhandler_socket::ioctl): Only cancel
 | 
						|
	WSAAsyncSelect when async mode is on.
 | 
						|
 | 
						|
2005-03-03  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* cygwin.din (utmpxname): Export.
 | 
						|
	* syscalls.cc (utmpxname): Create export alias to utmpname.
 | 
						|
	* include/utmpx.h: Define ut_name and ut_xtime if not already defined.
 | 
						|
	(utmpxname): Add prototype.
 | 
						|
	* include/sys/utmp.h: Only define ut_name if not already defined.
 | 
						|
	* include/cygwin/version.h: Bump API minor version.
 | 
						|
 | 
						|
2005-03-03  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* cygthread.cc (cygthread::detach): Use a slightly higher priority when
 | 
						|
	waiting for thread signalling.
 | 
						|
 | 
						|
2005-03-02  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* autoload.cc (std_dll_init): Save and restore fpu control register
 | 
						|
	around LoadAddress to prevent loaded dlls (like msvcrt.dll) from
 | 
						|
	setting unwanted stuff.
 | 
						|
 | 
						|
2005-03-02  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* cygtls.cc (_cygtls::remove): Don't attempt any removal activities if
 | 
						|
	exitsock is zero.
 | 
						|
 | 
						|
2005-03-02  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* cygtls.cc (_cygtls::init_thread): Move exitsock setting later.  It
 | 
						|
	should always be set.
 | 
						|
	(_cygtls::remove): Detect zero exitsock.  Not quite sure why this is needed.
 | 
						|
 | 
						|
2005-03-02  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* autoload.cc (LoadDLLprime): Mask error code to low-order 16 bits.
 | 
						|
	(noload): Preserve sign when returning error code.
 | 
						|
 | 
						|
2005-03-02  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* spawn.cc (do_cleanup): Properly restore SIGINT/SIGQUIT even if they
 | 
						|
	had previously been SIG_DFL.
 | 
						|
 | 
						|
2005-03-01  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_disk_file.cc (fhandler_disk_file::touch_ctime): Replace
 | 
						|
	GetSystemTime/SystemTimeToFileTime with GetSystemTimeAsFileTime.
 | 
						|
	* times.cc (time_as_timestruc_t): Ditto.
 | 
						|
	(time): Ditto.
 | 
						|
 | 
						|
2005-03-01  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* include/cygwin/version.h: Bump DLL minor number to 14.
 | 
						|
 | 
						|
2005-03-01  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_clipboard.cc (fhandler_dev_clipboard::write): Never set
 | 
						|
	errno to 0.
 | 
						|
	(fhandler_dev_clipboard::read): Ditto.
 | 
						|
	* fhandler_windows.cc (fhandler_windows::read): Ditto.
 | 
						|
	* scandir.cc (scandir): Ditto.
 | 
						|
	* syscalls.cc (_fstat64_r): Ditto.
 | 
						|
	(_fstat_r): Ditto.
 | 
						|
	(_stat64_r): Ditto.
 | 
						|
	(_stat_r): Ditto.
 | 
						|
 | 
						|
	* mmap.cc (mmap64): Fix /dev/zero mapping.
 | 
						|
 | 
						|
2005-02-28  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.h (class fhandler_socket): Declare new method
 | 
						|
	set_socketpair_eids.
 | 
						|
	* fhandler_socket.cc (fhandler_socket::set_socketpair_eids): New method.
 | 
						|
	(fhandler_socket::dup): Duplicate sec_pipe if necessary.
 | 
						|
	(fhandler_socket::listen): Only create sec_pipe if named pipes are
 | 
						|
	available. Initialized sec_peer_pid to 0 as on Linux.
 | 
						|
	(fhandler_socket::connect): Only run eid credential transaction if
 | 
						|
	named pipes are available.  Fake otherwise. Initialized sec_peer_pid
 | 
						|
	to 0 as on Linux.
 | 
						|
	(fhandler_socket::accept): Ditto.
 | 
						|
	(fhandler_socket::close): Move closing sec_pipe handle from here...
 | 
						|
	(fhandler_socket::~fhandler_socket): ... to here.
 | 
						|
	* net.cc (socketpair): Set eid credentials by calling
 | 
						|
	fhandler_socket::set_socketpair_eids() on both socket ends.
 | 
						|
	* wincap.h (wincaps::has_named_pipes): New element.
 | 
						|
	* wincap.cc: Implement above element throughout.
 | 
						|
 | 
						|
2005-02-26  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* sigproc.cc (_pinfo::set_ctty): Move function
 | 
						|
	* pinfo.cc (_pinfo::set_ctty): to here.
 | 
						|
 | 
						|
	* fhandler_mem.cc (fhandler_dev_mem::fstat): Don't fill out structure
 | 
						|
	if this is an on-disk device rather than an "auto" device.
 | 
						|
	* fhandler_raw.cc (fhandler_dev_raw::fstat): Ditto.
 | 
						|
 | 
						|
	* path.cc (normalize_posix_path): Don't treat a standalone '//' as
 | 
						|
	introducing a UNC path.
 | 
						|
	(normalize_win32_path): Ditto.
 | 
						|
 | 
						|
2005-02-26  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* debug.cc (delete_handle): Report on handle value in debugging output.
 | 
						|
 | 
						|
	* pinfo.h (_pinfo::exists): Declare "new" function.
 | 
						|
	(_pinfo::kill): Ditto.
 | 
						|
	* fhandler_termios.cc (tty_min::kill_pgrp): Use _pinfo::exists rather
 | 
						|
	than proc_exists.
 | 
						|
	* pinfo.cc (pinfo::init): Ditto.  Don't do a low_priority_sleep(0) when
 | 
						|
	looping to find exec'ed procinfo.
 | 
						|
	(pinfo::release): Be more careful about unmapping and closing.
 | 
						|
	* signal.cc (_pinfo::kill): Rename from kill_worker.  Accommodate entry
 | 
						|
	into _pinfo class.
 | 
						|
	(kill0): Use _pinfo::kill rather than kill_worker.
 | 
						|
	(kill_pgrp): Ditto.  Use _pinfo::exists rather than proc_exists.
 | 
						|
	* sigproc.cc (_pinfo::exists): Rename from proc_exists.
 | 
						|
	(pid_exists): Use _pinfo::exists rather than proc_exists.
 | 
						|
	(remove_proc): Ditto.
 | 
						|
	* sigproc.h (proc_exists): Delete declaration.
 | 
						|
 | 
						|
2005-02-25  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.h (class fhandler_base): Declare fixup_mmap_after_fork
 | 
						|
	with additional flags parameter.  Change offset parameter to _off64_t.
 | 
						|
	(class fhandler_disk_file): Ditto.
 | 
						|
	(class fhandler_dev_mem): Ditto.
 | 
						|
	* fhandler_mem.cc (fhandler_dev_mem::fixup_mmap_after_fork):
 | 
						|
	Accommodate new parameters.
 | 
						|
	* mmap.cc: Include ntdll.h.
 | 
						|
	(class mmap_record): Add flags member.
 | 
						|
	(mmap_record::mmap_record): Add flags parameter.
 | 
						|
	(mmap_record::get_flags): New method.
 | 
						|
	(class map): Add next_anon_addr member to store next anonymous mapping
 | 
						|
	address suggestion.
 | 
						|
	(map::get_next_anon_addr): New method.
 | 
						|
	(map::set_next_anon_addr): New method.
 | 
						|
	(mmap64): Don't align offset and length to granularity in case of
 | 
						|
	MAP_ANONYMOUS on NT.  Check for already existing mapping only on 9x.
 | 
						|
	Call mmap_record::mmap_record with additional flags argument.
 | 
						|
	(fhandler_base::fixup_mmap_after_fork): Accommodate new parameters.
 | 
						|
	(fhandler_disk_file::mmap): Use NtMapViewOfSection with
 | 
						|
	AT_ROUND_TO_PAGE flag for anonymous mappings on NT.  If addr is NULL,
 | 
						|
	try to map adjacent to previous mapping.
 | 
						|
	(fhandler_disk_file::fixup_mmap_after_fork): Add flags argument.
 | 
						|
	Change offset parameter to _off64_t.  Use NtMapViewOfSection to
 | 
						|
	re-create anonymous mappings on NT.
 | 
						|
	(fixup_mmaps_after_fork): Accommodate new parameters when calling
 | 
						|
	fhandler's fixup_mmaps_after_fork function.
 | 
						|
	* ntdll.h (AT_ROUND_TO_PAGE): New define.
 | 
						|
 | 
						|
2005-02-25  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* mmap.cc (mmap64): Handle anonymous MAP_FIXED request on
 | 
						|
	non-granulation boundary.
 | 
						|
 | 
						|
2005-02-25  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* mmap.cc (class mmap_record): Declare new map_pages method with
 | 
						|
	address parameter.
 | 
						|
	(mmap_record::map_pages): New method with address parameter.
 | 
						|
	(mmap64): Evaluate access mode before checking if already existing
 | 
						|
	mapping can be used.
 | 
						|
	Only use existing mapping if requested access mode matches the one
 | 
						|
	in the existing mapping.
 | 
						|
	Add check for existing mapping for anonymous MAP_FIXED case.
 | 
						|
 | 
						|
2005-02-23  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* localtime.cc: Implement setting __tzrule's offset member using
 | 
						|
	newlib's __gettzinfo () interface.
 | 
						|
	(__tzrule): Remove.
 | 
						|
	(timezone): Define as long according to POSIX.
 | 
						|
 | 
						|
2005-02-23  Eric Blake  <ebb9@byu.net>
 | 
						|
 | 
						|
	* devices.in (parsedisk): Fix typo.
 | 
						|
	* devices.cc: Regenerate.
 | 
						|
 | 
						|
2005-02-23  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* cygwin.din (getpeereid): Export.
 | 
						|
	* fhandler.h (class fhandler_socket): Add pipe and id members to
 | 
						|
	exchange eid credentials for AF_LOCAL sockets.
 | 
						|
	(eid_pipe_name): Declare new method.
 | 
						|
	(getpeereid): Ditto.
 | 
						|
	* fhandler_socket.cc (fhandler_socket::eid_pipe_name): New method.
 | 
						|
	(fhandler_socket::fhandler_socket): Initialize sec_pipe.
 | 
						|
	(fhandler_socket::connect): Exchange eid credentials with accepting
 | 
						|
	socket process.
 | 
						|
	(fhandler_socket::listen): Prepare eid credential transaction.
 | 
						|
	(fhandler_socket::accept): Exchange eid credentials with connecting
 | 
						|
	socket process.
 | 
						|
	(fhandler_socket::close): Close eid credentials pipe if open.
 | 
						|
	(fhandler_socket::getpeereid): New method.
 | 
						|
	* net.cc (cygwin_getsockopt): Add SO_PEERCRED handling.
 | 
						|
	(getpeereid): New function.
 | 
						|
	* include/asm/socket.h (SO_PEERCRED): Define.
 | 
						|
	* include/cygwin/socket.h (struct ucred): Define new type.
 | 
						|
	* include/cygwin/version.h: Bump API minor version.
 | 
						|
 | 
						|
2005-02-23  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* include/sys/statvfs.h (ST_RDONLY): Define.
 | 
						|
	(ST_NOSUID): Define.
 | 
						|
 | 
						|
2005-02-23  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* cygwin.din (fstatvfs): Export.
 | 
						|
	(statvfs): Export.
 | 
						|
	* syscalls.cc: Include sys/statvfs.h.
 | 
						|
	(statvfs): New function.  Move statfs functionality here.
 | 
						|
	(fstatvfs): New function.
 | 
						|
	(statfs): Just call statvfs and copy structure.  Check validity of
 | 
						|
	incoming struct statfs pointer.
 | 
						|
	* include/cygwin/types.h (fsblkcnt_t): Define.
 | 
						|
	(fsfilcnt_t): Define.
 | 
						|
	* include/cygwin/version.h: Bump API minor version.
 | 
						|
	* include/sys/statvfs.h: New file.
 | 
						|
 | 
						|
2005-02-23  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* devices.h: Switch FH_ZERO and FH_PORT as on Linux.  Add FH_FULL.
 | 
						|
	* devices.in: Add /dev/full.
 | 
						|
	* devices.cc: Regenerate.
 | 
						|
	* dtable.cc (build_fh_pc): Add FH_FULL.
 | 
						|
	* fhandler.cc (fhandler_base::fstat): Set FH_FULL permission bits
 | 
						|
	correctly.
 | 
						|
	* fhandler_zero.cc (fhandler_dev_zero::write): Set errno to ENOSPC
 | 
						|
	and return -1 if device is FH_FULL.
 | 
						|
 | 
						|
2005-02-22  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* fhandler_disk_file.cc (fhandler_cygdrive::closedir): Return 0 when
 | 
						|
	closing cygdrive_root.
 | 
						|
 | 
						|
2005-02-22  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* cygwin.din (basename): Export.
 | 
						|
	(dirname): Export.
 | 
						|
	* path.cc (basename): New function.
 | 
						|
	(dirname): New function.
 | 
						|
	* include/libgen.h: New file.
 | 
						|
	* include/cygwin/version.h: Bump API minor version.
 | 
						|
 | 
						|
2005-02-22  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* select.cc (peek_pipe): Disable new pipe code until there's
 | 
						|
	a working substitute.
 | 
						|
 | 
						|
2005-02-22  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* cygwin.din (fdatasync): Export.
 | 
						|
	* fhandler.cc (fhandler_base::fsync): Return with EINVAL if no
 | 
						|
	handle is available.
 | 
						|
	* syscalls.cc (fdatasync): Create export alias to fsync.
 | 
						|
	* include/cygwin/version.h: Bump API minor version.
 | 
						|
 | 
						|
2005-02-20  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.h (fhandler_base::fstat_helper): Declare with additional
 | 
						|
	dwVolumeSerialNumber argument.  Drop default values for last three
 | 
						|
	arguments.
 | 
						|
	* fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Pass
 | 
						|
	dwVolumeSerialNumber from GetFileInformationByHandle to fstat_helper.
 | 
						|
	(fhandler_base::fstat_by_name): Pass pc.volser () to fstat_helper.
 | 
						|
	Accommodate dropping default values for last three arguments of
 | 
						|
	fstat_helper.
 | 
						|
	(fhandler_base::fstat_helper): Add dwVolumeSerialNumber argument.
 | 
						|
	Use for st_dev member unless 0 in which case pc.volser () is used.
 | 
						|
 | 
						|
2005-02-20  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* autoload.cc (FindFirstVolumeA): Add.
 | 
						|
	(FindNextVolumeA): Add.
 | 
						|
	(FindVolumeClose): Add.
 | 
						|
	(GetVolumePathNamesForVolumeNameA): Add.
 | 
						|
	* fhandler.h (class fhandler_base): Declare new method fsync.
 | 
						|
	* fhandler.cc (fhandler_base::fsync): New method.
 | 
						|
	* syscalls.cc (fsync): Move functionality into fhandler method fsync.
 | 
						|
	Just call this method from here.
 | 
						|
	(sync_worker): New static function.
 | 
						|
	(sync): Fill with life for NT systems.
 | 
						|
	* wincap.h (wincaps::has_guid_volumes): New element.
 | 
						|
	* wincap.cc: Implement above element throughout.
 | 
						|
 | 
						|
2005-02-20  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.h (enum query_state): Add query_write_attributes state.
 | 
						|
	(fhandler_base::status.query_open): Add a bit to make room for more
 | 
						|
	states.
 | 
						|
	(class fhandler_base): Declare new method utimes.
 | 
						|
	(class fhandler_socket): Ditto.
 | 
						|
	(class fhandler_disk_file): Ditto.
 | 
						|
	(fhandler_disk_file::fhandler_disk_file): Add constructor with
 | 
						|
	path_conv parameter.
 | 
						|
	* fhandler.cc (fhandler_base::open): Add query_write_attributes
 | 
						|
	handling.
 | 
						|
	(fhandler_base::utimes): New method.
 | 
						|
	* fhandler_disk_file.cc (fhandler_disk_file::link): Simplify.
 | 
						|
	Open file with query_write_attributes instead of query_write_control.
 | 
						|
	(fhandler_disk_file::utimes): New method.
 | 
						|
	(fhandler_disk_file::fhandler_disk_file): Add constructor with
 | 
						|
	path_conv parameter setting pc member immediately.
 | 
						|
	* fhandler_socket.cc (fhandler_socket::fchmod): Use new
 | 
						|
	fhandler_disk_file constructor.
 | 
						|
	(fhandler_socket::fchown): Ditto.
 | 
						|
	(fhandler_socket::facl): Ditto.
 | 
						|
	(fhandler_socket::link): Ditto.
 | 
						|
	(fhandler_socket::utimes): New method.
 | 
						|
	* times.cc: Include dtable.h.
 | 
						|
	(timeval_to_filetime): Make non-static.
 | 
						|
	(utimes): Move functionality into fhandler method utimes. Just call
 | 
						|
	this method from here.
 | 
						|
	* winsup.h: Simplify declarations of time helper functions.
 | 
						|
	(timeval_to_filetime): Add extern declaration.
 | 
						|
 | 
						|
2005-02-19  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.h (class fhandler_base): Declare new method link.
 | 
						|
	(class fhandler_socket): Ditto.
 | 
						|
	(class fhandler_disk_file): Ditto.
 | 
						|
	* fhandler.cc (fhandler_base::open): Add FILE_WRITE_ATTRIBUTES
 | 
						|
	to query_write_control access flags.
 | 
						|
	(fhandler_base::link): New method.
 | 
						|
	* fhandler_disk_file.cc (fhandler_disk_file::fchmod): Don't try to
 | 
						|
	open with O_WRONLY since query_write_control includes
 | 
						|
	FILE_WRITE_ATTRIBUTES.
 | 
						|
	(fhandler_disk_file::fchown): Ditto.
 | 
						|
	(fhandler_disk_file::facl): Ditto.
 | 
						|
	(fhandler_disk_file::link): New method.  Touch st_ctime on successful
 | 
						|
	link.
 | 
						|
	* fhandler_socket.cc (fhandler_socket::link): New method.
 | 
						|
	* syscalls.cc (link): Move functionality into fhandler method link.
 | 
						|
	Just call this method from here.
 | 
						|
 | 
						|
2005-02-19  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.h (class fhandler_socket): Declare new methods fchown,
 | 
						|
	fchmod and facl.
 | 
						|
	* fhandler_socket.cc (fhandler_socket::fstat): Handle AF_LOCAL
 | 
						|
	sockets.
 | 
						|
	(fhandler_socket::fchmod): New method.
 | 
						|
	(fhandler_socket::fchown): New method.
 | 
						|
	(fhandler_socket::facl): New method.
 | 
						|
 | 
						|
2005-02-19  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* localtime.cc: Temporary implementation of setting __tzrule's offset
 | 
						|
	member to be used by strftime.
 | 
						|
	(__tzrule): New global variable.
 | 
						|
	(tzparse): Set __tzrule's offset member appropriately.
 | 
						|
 | 
						|
2005-02-17  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* path.cc (path_conv::check): Set fs flag when a unix-domain socket
 | 
						|
	is detected.
 | 
						|
 | 
						|
2005-02-17  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_disk_file.cc (fhandler_disk_file::fstat): Set st_ctime if
 | 
						|
	has_changed flag is set.
 | 
						|
	(fhandler_disk_file::touch_ctime): Reset has_changed flag on success.
 | 
						|
 | 
						|
2005-02-17  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* times.cc (utimes): Open files with FILE_WRITE_ATTRIBUTES first,
 | 
						|
	if that fails, try opeing with GENERIC_WRITE.  Fix comments.
 | 
						|
 | 
						|
2005-02-15  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* path.h (path_conv::issocket): Return true if device == FH_UNIX rather
 | 
						|
	than expecting path_conv to set a flag.
 | 
						|
 | 
						|
2005-02-11  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.cc (fhandler_base::raw_write): Mark as changed on
 | 
						|
	successful write.
 | 
						|
	* fhandler.h (fhandler_base::status_flags): Add 'has_changed' flag.
 | 
						|
	* fhandler_disk_file.cc (fhandler_disk_file::fchmod): Call
 | 
						|
	fhandler_disk_file's own open and close instead of open_fs and
 | 
						|
	close_fs.  Mark as changed on success.
 | 
						|
	(fhandler_disk_file::fchown): Ditto.
 | 
						|
	(fhandler_disk_file::facl): Ditto.
 | 
						|
	(fhandler_disk_file::ftruncate): Ditto.
 | 
						|
	(fhandler_base::open_fs): Mark as changed when O_TRUNC flag on existing
 | 
						|
	file is set.
 | 
						|
	(fhandler_disk_file::close): Set st_ctime if has_changed flag is set.
 | 
						|
 | 
						|
2005-02-11  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* cygthread.cc (cygthread::release): Reset ev here if it exists.
 | 
						|
	(cygthread::terminate_thread): Eliminate racy code which reset ev and
 | 
						|
	thread_sync.  Remove a few nonsensical inuse checks.  Exit at the
 | 
						|
	bottom.
 | 
						|
	(cygthread::detach): Rewrite to again try to ensure that we don't say
 | 
						|
	we're signalled when we are not signalled.
 | 
						|
	* fhandler.cc (fhandler_base::raw_read): Revert to signalling read
 | 
						|
	success quickly.
 | 
						|
	* pipe.cc (fhandler_pipe::close): Use base method to close handle.
 | 
						|
	* sigproc.h (WAIT_SIG_PRIORITY): Just trundle along at normal priority
 | 
						|
	to allow the pipe thread to do its thing if possible.
 | 
						|
 | 
						|
	* pinfo.h (pinfo::zap_cwd): Declare new function.
 | 
						|
	(pinfo::zap_cwd): Move 'cd out of the way code' here.
 | 
						|
	(pinfo::exit): Use it here.
 | 
						|
	* spawn.cc (spawn_guts): And here.
 | 
						|
 | 
						|
2005-02-11  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* times.cc (utimes): Open files with GENERIC_WRITE on file systems
 | 
						|
	not supporting ACLs.
 | 
						|
 | 
						|
2005-02-09  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_disk_file.cc (fhandler_disk_file::ftruncate): Fix checking
 | 
						|
	lseek return code.
 | 
						|
 | 
						|
2005-02-08  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* times.cc (timeval_to_filetime): Define first parameter const.
 | 
						|
	(utimes): Define second parameter to const according to SUSv3.
 | 
						|
	(utime): Ditto.
 | 
						|
	* include/sys/utime.h (utime) : Change declaration accordingly.
 | 
						|
 | 
						|
2005-02-08  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* cygthread.cc (cygthread::detach): Just test thread handle after
 | 
						|
	signal arrived, don't wait infinitely for it.
 | 
						|
 | 
						|
2005-02-08  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* pipe.cc (fhandler_pipe::read): Remove hold over from old read_state
 | 
						|
	implementation.
 | 
						|
 | 
						|
2005-02-06  Yitzchak Scott-Thoennes <sthoenna@efn.org>
 | 
						|
 | 
						|
	* net.cc (cygwin_gethostbyname): Be more picky about what's a numeric
 | 
						|
	address string, and use tls in that case too.
 | 
						|
 | 
						|
2005-02-07  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* exceptions.cc: Make windows_system_directory non-static.
 | 
						|
	* pinfo.cc (pinfo::exit): Change innocuous cd'ed location to one that
 | 
						|
	is more likely to exist.
 | 
						|
 | 
						|
2005-02-06  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* path.cc (path_conv::check): Leave symlink expansion loop in case
 | 
						|
	a not-ENOENT error happens.
 | 
						|
 | 
						|
	* cygheap.h (cygheap_fdmanip::fhandler_pipe *): New cast operator.
 | 
						|
	* pinfo.cc (_pinfo::commune_recv): Add PICOM_PIPE_FHANDLER handling.
 | 
						|
	(_pinfo::commune_send): Ditto.
 | 
						|
	(_pinfo::pipe_fhandler): New method.
 | 
						|
	* pinfo.h (enum picom): Add PICOM_PIPE_FHANDLER.
 | 
						|
	(_pinfo::pipe_fhandler): Declare.
 | 
						|
	* pipe.cc (fhandler_pipe::open): Rewrite.  Allow to open foreign
 | 
						|
	pipe handles.
 | 
						|
 | 
						|
2005-02-03  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* cygthread.h (cygthread::terminate_thread): Reflect return value.
 | 
						|
	* cygthread.cc (cygthread::detach): Be more careful about ensuring that
 | 
						|
	sigwait is properly waited for to avoid later missynchronization.
 | 
						|
	(cygthread::terminate_thread): Return true if thread was actually
 | 
						|
	terminated and all handles were closed.
 | 
						|
	* fhandler_base.cc (fhandler_base::raw_read): Use signal_read_state
 | 
						|
	rather than raw calls to win32 api.
 | 
						|
	(fhandler_base::read): Ditto.
 | 
						|
	* fhandler.h (fhandler_pipe::fixup_after_exec): Use method to create
 | 
						|
	read_state signalling.
 | 
						|
	(fhandler_pipe::create): Ditto.
 | 
						|
 | 
						|
	* Makefile.in: Make some more files -fomit-frame-pointer.
 | 
						|
 | 
						|
2005-02-02  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.h (fhandler_base::ftruncate): Define new virtual method.
 | 
						|
	(fhandler_disk_file::ftruncate): Ditto.
 | 
						|
	* fhandler.cc (fhandler_base::ftruncate): New method.
 | 
						|
	* fhandler_disk_file.cc (fhandler_disk_file::ftruncate): Ditto.
 | 
						|
	* syscalls.cc (ftruncate64): Move functionality into fhandlers.
 | 
						|
	Call fhandler method from here.
 | 
						|
 | 
						|
2005-02-02  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* pipe.cc (fhandler_pipe::dup): Fix conditionals in case of error.
 | 
						|
 | 
						|
2005-02-02  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* times.cc (utimes): Mark st_ctime for update according to SUSv3.
 | 
						|
 | 
						|
2005-02-01  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* fhandler_proc.cc (format_proc_partitions): Remove PartitionType check
 | 
						|
	since it could skip over partitions that are actually interesting.
 | 
						|
 | 
						|
2005-02-01  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* cygthread.cc (cygthread::terminate_thread): Wait briefly for
 | 
						|
	notification event in the event that the thread was actually in the
 | 
						|
	process of exiting.
 | 
						|
 | 
						|
	* pipe.cc (fhandler_pipe::dup): read_state is not supposed to be
 | 
						|
	inheritable.  Fix that.
 | 
						|
 | 
						|
	* path.cc (path_conv::check): Set symlen = 0 to avoid a compiler
 | 
						|
	warning.
 | 
						|
 | 
						|
	* devices.h (devices::parsedisk): Declare new function.
 | 
						|
	* devices.in (devices::parsedisk): Define new function.
 | 
						|
	* dtable.cc (dtable::init_std_file_from_handle): Use device numbers
 | 
						|
	rather than name.
 | 
						|
	* fhandler_proc.cc (format_proc_partitions): Use parsedisk to generate
 | 
						|
	disk names from numeric codes.  (This was broken on two of my
 | 
						|
	systems previously and is still broken now)
 | 
						|
 | 
						|
2005-02-01  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* pipe.cc (fhandler_pipe::open):  Allow re-opening of /proc/<pid>/fd
 | 
						|
	pipes of the current process.
 | 
						|
 | 
						|
2005-02-01  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.cc (fhandler_base::get_proc_fd_name): Don't generate
 | 
						|
	"device:" entry.
 | 
						|
	* fhandler.h (fhandler_socket::open): New method.
 | 
						|
	(fhandler_pipe::open): New method.
 | 
						|
	* fhandler_proc.cc (fhandler_proc::exists): Return -2 in case of
 | 
						|
	/proc/self.
 | 
						|
	* fhandler_process.cc (fhandler_process::exists): Return -2 in
 | 
						|
	case of symlinks, -3 for pipes and -4 for sockets.
 | 
						|
	(fhandler_process::fstat): Handle pipes and sockets.
 | 
						|
	(fhandler_process::open): Handle opening /proc/<pid>/fd.
 | 
						|
	(fhandler_process::fill_filebuf): Generate empty names for
 | 
						|
	non exisiting file descriptors.
 | 
						|
	* fhandler_socket.cc (fhandler_socket::get_proc_fd_name): Always
 | 
						|
	generate "socket:[number]" strings as on Linux.
 | 
						|
	(fhandler_socket::open): New method.
 | 
						|
	(fhandler_socket::fstat): Always return socket type.
 | 
						|
	* path.cc (symlink_info::set): Remove unused second parameter.
 | 
						|
	(path_conv::check): Handle pipes and sockets in /proc.
 | 
						|
	Set correct device type for AF_LOCAL sockets.
 | 
						|
	* pinfo.cc (_pinfo::commune_recv): Generate empty names for
 | 
						|
	non exisiting file descriptors.
 | 
						|
	(_pinfo::fd): Ditto.
 | 
						|
	* pipe.cc (fhandler_pipe::open): New method.
 | 
						|
 | 
						|
2005-01-31  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* path.h (path_conv::set_name): Declare new function.
 | 
						|
	* path.cc (path_conv::set_name): Define new function.
 | 
						|
	* fhandler.h (fhandler_dev_null::open): Declare new function.
 | 
						|
	* fhandler.cc (fhandler_dev_null::open): Define new function.
 | 
						|
 | 
						|
2005-01-31  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* smallprint.c (rnarg): Use long rather than unsigned long so that we
 | 
						|
	get proper sign extension.
 | 
						|
 | 
						|
2005-01-31  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* environ.cc (set_traverse): New function.
 | 
						|
	(parse_thing): Add "traverse" option.  Sort options alphabetically.
 | 
						|
	(environ_init): On NT, switch on traverse checking by default.
 | 
						|
 | 
						|
2005-01-31  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* smallprint.c (__rn): Regparmize.
 | 
						|
 | 
						|
2005-01-31  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* smallprint.c (rnarg): New macro.
 | 
						|
	(rnargLL): Ditto.
 | 
						|
	(__rn): Rename from 'rn', add a mask argument, and use the mask
 | 
						|
	argument to control how many significant digits to care about.
 | 
						|
	(__small_vsprintf): Use __rn, rnarg, rnargLL, as appropriate.
 | 
						|
 | 
						|
2005-01-31  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* pinfo.cc (pinfo::exit): Only return low-order 16 bits when exiting.
 | 
						|
 | 
						|
2005-01-31  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_process.cc (format_process_maps): Get destbuf argument by
 | 
						|
	reference.  Allow resizing of destbuf as necessary.  Fix string
 | 
						|
	handling.
 | 
						|
 | 
						|
2005-01-31  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* cygheap.h (class cygheap_fdenum): New class to enumerate used
 | 
						|
	fhandlers.
 | 
						|
	* dtable.h (class dtable): Add cygheap_fdenum as friend class.
 | 
						|
	* fhandler.h (fhandler_base::get_proc_fd_name): New virtual method
 | 
						|
	to return a name for /proc/<pid>/fd.
 | 
						|
	(fhandler_socket::get_proc_fd_name): Ditto.
 | 
						|
	(fhandler_pipe::get_proc_fd_name): Ditto.
 | 
						|
	(fhandler_virtual::opendir): Make virtual method.
 | 
						|
	(fhandler_process::opendir): New method.
 | 
						|
	* fhandler.cc (fhandler_base::get_proc_fd_name): New method.
 | 
						|
	* fhandler_process.cc: Include ctype.h.
 | 
						|
	(PROCESS_FD): Define.
 | 
						|
	(process_listing): Add "fd".
 | 
						|
	(fhandler_process::exists): Fix comment.  Return 1 in case of "fd"
 | 
						|
	directory. Handle files below "fd".
 | 
						|
	(fhandler_process::fstat): Drop "self" handling.  Set correct link
 | 
						|
	count for directories.
 | 
						|
	(fhandler_process::opendir): New method to handle "fd" directory.
 | 
						|
	(fhandler_process::readdir): Add "fd" handling.
 | 
						|
	(fhandler_process::open): Drop "self" handling.
 | 
						|
	(fhandler_process::fill_filebuf): Ditto.  Add "fd" handling.  Fix
 | 
						|
	"maps" output string.
 | 
						|
	* fhandler_registry.cc (fhandler_registry::fstat): Set correct link
 | 
						|
	count for directories.
 | 
						|
	* fhandler_socket.cc (fhandler_socket::get_proc_fd_name): New method.
 | 
						|
	* path.cc (symlink_info::set): Fix thinko.
 | 
						|
	* pinfo.cc (_pinfo::commune_recv): Rename pathbuf to path throughout.
 | 
						|
	Drop local path variable in PICOM_FIFO case.  Fix debug output.
 | 
						|
	Close handles as early as possible. Add PICOM_FDS and PICOM_FD
 | 
						|
	handling.
 | 
						|
	(_pinfo::commune_send): Add PICOM_FDS and PICOM_FD handling.
 | 
						|
	(_pinfo::fd): New method.
 | 
						|
	(_pinfo::fds): New method.
 | 
						|
	* pinfo.h (enum picom): Add PICOM_FDS and PICOM_FD.
 | 
						|
	(_pinfo::fd): Declare.
 | 
						|
	(_pinfo::fds): Declare.
 | 
						|
	* pipe.cc (fhandler_pipe::get_proc_fd_name): New method.
 | 
						|
 | 
						|
2005-01-29  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* smallprint.c (rn): Change uval to unsigned long long to fix 64 bit
 | 
						|
	handling.
 | 
						|
	* fhandler_process.cc (format_process_maps): Print major, minor and
 | 
						|
	inode numbers correctly.
 | 
						|
 | 
						|
2005-01-29  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* autoload.cc (GetModuleFileNameExA): Add.
 | 
						|
	(GetModuleInformation): Add.
 | 
						|
	(QueryWorkingSet): Add.
 | 
						|
	* fhandler.h (fhandler_virtual::get_filebuf): New method.
 | 
						|
	* fhandler_proc.cc (PROC_SELF): Define.
 | 
						|
	(proc_fhandlers): Change type of self to FH_PROC.
 | 
						|
	(fhandler_proc::exists): Return -3 if self.
 | 
						|
	(fhandler_proc::fstat): Handle self as symlink.
 | 
						|
	(fhandler_proc::fill_filebuf): Handle self.
 | 
						|
	* fhandler_process.cc: Include psapi.h.
 | 
						|
	(PROCESS_EXENAME): Remove.
 | 
						|
	(PROCESS_MAPS): Define.
 | 
						|
	(PROCESS_ROOT): Define.
 | 
						|
	(PROCESS_EXE): Define.
 | 
						|
	(PROCESS_CWD): Define.
 | 
						|
	(process_listing): Remove "exename", add "maps, "root", "exe" and
 | 
						|
	"cwd" elements.
 | 
						|
	(fhandler_process::exists): Return -2 for symlinks.
 | 
						|
	(fhandler_process::fstat): Handle symlinks.
 | 
						|
	(fill_filebuf): Evaluate pid if pid is 0.  Use exename handling for
 | 
						|
	exe.  Handle maps, root and cwd.
 | 
						|
	(format_process_maps): New function evaluating "maps".
 | 
						|
	* path.cc (symlink_info::set): New method to fill symlink_info
 | 
						|
	with data matching virtual symlinks.
 | 
						|
	(path_conv::check): Handle virtual symlinks.
 | 
						|
	* pinfo.cc (_pinfo::commune_recv): Add PICOM_CWD and PICOM_ROOT
 | 
						|
	handling.
 | 
						|
	(_pinfo::commune_send): Ditto.
 | 
						|
	(_pinfo::root): New function.
 | 
						|
	(_pinfo::cwd): New function.
 | 
						|
	* pinfo.h (enum picom): Add PICOM_CWD and PICOM_ROOT.
 | 
						|
	(_pinfo::root): Declare.
 | 
						|
	(_pinfo::cwd): Declare.
 | 
						|
 | 
						|
2005-01-29  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* cygthread.cc (new): Add a little more debugging.
 | 
						|
	* thread.cc (pthread_null::exit): Add a _my_tls.remove() for safety.
 | 
						|
 | 
						|
2005-01-28  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* cygtls.cc (cygtls::call2): Move socket cleanup.
 | 
						|
	(cygtls::remove): Move socket cleanup here.  Don't use _my_tls to
 | 
						|
	reference it.
 | 
						|
 | 
						|
2005-01-26  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* pinfo.cc (pinfo::init): Avoid a compiler warning.
 | 
						|
 | 
						|
2005-01-25  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* syscalls.cc (setpriority): Implement PRIO_PGRP, PRIO_USER and
 | 
						|
	setting priority in other Cygwin processes.
 | 
						|
	(getpriority): Implement PRIO_PGRP, PRIO_USER and getting nice value
 | 
						|
	from other processes.
 | 
						|
 | 
						|
2005-01-26  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* path.cc (path_conv::check): Return ENOTDIR rather than ENOENT
 | 
						|
	when a component is not a directory. Remove unreachable code.
 | 
						|
	(digits): Delete.
 | 
						|
 | 
						|
2005-01-25  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* pinfo.h (pinfo::init): Make third parameter non-optional and
 | 
						|
	propagate change throughout.
 | 
						|
	* pinfo.cc (set_myself): Pass INVALID_HANDLE_POINTER if h is NULL.
 | 
						|
	(pinfo::init): Make third parameter non-optional.  Eliminate use of
 | 
						|
	PID_EXECED as an argument.  Put setting of handle back inside loop but
 | 
						|
	reorganize to try to open it only when necessary.
 | 
						|
 | 
						|
2005-01-25  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* cygwin.din: Export getpriority and setpriority.
 | 
						|
	* fork.cc (fork_parent): Copy parent's nice value into child.
 | 
						|
	* spawn.cc (spawn_guts): Ditto.
 | 
						|
	* miscfuncs.cc (winprio_to_nice): New function.
 | 
						|
	(nice_to_winprio): Ditto.
 | 
						|
	* pinfo.cc (pinfo_init): If parent is not a Cygwin process, set
 | 
						|
	default nice value according to current Win32 priority class.
 | 
						|
	* pinfo.h (class _pinfo): Add nice member.
 | 
						|
	* syscalls.cc (setpriority): New function, only implementing
 | 
						|
	PRIO_PROCESS for now.
 | 
						|
	(getpriority): Ditto.
 | 
						|
	(nice): Just call setpriority.
 | 
						|
	* wincap.h (wincaps::has_extended_priority_class): New element.
 | 
						|
	* wincap.cc: Implement above element throughout.
 | 
						|
	* winsup.h: Add prototypes for winprio_to_nice and nice_to_winprio.
 | 
						|
	* include/limits.h (NZERO): New define.
 | 
						|
	* include/cygwin/types.h (id_t): New datatype.
 | 
						|
	* include/cygwin/version.h: Bump API minor version.
 | 
						|
	* include/sys/resource.h: Add PRIO_XXX defines and prototypes for
 | 
						|
	getpriority and setpriority.
 | 
						|
 | 
						|
2005-01-25  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* path.cc (realpath): Allow to expand with .exe suffix.
 | 
						|
 | 
						|
2005-01-22  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* spawn.cc (spawn_guts): Perform same "cd" as in pinfo::exit below to
 | 
						|
	make sure that a stub process does not keep the current working
 | 
						|
	directory busy after the "execed" process has exited.
 | 
						|
 | 
						|
2005-01-22  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* pinfo.cc (pinfo::init): Move everything but the MapViewOfFileEx out
 | 
						|
	of the loop since trying multiple times to call CreateFileMapping
 | 
						|
	doesn't make much sense.  Try to structure the loop a little better so
 | 
						|
	that exiting with a break does the right thing.
 | 
						|
	(pinfo::release): Release shared memory area if it exists and close
 | 
						|
	handle if it exists.
 | 
						|
 | 
						|
2005-01-22  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* pinfo.cc (pinfo::maybe_set_exit_code_from_windows): Make sure that
 | 
						|
	process has exited before getting an error code.
 | 
						|
	(pinfo::exit): "cd" to innocuous location before exiting to make sure
 | 
						|
	that process does not keep the current working directory busy while it
 | 
						|
	is in the process of really exiting.
 | 
						|
 | 
						|
2005-01-18  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* autoload.cc (CoInitialize): Remove.
 | 
						|
	(CoUninitialize): Remove.
 | 
						|
	(CoCreateInstance): Remove.
 | 
						|
	(CoTaskMemFree): Add.
 | 
						|
	(SHGetDesktopFolder): Add.
 | 
						|
	* path.cc (shortcut_header): Remove.
 | 
						|
	(shortcut_initalized): Remove.
 | 
						|
	(GUID_shortcut): New static GUID.
 | 
						|
	(struct win_shortcut_hdr): New struct describing Windows shortcut
 | 
						|
	header structure.
 | 
						|
	(symlink_worker): Rewrite creating Windows shortcuts.  Create
 | 
						|
	ITEMIDLIST if target exists.  Only write once.
 | 
						|
	(cmp_shortcut_header): Use win_shortcut_hdr structure for comparison.
 | 
						|
	(check_shortcut): Rewrite to read only once from file.  Allow skipping
 | 
						|
	an ITIMIDLIST in the file.
 | 
						|
 | 
						|
2005-01-16  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* pinfo.h (maybe_set_exit_code_from_windows): Renamed from
 | 
						|
	set_exit_state.
 | 
						|
	* pinfo.cc (pinfo::exit): Use renamed function.
 | 
						|
	(proc_waiter): Ditto.  Make a copy of input argument to avoid problems
 | 
						|
	when procs array is shuffled.  Flag when copy is made so that
 | 
						|
	remove_proc knows when it is safe to reshuffle.
 | 
						|
	* sigproc.cc (proc_terminate): Don't flag process_state as PID_EXITED.
 | 
						|
	(remove_proc): Wait for waiter to finish copying pinfo element before
 | 
						|
	moving it (an actual wait should be an extremely rare event).
 | 
						|
 | 
						|
2005-01-15  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* init.cc (dll_entry): Remove unused extern.
 | 
						|
 | 
						|
	* include/sys/cygwin.h: Remove PID_ZOMBIE.
 | 
						|
	* pinfo.h: Rename EXITCODE_* defines.
 | 
						|
	(pinfo::set_exit_state): Remove parameter.
 | 
						|
	* pinfo.cc (set_exit_state): Remove parameter.  Reverse sense of test
 | 
						|
	so that exitcode is checked for having been set rather than not having
 | 
						|
	been set.  Set flag when exitcode has been established.  Don't set
 | 
						|
	PID_STATE here.
 | 
						|
	(pinfo::init): Remove exitcode initialization.
 | 
						|
	(pinfo::exit): Reflect change in EXITCODE_* naming.  Set flag when
 | 
						|
	exitcode has been established.  Reflect change in arguments to
 | 
						|
	set_process_state.
 | 
						|
	(proc_waiter): Reflect change in arguments to set_process_state.  Set
 | 
						|
	process_state here and only here.
 | 
						|
	* fhandler_process.cc (fhandler_process::fill_filebuf): Reflect removal
 | 
						|
	of PID_ZOMBIE define.
 | 
						|
	(format_process_stat): Ditto.
 | 
						|
	(format_process_status): Ditto.
 | 
						|
	* sigproc.cc (pid_exists): Ditto.
 | 
						|
	(stopped_or_terminated): Ditto.  Make sure that only low-order 16 bits of
 | 
						|
	exitcode are used.
 | 
						|
	* spawn.cc (spawn_guts): Reflect change in EXITCODE_* naming.
 | 
						|
 | 
						|
2005-01-15  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* sigproc.cc (sig_send): Don't complain if attempt to send signal to
 | 
						|
	myself fails after I've "execed".
 | 
						|
 | 
						|
2005-01-14  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_disk_file.cc (fhandler_disk_file::facl): Pretend successful
 | 
						|
	SETACL if no acls are available.
 | 
						|
	* fhandler.cc (fhandler_base::facl): Implement to return sensible
 | 
						|
	values on GETACL and GETACLCNT.  Pretend successful SETACL.
 | 
						|
	* fhandler_virtual.cc (fhandler_virtual::facl): Ditto.
 | 
						|
 | 
						|
2005-01-13  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler.h (fhandler_disk_file::touch_ctime): Declare.
 | 
						|
	* fhandler_disk_file.cc (fhandler_disk_file::touch_ctime): New method
 | 
						|
	to set file's ctime.
 | 
						|
	(fhandler_disk_file::fchmod): Try opening file for writing first.
 | 
						|
	Set file's ctime on success.
 | 
						|
	(fhandler_disk_file::fchown): Ditto.
 | 
						|
	(fhandler_disk_file::facl): Ditto.
 | 
						|
 | 
						|
2005-01-13  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* pinfo.cc (pinfo::exit): Don't access self after releasing it.
 | 
						|
	* path.h (path_conv::path_conv): Fill path with native device
 | 
						|
	name in case of device argument.
 | 
						|
 | 
						|
2005-01-13  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_serial.cc (fhandler_serial::dup): Call overlapped_setup
 | 
						|
	for child, not for parent.
 | 
						|
 | 
						|
2005-01-13  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* init.cc (dll_entry): Nuke attempt to set exit code since parent will
 | 
						|
	use windows exit code if needed.
 | 
						|
	* pinfo.cc (pinfo::exit): Move release() here to minimize pid creation
 | 
						|
	race (suggested by Pierre Humblet).
 | 
						|
 | 
						|
2005-01-12  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	Reorganize header file inclusion throughout so that cygerrno.h comes
 | 
						|
	first.
 | 
						|
	* fhandler.h (select_record::thread_errno): Save any encountered errno
 | 
						|
	here.
 | 
						|
	(select_record::set_select_errno): New function.
 | 
						|
	(select_record::saw_error): New function.
 | 
						|
	(select_record::select_record): Initialize thread_errno to zero.
 | 
						|
	* select.cc (set_handle_or_return_if_not_open): Set thread_errno on
 | 
						|
	failure.
 | 
						|
	(select_stuff::wait): Record errno for later resurrection in calling
 | 
						|
	thread.
 | 
						|
	(peek_serial): Ditto.
 | 
						|
 | 
						|
2005-01-12  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* syscalls.cc (system): Use "/bin/sh" as per linux and (sorta) SUSv3.
 | 
						|
 | 
						|
2005-01-12  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* pinfo.cc (pinfo::exit): Don't assume that this == myself.
 | 
						|
 | 
						|
2005-01-11  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* pinfo.cc (pinfo::init): Don't close input handle on temporary (?)
 | 
						|
	failure.
 | 
						|
 | 
						|
2005-01-11  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* pinfo.h (_pinfo::set_exit_state): Declare new function.
 | 
						|
	(pinfo::exit): Move here from _pinfo::exit.
 | 
						|
	* sigproc.cc (child_info::sync): Use new function to set exitcode and
 | 
						|
	process_state.
 | 
						|
	* pinfo.cc (_pinfo::exit): Ditto.
 | 
						|
	(proc_waiter): Ditto.
 | 
						|
	(_pinfo::set_exit_state): Define new function.
 | 
						|
	(_pinfo::dup_proc_pipe): Close handle when there is no parent process
 | 
						|
	around to care about the exit value.
 | 
						|
	* dcrt0.cc (dll_crt0_0): Move subproc_ready synchronization later to
 | 
						|
	make sure that myself is still mapped in parent.
 | 
						|
	(do_exit): Reflect movement to pinfo::exit.
 | 
						|
	(__api_fatal): Ditto.
 | 
						|
	* exceptions.cc (signal_exit): Ditto.
 | 
						|
	* errno.cc (errmap): Map PROC_NOT_FOUND.
 | 
						|
	* init.cc (dll_entry): Release myself before exiting.
 | 
						|
	* sigproc.cc (proc_can_be_signalled): Set errno appropriately.
 | 
						|
	(sig_send): Ditto.  Also remove ill-advised test for !myself->sendsig
 | 
						|
	since this is an indication of a process which is still initializating
 | 
						|
	-- it is not an error.
 | 
						|
	(child_info::sync): Don't set exitcode here.  Assume that will happen
 | 
						|
	in proc_waiter, if necessary.
 | 
						|
	* spawn.cc (spawn_guts): Delay "wait_for_myself" logic until later.
 | 
						|
	Don't wait at all if the process has already exited.  Reflect movement
 | 
						|
	to pinfo::exit.
 | 
						|
 | 
						|
2005-01-11  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* environ.cc (build_env): Disallow empty strings and strings starting
 | 
						|
	with '=' in Win32 environment.
 | 
						|
 | 
						|
2005-01-08  Pierre Humblet <pierre.humblet@ieee.org>
 | 
						|
 | 
						|
	* syscalls.cc (seteuid32): Only change the default dacl when
 | 
						|
	seteuid succeeds. Do not close HKCU.
 | 
						|
 | 
						|
2005-01-06  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_process.cc: Use strcasematch instead of strcasecmp
 | 
						|
	throughout.
 | 
						|
 | 
						|
2005-01-06  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* syscalls.cc (rename): Fix behaviour in case of renaming directories
 | 
						|
	according to SUSv3.
 | 
						|
 | 
						|
2005-01-06  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* fhandler_disk_file.cc (fhandler_base::open_fs): Don't allow
 | 
						|
	opening directories for writing.
 | 
						|
 | 
						|
2005-01-06  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* timer.cc (timer_thread): Pass sigev pointer value as per SuSv3 rather
 | 
						|
	than pointer to sigev.
 | 
						|
 | 
						|
2005-01-05  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* dcrt0.cc (multiple_cygwin_problem): Reorganize error message to not
 | 
						|
	always talk about a "version" when it's not a version.
 | 
						|
	(dll_crt0_0): Change info passed to multiple_cygwin_problem to be a
 | 
						|
	little more precise.
 | 
						|
	* shared.cc (user_shared_initialize): Ditto.
 | 
						|
	(shared_info::initialize): Ditto.
 | 
						|
 | 
						|
2005-01-03  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* pinfo.cc (_pinfo::dup_proc_pipe): Can't close proc pipe when execing
 | 
						|
	or we will suffer an exit code race.
 | 
						|
 | 
						|
2005-01-03  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* signal.cc (abort): Call _GLOBAL_REENT's __cleanup.
 | 
						|
 | 
						|
2005-01-03  Corinna Vinschen  <corinna@vinschen.de>
 | 
						|
 | 
						|
	* syscalls.cc (setmode): Call _fwalk with _GLOBAL_REENT.
 | 
						|
 | 
						|
2005-01-01  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* cygthread.cc (cygthread::stub): Set inuse to false when exiting.
 | 
						|
	(cygthread::cygthread): Actually pass name as argument to debugging
 | 
						|
	output to avoid SEGV when strace'ing.
 | 
						|
	(cygthread::release): Don't set stack_ptr to NULL, since it is only set
 | 
						|
	once on first entry to a stub not on each stub iteration.
 | 
						|
	(cygthead::exit_thread): Remove obsolete function.
 | 
						|
	* cygthread.h (cygthread::exit_thread): Ditto.
 | 
						|
 | 
						|
2005-01-01  Christopher Faylor  <cgf@timesys.com>
 | 
						|
 | 
						|
	* shared.cc (open_shared): Don't attempt VirtualAlloc magic if first
 | 
						|
	attempt to map memory fails.
 |