2002-05-25  Robert Collins   <rbtcollins@hotmail.com>

	* winsup.h: Remove duplicate declarations of malloc_lock and
	malloc_unlock.

2002-05-24  Christopher Faylor  <cgf@redhat.com>

	Remove unneeded sync.h, where appropriate, throughout.
	Remove unneeded heap.h, where appropriate, throughout.
	Remove unneeded exceptions.h, where appropriate, throughout.
	Remove unneeded perprocess.h, where appropriate, throughout.

2002-05-22  Pierre Humblet <pierre.humblet@ieee.org>

	* security.cc (create_token): Call __sec_user() instead of
	sec_user() to remove dependence on allow_ntsec. Verify that
	the returned sd is non-null.

2002-05-25  Robert Collins   <rbtcollins@hotmail.com>

	* gmon.c (fake_sbrk): Correctly return -1 on failed malloc's.

2002-05-24  Christopher Faylor  <cgf@redhat.com>

	* dtable.cc (dtable::build_fhandler_from_name): Just pass posix path
	along to set_name via return_and_clear_normalized_path.
	(dtable::build_fhandler): New method with const char * argument.
	(dtable::reset_unix_path_name): Eliminate.
	(dtable::dup_worker): Use correct build_fhandler method.
	* mmap.cc (mmap_record::alloc_fh): Ditto.
	* dtable.h (dtable::build_fhandler): New method.
	(dtable::reset_unix_path_name): Eliminate.
	* fhandler.cc (fhandler_base::set_name): Assume that unix_name has
	already been cmalloced.
	(fhandler_base::reset_unix_path_name): Eliminate.
	(fhandler_base::~fhandler_base): Coercion for cfree.
	* fhandler.h (fhandler_base::unix_path_name): Make const char *.
	(fhandler_base::win32_path_name): Ditto.
	(fhandler_base::reset_unix_path_name): Eliminate.
	* fhandler_disk_file.cc (fhandler_cygdrive::set_drives): Accommodate
	const char *ness of win32_path_name.
	* fhandler_socket.cc (fhandler_socket::fstat): Accommodate new set_name
	requirements.
	* path.cc (path_conv::return_and_clear_normalized_path): New method.
	(path_conv::clear_normalized_path): Eliminate.
	(path_conv::~path_conv): Ditto.
	(path_conv::check): Accommodate new build_fhandler method.
	* path.h (path_conv::~path_conv): Eliminate.
	(path_conv::clear_normalized_path): Ditto.
	(path_conv::return_and_clear_normalized_path): Declare new method.

2002-05-23  Christopher Faylor  <cgf@redhat.com>

	* path.cc (path_conv::check): Make sure any trailing path component is
	part of potential normalized posix path.

2002-05-23  Christopher Faylor  <cgf@redhat.com>

	* smallprint.c (__small_vsprintf): Implement '%o' after all these
	years.

2002-05-22  Christopher Faylor  <cgf@redhat.com>

	* fhandler.h (fhandler_virtual::exists): Eliminate path argument.
	(fhandler_proc::exists): Ditto.
	(fhandler_registry::exists): Ditto.
	(fhandler_process::exists): Ditto.
	* fhandler_proc.cc (fhandler_proc::exists): Ditto.  Use built-in name.
	* fhandler_process.cc (fhandler_process::exists): Ditto.
	(fstat): Ditto.
	* fhandler_registry.cc (fhandler_registry::exists): Ditto.
	(fhandler_registry::fstat): Ditto.
	* fhandler_virtual.cc (fhandler_virtual::opendir): Ditto.
	* path.cc (path_conv::check): Ditto.  Add debugging.

2002-05-22  Christopher Faylor  <cgf@redhat.com>

	* syscalls.cc (dup): Always call dup2 for error handling.

2002-05-22  Corinna Vinschen  <corinna@vinschen.de>

	* include/cygwin/types.h: Revert previous patch.

2002-05-22  Corinna Vinschen  <corinna@vinschen.de>

	* include/cygwin/types.h: Define pthread stuff only if _POSIX_THREADS
	is defined.

2002-05-19  Pierre Humblet <pierre.humblet@ieee.org>

	* security.cc (open_local_policy): Initialize lsa to
	INVALID_HANDLE_VALUE instead of NULL.
	(get_logon_server_and_user_domain): Test for INVALID_HANDLE_VALUE
	instead of NULL.
	(create_token): Both of the above.

2002-05-18  Christopher Faylor  <cgf@redhat.com>

	* fhandler_disk_file.cc (fhandler_disk_file::fstat): Make handling of
	nlink consistent for remote files.

2002-05-18  Christopher Faylor  <cgf@redhat.com>

	* path.cc (path_conv::check): Always set executable bit for executable
	extension.

2002-05-17  Christopher Faylor  <cgf@redhat.com>

	* fhandler.cc (fhandler_base::lseek): Avoid calling SetFilePointer with
	high order part of 64 bit address on OS's which do not support that
	kind of operation.  Otherwise Windows 95 will become confused.

2002-05-16  Pierre Humblet <pierre.humblet@ieee.org>

	* fhandler_raw.cc (fhandler_dev_raw::open): Replace set_errno()
	by __seterrno_from_win_error().
	* security.cc (open_local_policy): Ditto.
	(get_lsa_srv_inf): Ditto.
	(get_user_groups): Ditto.
	(get_user_primary_group): Ditto.
	(create_token): Ditto.
	(subauth): Ditto.

2002-05-17  Corinna Vinschen  <corinna@vinschen.de>

	* times.cc (utimes): Use FILE_WRITE_ATTRIBUTES even on 9x/Me when
	opening file for writing timestamp.
	* wincap.cc: Remove flag has_specific_access_rights.
	* wincap.h: Ditto.

2002-05-13  Pierre Humblet <pierre.humblet@ieee.org>

	* syscalls.cc (seteuid): Set default dacl in process token.
	Replace in-line code by call to verify_token().
	(setegid): Reverse change from 2002-01-21. Add call to
	RevertToSelf and set primary group in impersonation token.
	* security.cc (create_token): Store pgrpsid in token security
	descriptor, except if it already appears in my_grps.
	Use sec_acl() in place of get_dacl().
	(verify_token): Create from code in seteuid(), with tighter checks.
	(get_dacl) Deleted.
	(get_group_sidlist): Add argument to indicate if pgrpsid is already
	in the groups.
	* security.h: Define verify_token().
	* autoload.cc: Load GetKernelObjectSecurity().

2002-05-13  Mark Bradshaw  <bradshaw@staff.crosswalk.com>

	* cygwin.din: Add strlcat and strlcpy.
	* include/cygwin/version.h: Increment API minor version number.

2002-05-09  Pierre Humblet <pierre.humblet@ieee.org>

	* shared.cc (__sec_user): Split into sec_acl() and call orig_sid().
	(sec_acl): Create from part of __sec_user(), except creator/owner.
	* security.h: Define sec_acl() and MAX_DACL_LEN.

2002-05-12  Christopher Faylor  <cgf@redhat.com>

	* fhandler_disk_file.cc (fhandler_disk_file::open): Avoid using
	O_DIROPEN when OS doesn't support it.  Return proper errno in that
	case.

2002-05-12  Christopher Faylor  <cgf@redhat.com>

	* syscalls.cc (_read): Change error to EBADF if attempt to read from a
	non-readable fd.

2002-05-11  Christopher Faylor  <cgf@redhat.com>

	* fhandler.h (executable_states): For now, make dont_care_if_executable
	equivalent to not_executable.
	* sys/mount.h: Define MOUNT_NOTEXEC.
	* path.h (fs_info): New class.
	(path_conv): Move fs-specific fields to new 'fs' structure.
	(path_conv::update_fs_info): Move to fs_info and rename to just 'update'.
	* path.cc (fs_info::update): Ditto.  Return 'true' if successful.
	(fillout_mntent): Add ',noexec' to list of reported options.

2002-05-11  Christopher Faylor  <cgf@redhat.com>

	* fhandler_virtual.cc (fhandler_virtual::close): Quiet a compiler
	warning.

2002-05-10  Christopher January <chris@atomice.net>

	* autoload.cc: Add dynamic load statements for
	'ZwQueryInformationProcess' and 'ZwQueryVirtualMemory'.
	* fhandler.h: Change type of bufalloc and filesize members of
	fhandler_virtual from int to size_t.  Change type of position member
	from __off32_t to __off64_t.  Add new fileid member to fhandler_virtual
	class.  Make seekdir take an __off64_t argument.  Make lseek take an
	__off64_t argument.  Add fill_filebuf method to fhandler_virtual.  Add
	fill_filebuf method to fhandler_proc.  Add fill_filebuf method to
	fhandler_registry.  Add fill_filebuf method to fhandler_process.  Add
	saved_pid and saved_p members to fhandler_process.
	* fhandler_proc.cc (proc_listing_array): Add 'loadavg', 'meminfo', and 'stat'.
	(proc_fhandlers array): Ditto.
	(fhandler_proc::open): Use fill_filebuf to flesh out the file contents.
	(fhandler_proc::fill_filebuf): New method.
	(fhandler_proc::format_proc_meminfo): Ditto.
	(fhandler_proc::format_proc_stat): Ditto.
	(fhandler_proc::format_proc_uptime): Ditto.
	* fhandler_process.cc (process_listing): Add 'stat' and 'statm'.
	(fhandler_process::fstat): Find the _pinfo structure for the process
	named in the filename.  Return ENOENT if the process is no longer
	around.  Set the gid and uid fields of the stat structure.
	(fhandler_process::open): Store pid and pointer to _pinfo structure in
	saved_pid and saved_p respectively.  Use fill_filebuf to flesh out file
	contents.
	(fhandler_proc::fill_filebuf): New method.
	(format_process_stat): New function.
	(format_process_status): Ditto.
	(format_process_statm): Ditto.
	(get_process_state): Ditto.
	(get_mem_values): Ditto.
	* fhandler_registry.cc (fhandler_registry::seekdir): Change argument
	type from __off32_t to __off64_t.
	(fhandler_registry::fill_filebuf): New method.
	* fhandler_virtual.cc (fhandler_virtual::seekdir): Change argument type
	from __off32_t to __off64_t.
	(fhandler_virtual::lseek): Ditto.
	(fhandler_virtual::fill_filebuf): New method.
	(fhandler_virtual::fhandler_virtual): Initialise fileid to -1.
	* wincap.cc: Set flag has_process_io_counters appropriately.
	* wincap.h: Add flag has_process_io_counters.

2002-05-09 Christopher Faylor <cgf@redhat.com>

	* syscalls.cc (_write): Change error to EBADF if attempt to write to a
	non-writeable fd.

2002-05-08  Corinna Vinschen  <corinna@vinschen.de>

	* cygheap.h (class cygheap_user): Add member `orig_psid'.
	Add method `orig_sid()'.
	* cygheap.cc (cygheap_user::set_sid): Maintain orig_psid.

2002-04-28  Norbert Schulze  <norbert.schulze@web.de>

	* localtime.cc (tzsetwall): Use wildabbr if generated timezone name
	length < 3.

2002-05-05  Pierre Humblet <pierre.humblet@ieee.org>

	* spawn.cc (spawn_guts): Move call to set_process_privilege()
	to load_registry_hive().
	* registry.cc (load_registry_hive): ditto.
	* fork.cc (fork_parent): Call sec_user_nih() only once.

2002-05-04  Christopher January <chris@atomice.net>

	* path.h (path_conv::path_conv): Initialise normalized_path to NULL.

2002-05-03  Christopher Faylor  <cgf@redhat.com>

	* net.cc (getdomainname): Change second argument of getdomainname to
	size_t.

2002-05-03  Christopher January <chris@atomice.net>

	* fhandler_proc.cc (proc_listing): Add '.' and '..' to directory
	listing.
	(fhandler_proc::open): Change use of mode to flags.  If the file does
	not exist already, fail with EROFS if O_CREAT flag is set.  Change
	EROFS error to EACCES error when writing to a file.  Use cmalloc to
	allocate memory for filebuf.
	(fhandler_proc::close): Use cfree to free filebuf.
	(fhandler_proc::get_proc_fhandler): Properly detect attempts to access
	unknown subdir.
	* fhandler_process.cc (process_listing): Add '.' and '..' to directory
	listing.
	(fhandler_process::open): Use cmalloc to allocate memory for filebuf.
	(fhandler_process::close): Use cfree to free filebuf.
	* fhandler_registry.cc (registry_listing): Add .  and '..' to directory
	listing.
	(fhandler_registry::open): Move check for open for writing before
	open_key.  Use cmalloc to allocate memory for filebuf.
	(fhandler_registry::close): Use cfree to free filebuf.
	(fhandler_registry::telldir): Use lower 16 bits of __d_position as
	position in directory.
	(fhandler_registry::seekdir): Ditto.
	* fhandler_virtual.cc (fhandler_virtual::write): Change EROFS error to
	EACCES error.
	(fhandler_virtual::open): Set the NOHANDLE flag.
	(fhandler_virtual::dup): Add call to fhandler_base::dup.  Allocate
	child's filebuf using cmalloc.  Copy filebuf from parent to child.
	(fhandler_virtual::close): Use cfree to free filebuf.
	(fhandler_virtual::~fhandler_virtual): Ditto.
	(from Chris Faylor <cgf@redhat.com>).
	(fhandler_registry::readdir): Add support for '.' and '..' files in
	subdirectories of /proc/registry.
	* path.cc (path_conv::check): Do not return ENOENT if a file is not
	found in /proc.

2002-05-02  Christopher Faylor  <cgf@redhat.com>

	* fhandler_proc.cc (fhandler_proc::fstat): Use fhandler name rather
	than path_conv name.
	(fhandler_proc::open): Ditto.
	* fhandler_process.cc (fhandler_process::fstat): Use fhandler name
	rather than path_conv name.
	(fhandler_process::open): Ditto.
	* fhandler_registry.cc (fhandler_registry::fstat): Use fhandler name
	rather than path_conv name.
	(fhandler_registry::open): Ditto.
	* path.cc (path_conv::check): Don't copy posix path when virtual.
	(mount_info::conv_to_win32_path): Don't zero string when isproc.  Just
	derive normal windows path.

	* path.h (path_conv::clear_normalized_path): Declare new method.
	* path.cc (path_conv::clear_normalized_path): Define new method.
	* dtable.cc (build_fhandler_from_name): Clear normalized path when
	finished to conserve space.

2002-05-02  Christopher Faylor  <cgf@redhat.com>

	* fhandler_proc.cc (fhandler_proc::fstat): Prime with information from
	fhandler_base::fstat.  Use defines rather than constants for permission
	settings.

2002-04-30  Eric Blake  <ebb9@email.byu.edu>

	* path.cc (hash_path_name): Improve hash function strength.

2002-05-02  Robert Collins <rbtcollins@hotmail.com>

	* thread.cc (__pthread_cond_dowait): Fix a race on signalling from a
	thread woken by the same condition variable it's signalling on. Thanks
	to Michael Beach for the report and test case.

2002-05-02  Christopher Faylor  <cgf@redhat.com>

	* path.h (pathconv_arg): Add PC_POSIX.
	(path_conv): Add normalized_path field.
	* path.cc (path_conv::~path_conv): New destructor.
	(path_conv::check): Set normalized_path, where appropriate.
	* dtable.cc (build_fhandler_from_name): Use normalized path from
	path_conv.
	* syscalls.cc (chroot): Ditto.

	* cygheap.h: Remove path_prefix_p declaration.

2002-02-26  Christopher January <chris@atomice.net>
	    Christopher Faylor <cgf@redhat.com> (minor fixups)

	* Makefile.in: Add fhandler_proc.o, fhandler_registry.o,
	fhandler_process.o and fhandler_virtual.o.
	* dtable.cc (dtable::build_fhandler): Add entries for FH_PROC,
	FH_REGISTRY and FH_PROCESS.  Set unix_name to the normalized posix
	path.
	* fhandler.h: Add constants for FH_PROC, FH_REGISTRY and FH_PROCESS.
	Add class declarations for fhandler_virtual, fhandler_proc,
	fhandler_registry and fhandler_virtual.  Update fhandler_union
	accordingly.
	* fhandler_proc.cc: New file.  Add implementation for fhandler_proc.
	* fhandler_virtual.cc: New file.  Add implementation for
	fhandler_virtual.
	* fhandler_process.cc: New file.  Add implementation for
	fhandler_process.
	* fhandler_registry.cc: New file.  Add implementation for
	fhandler_registry.
	* path.cc (isproc): New macro.
	(isvirtual_dev): Ditto.
	* path.cc (path_conv::check): Add check for virtual devices.
	* path.cc (mount_info::conv_to_win32_path): Convert paths in /proc to
	empty Win32 paths.
	* path.cc (chdir): Replace check for FH_CYGDRIVE with more generic
	isvirtual_dev macro.  Force setting of posix path for virtual
	fhandlers.
	* path.h (path_prefix_p): Declare.


Wed May  1 16:06:02 2002  Jason Tishler <jason@tishler.net>

	* include/cygwin/types.h: Include <sys/sysmacros.h>.

Wed Apr 17 11:27:04 2002  Jason Tishler <jason@tishler.net>

	* security.cc (get_lsa_srv_inf): Prevent extraneous backslashes for
	the NT Domain case.

2002-04-12  Corinna Vinschen  <corinna@vinschen.de>

	* net.cc (cygwin_accept): Set socket type for accepted socket.
	(socketpair): Set socket type for both sockets.

2002-04-12  Egor Duda  <deo@logos-m.ru>

	* fhandler.h (class fhandler_socket): New member to store socket type.
	(fhandler_socket::get_socket_type): Access it.
	(fhandler_socket::set_socket_type): Ditto.
	* net.cc (cygwin_socket): Store socket type.
	(cygwin_connect): Disable security checks for connectionless sockets.
	(cygwin_accept): Ditto.

2002-04-09  Mark Bradshaw  <bradshaw@staff.crosswalk.com>

	* cygwin.din: Add strptime.
	* include/cygwin/version.h: Increment API version number.

2002-04-09  Corinna Vinschen  <corinna@vinschen.de>

	* fork.cc (fork_child): Call fixup_mmaps_after_fork() somewhat earlier.

2002-04-09  Corinna Vinschen  <corinna@vinschen.de>

	* fhandler.cc (fhandler_base::open): Set read-only bit in
	file_attributes when adequate.

2002-03-28  Christopher Faylor  <cgf@redhat.com>

	* times.cc (gettimeofday): Fix typo in previous patch.

2002-03-27  Wu Yongwei  <adah@netstd.com>

	* times.cc (gettimeofday): Revert to setting timezone info if tz !=
	NULL.

2002-03-21  Christopher Faylor  <cgf@redhat.com>

	* fhandler_disk_file.cc (fhandler_disk_file::fstat_helper): Always set
	st_[ug]id to value derived from get_file_attributes.

2002-03-21  Christopher Faylor  <cgf@redhat.com>

	* spawn.cc (find_exec): Return input if file not found.

2002-03-19  Boris Schaeling  <boriss@web.de>

	* poll.cc (poll): Add support for invalid descriptors.

2002-03-15  Robert Collins  <rbtcollins@hotmail.com>

	* fhandler.h (fhandler_termios::lseek): Override lseek.
	* fhandler_termios.cc (fhandler_termios::lseek): Implement this.

2002-03-15  Christopher Faylor  <cgf@redhat.com>

	* cygserver.cc: Include stdlib.h for exit declaration.
	* threaded_queue.cc: Ditto.

2002-03-15  Christopher Faylor  <cgf@redhat.com>

	* pinfo.cc (pinfo::init): Use PID_ALLPIDS flag to control when a
	redirected block should be marked as nonexistent.
	(winpids::add): Use PID_ALLPIDS when looking for all pids.
	* cygwin.h (PID_ALLPIDS): New enum element.

2002-03-15  Corinna Vinschen  <corinna@vinschen.de>

	* glob.c (stat32_to_STAT): New function.
	(g_lstat): Call user space functions always with 32 bit struct stat
	as a workaround.
	(g_stat): Ditto.
	* include/glob.h (struct glob): Don't prototype function pointers
	when compiling Cygwin.

2002-03-14  Christopher Faylor  <cgf@redhat.com>

	* pinfo.cc (pinfo::init): Properly handle execed process stub when
	PID_NOREDIR is specified.

2002-03-13  Boris Schaeling  <boriss@web.de>

	* poll.cc (poll): Remove variable open_fds.  Rearrange and add code to
	fix settings of revents.

2002-03-13  Corinna Vinschen  <corinna@vinschen.de>

	* mmap.cc (mmap_record::map_map): Return -1 if VirtualProtect fails.
	(list::erase): New method with no argument.  Erase latest record
	added.
	(mmap64): Fail if map_map() fails.

2002-03-12  Corinna Vinschen  <corinna@vinschen.de>

	* sysconf.cc (sysconf): Fix condition.

2002-03-11  Corinna Vinschen  <corinna@vinschen.de>

	* mmap.cc (msync): Check area given by addr and len for being a
	contigeous mmap'd region.

2002-03-11  Corinna Vinschen  <corinna@vinschen.de>

	* fork.cc (fork_child): Call fixup_mmaps_after_fork() before
	closing parent process handle.  Call fixup_mmaps_after_fork()
	with parent process handle as parameter.
	* mmap.cc (mmap_record::access): New method.
	(fixup_mmaps_after_fork): Take process handle as parameter.
	In case of FILE_MAP_COPY access, copy valid memory regions to child.
	* pinfo.h (fixup_mmaps_after_fork): Change prototype accordingly.

2002-03-07  Corinna Vinschen  <corinna@vinschen.de>

	* autoload.cc (NetGetDCName): Add symbol.
	(NetServerEnum): Remove symbol.
	* security.cc (get_lsa_srv_inf): Call NetGetDCName() instead of
	NetServerEnum() since it's faster.  Don't call it at all if machine
	is not a domain member.

2002-03-06  Christopher Faylor  <cgf@redhat.com>

	* path.cc (normalize_posix_path): Avoid runs of '.'s > 2.

2002-03-05  Christopher Faylor  <cgf@redhat.com>

	* errno.cc: Change EPERM associated text to "Operation not permitted"
	throughout.

2002-03-05  Christopher Faylor  <cgf@redhat.com>

	* fhandler_socket.cc (fhandler_socket::close): Respond to signals while
	looping, waiting for socket to close.  Superstitiously clear last error
	when WSAEWOULDBLOCK.

2002-03-05  Robert Collins  <rbtcollins@hotmail.com>

	* cygserver_transport_pipes.cc (transport_layer_pipes::transport_layer_pipes):
	Always init - until static members work correctly.
	* shm.cc (shmget): Initialize the security descriptor - thanks Corinna!
	* include/sys/ipc.h: Make the ipc control constants partitioned off from the sem
	control constants.

2002-03-04  Christian Lestrade  <christian.lestrade@free.fr>

	* include/sys/termios.h: Define _POSIX_VDISABLE.  Define CCEQ macro.
	* fhandler_termios.cc: Include <sys/termios.h>.
	(line_edit): Recognize disabled c_cc[] chars.  Ignore VDISCARD when
	not in ICANON mode.

2002-03-04  Dmitry Timoshkov  <dmitry@baikal.ru>

	* syscalls.cc (truncate64): Use ftruncate64 directly to not lose
	upper 32 bits.

2002-03-04  Robert Collins  <rbtcollins@hotmail.com>

	* cygserver_shm.cc (delete_shmnode): New function.
	(client_request_shm::serve): Use it.

2002-03-04  Robert Collins  <rbtcollins@hotmail.com>

	* cygserver_shm.cc (client_request_shm::serve): Implement SHM_DETACH.
	* shm.cc (shmdt): Implement.

2002-03-04  Robert Collins  <rbtcollins@hotmail.com>

	* cygserver_shm.cc: Run indent.
	(deleted_head): New global for storing shm id's pending deletion.
	(client_request_shm::serve): Return ENOSYS for invalid request types.
	Implement SHM_DEL - delete a shm id.
	* cygserver_shm.h (SHM_DEL): New type value.
	* shm.cc (delete_inprocess_shmds): New function, does what it's name implies.
	(shmctl): Implement shm_rmid control type.

2002-03-04  Robert Collins  <rbtcollins@hotmail.com>

	* Makefile.in (install): Remove install-bin to allow make install to work.

2002-03-03  Robert Collins  <rbtcollins@hotmail.com>

	* shm.cc (shmat): Prevent a compile error.
	(shmdt): Set errno as this function is incomplete.

2002-02-28  Christopher Faylor  <cgf@redhat.com>

	* times.cc: Remove if 0'd code.  Clean up slightly.

2002-02-28  Robert Collins  <rbtcollins@hotmail.com>

	* Merged cygwin_daemon into head minus the new shm and ipc exports.

2002-02-28  Robert Collins  <rbtcollins@hotmail.com>

	* fhandler_tty.cc (fhandler_tty_slave::open): More debugging.
	(fhandler_tty_slave::read): Fix printf type for the handle.
	* tty.cc (tty::common_init): Add a FIXME for security.

2002-01-29  Robert Collins  <rbtcollins@hotmail.com>

	* Makefile.in (OBJS): Remove duplicate localtime.o.

2002-01-17  Robert Collins  <rbtcollins@hotmail.com>

	* cygserver.cc (check_and_dup_handle): Consolidate the two variants for
	simplicity.
	Add Some basic debug output.
	(client_request_attach_tty::serve): Use the new debug_printf for clarity.
	Mark the duplicated handles as inheritable - fixup_after_fork() doesn't reopen
	tty's.

2002-01-16  Robert Collins  <rbtcollins@hotmail.com>

	* cygserver.cc (transport): Correct scope.
	(client_request_attach_tty::serve): Add more debug information.
	Fix erroneous use of transport instead of conn.
	* cygserver_transport_pipes.cc (transport_layer_pipes::close): More debug.
	(transport_layer_pipes::read): Ditto.
	(transport_layer_pipes::write): Ditto.
	(transport_layer_pipes::impersonate_client): Ditto.

Mon Oct  8  7:41:00 2001  Robert Collins <rbtcollins@hotmail.com>

	* cygserver.cc (server_request::process): Rename client_request_shm_get to
	client_request_shm.
	* cygserver_process.cc (process_cache::add): Rename to add_task.
	Use process_cleanup instead of process_request.
	(process_cache::remove_process): New method.
	(process::process): Initialize new members.
	(process::~process): New member.
	(process::cleanup): New method.
	(process::add_cleanup_routine): New method.
	(process_request::process): Rename to process_cleanup.
	Call the process object's cleanup method and then delete it.
	(process_process_param::request_loop): Remove the signalling process.
	* cygserver_shm.cc: Globally rename client_request_shm_get to client_request_shm.
	(client_request_shm_get::serve): Handle attach request counting.
	* cygserver_shm.h: Globally rename client_request_shm_get to client_request_shm.
	(class shm_cleanup): New class.
	* shm.cc: Globally rename client_request_shm_get to client_request_shm.
	(client_request_shm::client_request_shm): New constructor for attach requests.
	(shmat): Use it.
	* include/cygwin/cygserver_process.h (class process_request): Rename to
	process_cleanup.
	(class cleanup_routine): New class.
	(class process): New members and methods to allow calling back when the process
	terminates.

Thu Oct  4 14:12:00 2001  Robert Collins <rbtcollins@hotmail.com>
	* cygserver.cc (request_loop): Make static.
	(main): Use new cache constructor syntax.
	Start cache worker threads.
	Cleanup the cache at shutdown.
	* cygserver_process.cc: Run indent.
	(process_cache::process_cache): Add a trigger to use when adding a process.
	(process_cache::process): Move process_entry to process.
	Insert at the end of the list.
	Trigger the request loop when new process's inserted.
	(process_cache::process_requests): Do it.
	(process_cache::add): New method.
	(process_cache::handle_snapshot): New method.
	(process::process): Merge in the process_entry fields.
	(process::handle): Make a stub function.
	(process::exit_code): New method.
	(process_request::process): New method.
	(process_process_param::request_loop): New method.
	* cygserver_shm.cc: New header dependency - threaded_queue.h.
	* threaded_queue.cc (threaded_queue::cleanup): Clearer messages.
	(queue_process_param::stop): Short spinlock on interruptible threads.
	* threaded_queue.h (class threaded_queue): New constructor.
	* include/cygwin/cygserver_process.h (process_request): New class.
	(process_entry): Remove.
	(process): Merge in process_entry.
	(process_cache): Inherit from threaded_queue.

Tue Oct  2 23:24:00 2001  Robert Collins <rbtcollins@hotmail.com>

	* cygserver.cc (class server_process_param): Use new constructor syntax.
	* cygserver_process.cc (process_cache::~process_cache): New function.
	* threaded_queue.cc: Define condition debug_printf.
	Run indent.
	(threaded_queue::cleanup): Move queue_process_param guts to a method.
	(threaded_queue::process_requests): Ditto.
	(queue_process_param::queue_process_param): New method.
	(queue_process_param::~queue_process_param): Ditto.
	(queue_process_param::start): Ditto.
	(queue_process_param::stop): Ditto.
	* threaded_queue.h (class queue_process_param): Add support for
	interruptible request loops.
	* cygwin/include/cygwin/cygserver_process.h (class process_cache): Add
	destructor.

Tue Oct  2 23:24:00 2001  Robert Collins <rbtcollins@hotmail.com>

	* cygserver_client.cc: New flag allow_daemon to disable the daemon completely.
	(cygserver_request): Check it.
	(cygserver_init): Ditto.
	* environ.cc (parse_thing): Add (no)daemon option.

Tue Oct  2 23:00:00 2001  Robert Collins <rbtcollins@hotmail.com>

	* shm.cc: Update to handle include changes from HEAD.

Tue Oct  2 16:06:00 2001  Robert Collins <rbtcollins@hotmail.com>

	* Makefile.in: Remove cygserver_shm.o from cygwin1.dll.
	Rename cygserver_shm_outside.o to cygserver_shm.o.
	* cygserver.cc (server_request::process): Use the new client_request
	constructor.
	* cygserver_client.cc: Remove the #ifdef's stubs for the server method
	within cygwin.
	(client_request_attach_tty::client_request_attach_tty): Use the new
	client_request constructor.
	(client_request_shutdown::client_request_shutdown): Ditto.
	(client_request::client_request): Ditto.
	* cygserver_shm.cc (client_request_shm_get::serve): Remove the
	#ifdef'd stub for in-cygwin builds.
	(client_request_shm_get::client_request_shm_get): Use the new
	client_request constructor, and remove the in-cygwin variants.
	* cygserver_shm.h (class client_request_shm_get): #ifndef test the
	serve method - it's only used in cygserver.
	* shm.cc (client_request_shm_get::client_request_shm_get): New function.
	* include/cygwin/cygserver.h (request_header): New constructor.
	(class client_request): Use it.
	New constructor accepting the header size.
	#ifndef test the server method - it's only used within cygserver.
	(client_request_get_version): #ifdef test the server method.
	(client_request_shutdown): Ditto.
	(client_request_attach_tty): Ditto.

Tue Oct  2  9:57:00 2001  Robert Collins <rbtcollins@hotmail.com>

	* Makefile.in: add threaded_queue.o to cygserver.exe.
	* cygserver.cc: Include threaded_queue.h
	(class server_request): Inherit from queue_request.
	(class server_process_param): Inherit from queue_process_param.
	(class server_request_queue): Inherit from threaded_queue.
	(request_loop): Adjust for new types.
	(server_request_queue::process_requests): Remove guts to
	threaded_queue::process_requests.
	(server_request::server_request): Adjust for new types.
	(worker_function): Delete.
	(server_request_queue::create_workers): Delete.
	(server_request_queue::cleanup): Delete.
	(server_request_queue::add): Move guts to threaded_queue::add.
	* threaded_queue.cc: New file.
	* threaded_queue.h: New file.

Mon Oct  1 12:38:00 2001  Robert Collins <rbtcollins@hotmail.com>

	* cygserver.cc (client_request::serve): New function.
	* cygserver_process.cc: Inlude <pthread.h> for pthread_once.
	(process_cache::process_cache): Initialise a crtiical section for write access.
	(process_cache::process): Use the critical section. Also add missing entries to
	the cache.
	(do_process_init): New function to initalise class process static variables.
	(process::process): Ensure that the process access critical section is
	initialised.
	(process::handle): Close the handle of old process's when they have terminated
	and we are returning the handle for a process with the same pid.
	* cygserver_shm.cc: Run indent.
	Include cygserver_process.h to allow process cache functionality.
	(client_request_shm_get::serve): New parameter for process cache support.
	Use the process cache, not OpenProcess to get a handle to the originating process.
	Fix a handle leak with token_handle.
	* cygserver_shm.h (class client_request_shm_get): Update ::serve for process
	cache support.
	* cygserver_transport_pipes.cc: Redefine debug_printf to be conditional on DEBUG.
	* include/cygwin/cygserver.h: Do not implement client_request::serve in the
	header.
	* include/cygwin/cygserver_process.h (class process_cache): Add a write access
	critical section to prevent races when requests from a  multithreaded
	application arrive.

Sun Sep 30 23:41:00 2001  Robert Collins <rbtcollins@hotmail.com>

	* Makefile.in: Add cygserver_process.o to cygserver.exe.
	* cygserver.cc: Include signal.h and cygwin_version.h.
	Define debug_printf as a macro.
	Define DEBUG to a value.
	(client_request_attach_tty::serve): Add beginning of process cache support.
	Change from #ifdef DEBUG to work with new DEBUG style.
	(client_request_get_version::serve): Add beginning of process cache support.
	(class server_request): New prototype for support of process cache.
	(class queue_process_param): New class to allow request loop threading.
	(class server_request_queue): Add beginning of process cache support.
	Allow request loop threading.
	(request_loop): Thread function for request loops.
	(server_request_queue::process_requests): Initiator for threaded request loops.
	(client_request_shutdown::serve): Add beginning of process cache support.
	(server_request::server_request): Ditto.
	(server_request::process): Use debug_printf. Add beginning of process cache
	support.
	(server_request_queue::cleanup): Kill off any request loop threads.
	(server_request_queue::add): Add beginning of process cache support.
	(handle_signal): Trigger a shutdown.
	(main): Print out some useful info at startup - version, date time.
	Add process cache support.
	Spawn a separate thread for the transport request loop, thus allowing concurrent
	support for multiple transports.
	* cygserver_client.cc (client_request_get_version::serve): Add process cache
	support.
	(client_request_attach_tty::serve): Add process cache support.
	(client_request_shutdown::serve): Add process cache support.
	* cygsserver_process.cc: New file with the process cache support.
	* cygserver_shm.cc: Redefine debug_printf to allow conditional output.
	* cygwin.din: Export shmdt().
	* shm.cc: Run indent.
	Update FIXME's.
	(shmdt): New function.
	* include/cygwin/cygserver.h (class client_request): Add process cache support.
	(class client_request_get_version): Ditto.
	(class client_request_shutdown): Ditto.
	(class client_request_attach_tty): Ditto.
	* include/cygwin/cygserver_process.h: New header for process cache support.

Sun Sep 30  8:52:00 2001  Robert Collins <rbtcollins@hotmail.com>

	* include/cygwin/cygserver_transport.h: Add copyright header.
	* include/cygwin/cygserver_transport_pipes.h: Ditto.
	* include/cygwin/cygserver_transport_sockets.h: Ditto.

Sat Sep 29 20:40:00 2001  Robert Collins <rbtcollins@hotmail.com>

	* Makefile.in: Add cygserver_transport_sockets.o to DLL_OFILES.
	Add cygserver_transport_sockets_outside.o to cygserver.exe.
	* cygserver.cc: Include new include files.
	* cygserver_client.cc: Ditto.
	* cygserver_shm.h: No need to include <sys/socket.h> now.
	* cygerver_transport.cc: Include new include files.
	(transport_layer_base::transport_layer_base): Strip back to a stub.
	(transport_layer_base::listen): Ditto.
	(transport_layer_base::accept): Ditto.
	(transport_layer_base::close): Ditto.
	(transport_layer_base::read): Ditto.
	(transport_layer_base::write): Ditto.
	(transport_layer_base::connect): Ditto.
	* cygserver_transport_pipes.cc: Include new header
	"cygwin/cygserver_transport_pipes.h".
	* cygserver_transport_sockets.cc: New file.
	* dcrt0.cc: No need to include <sys/socket.h> now.
	* fhandler_tty.cc: Ditto.
	* tty.cc: Ditto.
	* include/cygwin/cygserver_transport.h: Strip the base class to a stub.
	Remove the cygserver_transport_pipes class.
	* include/cygwin/cygserver_transport_pipes.h: New file.
	* include/cygwin/cygserver_transport_sockets.h: New file.

Tue Sep 25 16:22:00 2001  Robert Collins <rbtcollins@hotmail.com>

	* autoload.cc: Add dynamic load statement for 'ImpersonateNamedPipeClient'.
	* Makefile.in: Add new object files, and build instructions for cygserver.exe.
	* cygwin.din: Export ftok, shmat, shmctl and shmget.
	* dcrt0.cc: Additional includes for cygserver support.
	(dll_crt0_1): Initialise the cygserver client.
	* fhandler.h (fhandler_tty): New method cygserver_attach_tty.
	* fhandler_tty.cc: Additional includes for cygserver support.
	(fhandler_tty_slave::open): Attempt to use the cygserver when obtaining
	handles from the parent process. On failure or 9x use the current method.
	(fhandler_tty_slave::cygserver_attach_tty): New function.
	* fork.cc (fork_child): Fixup shm memory mapped areas.
	* pinfo.h: Declare fixup_shms_after_fork().
	* security.h: Declare alloc_sd().
	* tty.cc: Additonal includes to support cygserver.
	(tty::common_init): Don't allow others to open us if the cygserver is running.
	* winsup.h: Declare cygserver_running.
	* cygserver.cc: New file.
	* cygserver_client.cc: New file.
	* cygserver_shm.cc: New file.
	* cygserver_shm.h: New file.
	* cygserver_transport.cc: New file.
	* cygserver_transport_pipes.cc: New file.
	* ipc.cc: New file.
	* shm.cc: New file.
	* include/cygwin/cygserver.h: New file.
	* include/cygwin/cygserver_transport.h: New file.
	* include/sys/ipc.h: New file.
	* include/sys/shm.h: New file.

2002-02-28  Robert Collins  <rbtcollins@hotmail.com>

	* thread.cc (semaphore::TryWait): Set errno as required by posix 1003.1.
	(__sem_wait): Ditto.
	(__sem_trywait): Ditto.

2002-02-27  Christopher Faylor  <cgf@redhat.com>

	* include/cygwin/version.h: Bump DLL minor number.

2002-02-23  Corinna Vinschen  <corinna@vinschen.de>

	* cygwin.din (fstat64): New symbol.
	(ftruncate64): Ditto.
	(lseek64): Ditto.
	(lstat64): Ditto.
	(mmap64): Ditto.
	(seekdir64): Ditto.
	(stat64): Ditto.
	(telldir64): Ditto.
	(truncate64): Ditto.
	* dir.cc (telldir64): New function.
	(telldir): Call telldir64().
	(seekdir64): New function.
	(seekdir): Call seekdir64().
	* fhandler.h: Redefine all methods using __off32_t to use __off64_t.
	* fhandler.cc: Use __off64_t and struct __stat64 throughout.
	* fhandler_clipboard.cc: Ditto.
	* fhandler_disk_file.cc: Ditto.
	* fhandler_dsp.cc: Ditto.
	* fhandler_floppy.cc: Ditto.
	* fhandler_mem.cc: Ditto.
	* fhandler_random.cc: Ditto.
	* fhandler_socket.cc: Ditto.
	* fhandler_tape.cc: Ditto.
	* fhandler_zero.cc: Ditto.
	* pipe.cc: Ditto.
	* glob.c: Ditto, call lstat64 and stat64 in Cygwin.
	* mmap.cc: Use __off64_t throughout.
	(mmap64): New function.
	* sec_acl.cc (acl_worker): Use struct __stat64, call stat64 and lstat64.
	* syscalls.cc (lseek64): New function.
	(stat64_to_stat32): Ditto.
	(fstat64): Ditto.
	(stat64): Ditto.
	(lstat64): Ditto.
	(ftruncate64): Ditto.
	(truncate64): Ditto.
	(_fstat): Call fstat64.
	(_stat): Call stat64.
	(cygwin_lstat): Rename to avoid declaration problem.  Call lstat64.
	(stat_worker): Use struct __stat64.
	(access): Ditto.
	(ftruncate): Call ftruncate64.
	(truncate): Call truncate64.
	* wincap.cc: Set flag has_64bit_file_access appropriately.
	* wincap.h: Add flag has_64bit_file_access.
	* winsup.h (ILLEGAL_SEEK): Define as __off64_t.
	(stat_dev): Declare using struct __stat64.
	(stat_worker): Ditto.
	* include/cygwin/stat.h (struct __stat32): Define if compiling Cygwin.
	(struct __stat64): Ditto.
	(struct stat): Revert definition with explicitly sized datatypes.
	Eliminate sized field names.
	* include/cygwin/types.h (blksize_t): New type.
	(__blkcnt32_t): Ditto.
	(__blkcnt64_t): Ditto.
	(blkcnt_t): Ditto.

2002-02-22  Christopher Faylor  <cgf@redhat.com>

	* sync.h (new_muto): Just accept an argument which denotes the name of
	the muto.  Use this argument to construct static storage.
	* cygheap.cc (cygheap_init): Reflect above change.
	* exceptions.cc (events_init): Ditto.
	* malloc.cc (malloc_init): Ditto.
	* path.cc (cwdstuff::init): Ditto.
	* cygheap.h (cwdstuff): Change name of lock element to make it less
	generic.
	* path.cc (cwdstuff::get_hash): Ditto.
	(cwdstuff::get_initial): Ditto.
	(cwdstuff::set): Ditto.
	(cwdstuff::get): Ditto.
	* sigproc.cc (proc_subproc): Ditto.

	* debug.cc (lock_debug): Change to method.  Use method rather than
	macro throughout.

	* tty.h (tty_min::kill_pgrp): Declare new method.
	* fhandler_termios.cc (tty_min::kill_pgrp): New method.
	(fhandler_termios::line_edit): Use new method for killing process.
	* dcrt0.cc (do_exit): Ditto.

	* dtable.cc (dtable::get_debugger_info): New method for inheriting
	dtable info from a debugger.
	* tty.cc (tty_init): Attempt to grab file handle info from parent
	debugger, if appropriate.

	# dtable.cc (dtable::stdio_init): Make this a method.
	(dtable::init_std_file_from_handle): Don't set fd unless it's not open.
	(dtable::build_fhandler_from_name): Move name setting to
	dtable::build_fhandler.
	(dtable::build_fhandler): Add win32 name parameter.
	* dcrt0.cc (dll_crt0_1): Change to use dtable stdio_init.
	* dtable.h (dtable): Reflect build_fhandler parameter change.
	* mmap.cc (mmap_record::alloc_fh): Don't set name parameter in
	build_fhandler.
	* net.cc (fdsock): Remove set_name call since it is now handled by
	build_fhandler.

	* sigproc.cc (proc_subproc): Release muto as early as possible.

2001-02-22  Corinna Vinschen  <corinna@vinschen.de>

	* smallprint.c (rn): Allow long long values.
	(__small_vsprintf): Add 'D', 'U' and 'X' formats for long long
	parameters.

2002-02-19  Christopher Faylor  <cgf@redhat.com>

	* fhandler.cc (fhandler_base::puts_readahead): Remove default parameter
	setting.  Newer gcc's complain about this.
	(fhandler_base::set_readahead_valid): Ditto.
	* fhandler_dsp.cc (Audio::open): Ditto.
	(fhandler_dev_dsp::open): Ditto.

2002-02-19  Christopher Faylor  <cgf@redhat.com>

	* fork.cc (fork_parent): Use sec_user_nih to control process/thread
	inheritance/permission.
	* spawn.cc (spawn_guts): Ditto.
	* security.cc (create_token): Initialize token so that it is not tested
	for bogus value later.  Use sec_user to control process/thread
	creation.
	* security.h (__sec_user): Rename declaration from sec_user.
	(sec_user_nih): Declare here as inline function wrapper for __sec_user.
	(sec_user): Ditto.
	* sigproc.cc (czombies): Allocate a character array for zombies to
	avoid constructor overhead
	(extremely hackish, I know).
	(cpchildren): Ditto.
	(pchildren): New define.
	(zombies): Ditto.
	(getsem): Use sec_user_nih to control semaphore inheritance/permission.

2002-02-16  Christopher Faylor  <cgf@redhat.com>

	* times.cc (hires::prime): Restore thread priority on failure
	condition.

	* uinfo.cc (uinfo_init): Use more robust method for determining if
	process was invoked from a non-cygwin process.

	* sync.h (muto::init): Eliminate "inheritance" parameter.
	(new_muto): Reflect removal of parameter.
	* sync.cc (muto::init): Ditto.
	* cygheap.cc (cygheap_init): Ditto.
	* debug.cc (threadname_init): Ditto.
	* exceptions.cc (events_init): Ditto.
	* malloc.cc (malloc_init): Ditto.
	* path.cc (cwdstuff::init): Ditto.
	* sigproc.cc (sigproc_init): Ditto.

	* grp.cc (group_lock): Use different method for locking with static
	member.
	(read_etc_group): REALLY ensure that read lock mutex is released.
	* passwd.cc (passwd_lock): Use different method for locking with static
	member.
	(read_etc_passwd): REALLY ensure that read lock mutex is released.

	* shared.cc (sec_user): Correct reversed inheritance test.

2002-02-15  Christopher Faylor  <cgf@redhat.com>

	* hires.h (hires::usecs): Rename from utime.  Accept an argument.
	* strace.cc (strace::microseconds): Use hires class for calculating
	times.
	* sync.h (new_muto): Use NO_COPY explicitly in declaration.
	* times.cc (gettimeofday): Reflect change in usecs argument.
	(hires::usecs): Ditto.  Changed name from utime.
	* winsup.h (NO_COPY): Add nocommon attribute to force setting aside
	space for variable.
	* regcomp.c (REQUIRE): Add a void cast to bypass a warning.

2002-02-15  Christopher Faylor  <cgf@redhat.com>

	* hires.h: New file.
	* times.cc (gettimeofday): Use hires class for calculating current time.
	(hires::prime): New method.
	(hires::utime): Ditto.

2002-02-14  Christopher Faylor  <cgf@redhat.com>

	* include/sys/cygwin.h (cygwin_getinfo_types): New CW_STRACE_ACTIVE.
	* external.cc (cygwin_internal): Handle CW_STRACE_ACTIVE.

2002-02-14  Christopher Faylor  <cgf@redhat.com>

	* exceptions.cc (unused_sig_wrapper): Eliminate unused parameter to
	asm.
	* external.cc (cygwin_internal): Change CW_STRACE_ON to
	CW_STRACE_TOGGLE.
	* strace.cc (strace::hello): Toggle strace on and off.
	* sync.cc (muto::init): Renamed from constructor.
	* sync.h (muto::new): Delete.
	(muto::delete): Ditto.
	(new_muto): Simplify.  Use muto.init for nearly everything.
	* uinfo.cc (uinfo_init): Avoid closing a NULL handle.
	* include/sys/cygwin.h (cygwin_getinfo_types): Rename CW_STRACE_OFF to
	CW_STRACE_TOGGLE.  Delete CW_STRACE_OFF.
	* include/sys/strace.h (strace): Add "inited" field.

2001-02-12  Corinna Vinschen  <corinna@vinschen.de>

	* include/cygwin/acl.h: Fix definition of aclent_t.

2002-02-10  Christopher Faylor  <cgf@redhat.com>

	* Makefile.in (DLL_OFILES): Consolidate object files.

2002-02-10  Corinna Vinschen  <corinna@vinschen.de>

	* child_info.h, cygheap.h, fhandler_clipboard.cc, fhandler_dsp.cc,
	fhandler_floppy.cc, fhandler_mem.cc, fhandler_random.cc,
	fhandler_tape.cc, fhandler_zero.cc, grp.cc, mmap.cc, passwd.cc,
	pinfo.cc, pinfo.h, pipe.cc, sec_acl.cc, sec_helper.cc, security.cc,
	security.h, thread.h, uinfo.cc, include/cygwin/acl.h: Fix copyright.

2002-02-10  Corinna Vinschen  <corinna@vinschen.de>

	* child_info.h, cygheap.h, dcrt0.cc, dir.cc, fhandler.cc, fhandler.h,
	fhandler_clipboard.cc, fhandler_disk_file.cc, fhandler_dsp.cc,
	fhandler_floppy.cc, fhandler_mem.cc, fhandler_random.cc,
	fhandler_tape.cc, fhandler_zero.cc, grp.cc, mmap.cc, passwd.cc,
	pinfo.cc, pinfo.h, pipe.cc, sec_acl.cc, sec_helper.cc, security.cc,
	security.h, spawn.cc, syscalls.cc, thread.h, uinfo.cc, winsup.h:
	Change usage of uid_t to __uid16_t, gid_t to __gid16_t and
	off_t to __off32_t throughout.  Use INVALID_UID, INVALID_GID and
	INVALID_SEEK instead casting -1 to the appropriate type.
	* winsup.h: Define INVALID_UID, INVALID_GID and INVALID_SEEK.
	* include/cygwin/acl.h: Define internal __aclent16_t and __aclent32_t
	types.  Don't declare acl functions when compiling Cygwin.
	* include/cygwin/grp.h: Declare getgrgid() and getgrnam() with
	correct types for internal usage.

2002-02-10  Corinna Vinschen  <corinna@vinschen.de>

	Patch suggested by Pierre A. Humblet <Pierre.Humblet@ieee.org>:
	* uinfo.cc (internal_getlogin): Try evaluating user by SID even if
	ntsec is off.
	(uinfo_init): Set primary group even if ntsec is off.

2002-02-09  Corinna Vinschen  <corinna@vinschen.de>

	* include/cygwin/grp.h: New file.
	* include/cygwin/stat.h: Ditto.
	* include/cygwin/types.h: Add definitions for __off32_t,
	__off64_t, off_t, __uid16_t, __uid32_t, uid_t, __gid16_t,
	__gid32_t and gid_t.
	* include/sys/cygwin.h: Use correct uid and gid types.

2002-02-09  Corinna Vinschen  <corinna@vinschen.de>

	* dtable.cc (dtable::dup2): Revert previous patch.
	* fhandler.h: Ditto.
	(fhandler_socket::recv): Define new method.
	(fhandler_socket::send): Ditto.
	* fhandler_socket.cc (fhandler_socket::recv): New method.
	(fhandler_socket::send): Ditto.
	(fhandler_socket::read): Call fhandler_socket::recv() now.
	(fhandler_socket::write): Call fhandler_socket::send() now.
	* net.cc (class wsock_event): Move definition to wsock_event.h.
	(fdsock): Revert previous patch.
	(cygwin_recv): Move implementation to fhandler_socket::recv().
	(cygwin_send): Move implementation to fhandler_socket::send().
	* wsock_event.h: New file.

2002-02-06  Alexander Gottwald <Alexander.Gottwald@s1999.tuchemnitz.de>

	* net.cc (get_2k_ifconf): Create interface entries for tokenring cards.

2002-02-08  Corinna Vinschen  <corinna@vinschen.de>

	* dtable.cc (dtable::dup2): Store fd for fhandler_socket.
	* fhandler.h (fhandler_base::set_fd): New virtual method.
	(fhandler_base::get_fd): Ditto.
	(fhandler_socket::set_fd): Ditto.
	(fhandler_socket::get_fd): Ditto.
	* fhandler_socket.cc (fhandler_socket::read): Call cygwin_recv instead
	of native Winsock recv.
	(fhandler_socket::write): Call cygwin_send instead of native Winsock
	send.
	* net.cc (fdsock): Store fd in fhandler_socket.

2002-02-07  Corinna Vinschen  <corinna@vinschen.de>

	* net.cc (cygwin_getsockname): Fix handling of NULL sun_path.

2002-01-29  Corinna Vinschen  <corinna@vinschen.de>

	* net.cc (getdomainname): Fix registry key for 9x systems, too.

2002-01-29  Corinna Vinschen  <corinna@vinschen.de>

	* net.cc (getdomainname): Fix registry key for NT systems.

2002-01-28  Christopher Faylor  <cgf@redhat.com>

	* external.cc (cygwin_internal): Initialize various internal settings
	if required to allow use of some things from user loaded DLL.
	(CW_STRACE_ON): Add new feature.
	(CW_CYGWIN_PID_TO_WINPID): Ditto.
	* pinfo.cc (set_myself): Call "strace.hello" to initiate possible
	strace session.
	(pinfo::init): Guard against dereferencing uninitialized myself.
	* sigproc.cc (wait_sig): Call strace.hello() when __SIGTRACE "signal"
	received.
	* strace.cc (strace::hello): New method.
	* wincap.cc (wincapc::init): Avoid initializing if already initialized.
	* wincap.h (wincapc::wincapc): New method.
	* include/sys/cygwin.h: Add new CW_ enums.  Kludge typedefs of
	{g,u}id_t if required.
	* strace.h (strace::hello): Declare new method.

2002-01-28  Earnie Boyd  <earnie@users.sf.net>

	* include/sys/strace.h (_STRACE_ON): Define.
	(_STRACE_OFF): Ditto.

2002-01-24  Christopher Faylor  <cgf@redhat.com>

	* speclib: Ensure that temporary def file is removed.

2002-01-23  Christopher Faylor  <cgf@redhat.com>

	* speclib: Use rm -f to remove temp file just to quiet any potential
	warnings.

2002-01-23  Corinna Vinschen  <corinna@vinschen.de>

	* security.cc (create_token): Use sec_user() to create
	SECURITY_ATTRIBUTES structure for primary token.  Use
	MAXIMUM_ALLOWED access rights instead of TOKEN_ALL_ACCESS.

2002-01-23  Corinna Vinschen  <corinna@vinschen.de>

	* path.cc (symlink): Fix check for already existing file.

2002-01-21  Christopher Faylor  <cgf@redhat.com>

	* cygmagic: Suppress error output when figuring out if sum takes an
	option.

2002-01-21  Christopher Faylor  <cgf@redhat.com>

	* cygmagic: Attempt to figure out if sum takes an option.

2002-01-21  DJ Delorie  <dj@redhat.com>

	* Makefile.in (libpthread.a): Pass the assembler also.
	(libm.a): Ditto.
	(libc.a): Ditto.
	* speclib: Specify the assembler to dlltool.

2002-01-21  Christopher Faylor  <cgf@redhat.com>

	* include/cygwin/version.h: Bump DLL minor number.

2002-01-21  Corinna Vinschen  <corinna@vinschen.de>

	* grp.cc (getgrgid): Don't return default gid entry when ntsec is on.
	* syscalls.cc (setegid): Don't set primary group in process token.

2002-01-21  Christopher Faylor  <cgf@redhat.com>

	* speclib: Don't use /dev/null as DLL name.  Just default to what's
	already in .def file.

2002-01-21  Christopher Faylor  <cgf@redhat.com>

	* exceptions.cc (sig_handle): Remove last vestiges of SA_NOCLDSTOP code
	which caused SIGCHLD to be ignored.

2002-01-20  Christopher Faylor  <cgf@redhat.com>

	* include/cygwin/version.h: Bump DLL minor number.

2002-01-20  Christopher Faylor  <cgf@redhat.com>

	* syscalls.cc (regfree): Make dll_export.

2002-01-20  Christopher Faylor  <cgf@redhat.com>

	* exceptions.cc (ctrl_c_handler): Convert windows pid to cygwin pid
	when detecting if we should actually handle CTRL-C.

2002-01-19  Christopher Faylor  <cgf@redhat.com>

	* Makefile.in (new-cygwin1.dll): Revert previous change.  libsupc++.a
	is only available in libstdc++-v3.

2002-01-19  Christopher Faylor  <cgf@redhat.com>

	* exceptions.cc (sig_handle_tty_stop): Don't send SIGCHLD if parent
	doesn't want it.
	(sig_handle): Don't check for SA_NOCLDSTOP here.  We don't have enough
	information.

2002-01-19  Christopher Faylor  <cgf@redhat.com>

	* include/cygwin/version.h: Bump DLL minor number.

2002-01-19  Christopher Faylor  <cgf@redhat.com>

	* Makefile.in (new-cygwin1.dll): Just use -lsupc++ for link.
	* sigproc.cc (proc_exists): Change existence criteria.
	* sync.h (new_muto): Add volatile to definition to avoid gcc
	optimization problems.

2002-01-19  Corinna Vinschen  <corinna@vinschen.de>

	* include/cygwin/version.h: Bump API minor version to 51.

2002-01-19  Mark Bradshaw  <bradshaw@staff.crosswalk.com>

	* cygwin.din: Add recvmsg and sendmsg.
	* net.cc: Add cygwin_recvmsg and cygwin_sendmsg.
	* /usr/include/sys/socket.h: Add recvmsg and sendmsg.

2002-01-19  Corinna Vinschen  <corinna@vinschen.de>

	* security.cc (create_token): Close processes token handle as soon
	as it's not used anymore.

2002-01-17  Corinna Vinschen  <corinna@vinschen.de>

	* Makefile.in: Add fnmatch.o to DLL_OFILES.
	* cygwin.din: Add fnmatch export symbol.
	* fnmatch.c: New file.
	* include/fnmatch.h: Ditto.
	* include/cygwin/version.h: Bump API minor version to 50.

2002-01-15  Corinna Vinschen  <corinna@vinschen.de>

	* path.cc (fchdir): Call chdir with full windows path.

2002-01-14  Corinna Vinschen  <corinna@vinschen.de>

	* dir.cc: Use INVALID_FILE_ATTRIBUTES instead of "(DWORD) -1"
	for file attributes throughout.
	* fhandler.cc: Ditto.
	* fhandler_disk_file.cc: Ditto.
	* path.cc: Ditto.
	* path.h: Ditto.
	* syscalls.cc: Ditto.
	* times.cc (utimes): Use path_conv::isdir() instead of explicit
	GetFileAttributes() call.

2002-01-13  Christopher Faylor  <cgf@redhat.com>

	* dcrt0.cc (multiple_cygwin_problem): Clarify logic and make
	CYGWIN_MISMATCH_OK more powerful.

2002-01-10  Christopher Faylor  <cgf@redhat.com>

	* exceptions.cc (sig_handle): Accept a second argument indicating
	whether the signal came from this process or not.
	* sigproc.h: Reflect sig_handle arg change.
	* signal.cc (kill_pgrp): Add sigframe info.
	(abort): New function.  Eliminates newlib function of same name.
	* sigproc.cc (wait_sig): Pass "signal from this process" value as arg
	2.

2002-01-10  Corinna Vinschen  <corinna@vinschen.de>

	* syscalls.cc (pathconf): Guard _PC_PATH_MAX branch against invalid
	file parameter.

2002-01-09  Christopher Faylor  <cgf@redhat.com>
	    Robert Collins  <rbtcollins@hotmail.com>

	* exceptions.cc (early_stuff_init): Rename from misnamed
	set_console_handler.
	(ctrl_c_handler): Attempt to work around potential signal duplication
	during process startup.
	(sig_handle): Ignore SIGINT when we're just an "exec stub".
	* spawn.cc (spawn_guts): Store pid of spawned process in global for use
	by ctrl_c_handler.
	* dcrt0.cc (dll_crt0_1): Call renamed initialization function.
	* winsup.h: Reflect function name change.

2002-01-08  Corinna Vinschen  <corinna@vinschen.de>

	* net.cc (cygwin_accept): Set sun_path for newly connected socket.

2002-01-07  Ralf Habacker  <Ralf.Habacker@freenet.de>

	* Makefile.in: Add uninstall target.

2002-01-07  Christopher Faylor  <cgf@redhat.com>

	* sigproc.cc (getsem): Clean up debugging output.

2002-01-07  Christopher Faylor  <cgf@redhat.com>

	* sigproc.cc (getsem): Set errno when unable to create own semaphore.
	Reorganize to make clearer that error should only come from initial
	creation of process semaphore.

2002-01-06  Christopher Faylor  <cgf@redhat.com>

	* dtable.cc (dtable::init_std_file_from_handle): Add some defensive
	code to invalid handle case.

2002-01-06  Corinna Vinschen  <corinna@vinschen.de>

	* ioctl.cc (ioctl): Make third argument optional.
	* include/sys/ioctl.h: Ditto in declaration.
	* dtable.cc (dtable::init_std_file_from_handle): Revert previous
	bogus patch.
	* window.cc (WndProc): Raise SIGURG instead of SIGIO in case of FD_OOB
	message.

2002-01-05  Christopher Faylor  <cgf@redhat.com>

	* dir.cc (opendir): Guarantee release of alloced fhandler structure on
	error.

2002-01-05  Corinna Vinschen  <corinna@vinschen.de>

	* exceptions.cc (sig_handle): Set default action for SIGURG to SIG_IGN.

2002-01-05  Corinna Vinschen  <corinna@vinschen.de>

	* dtable.cc (dtable::init_std_file_from_handle): Don't treat NULL
	handle as errorneous.

2002-01-04  Christopher Faylor  <cgf@redhat.com>

	* cygmagic: Change logic for equality test.

2002-01-04  Christopher Faylor  <cgf@redhat.com>

	* dir.cc (opendir): Don't attempt to call sub-opendir if ENOENT.

2002-01-04  Corinna Vinschen  <corinna@vinschen.de>

	* net.cc: Replace usage of AF_UNIX by Posix compliant AF_LOCAL
	throughout.
	(socketpair): Explicitly allow SOCK_STREAM and SOCK_DGRAM socket types
	in families AF_UNIX and AF_LOCAL.  Explicitly allow PF_UNSPEC, PF_LOCAL
	and PF_INET protocols.  Return error otherwise.  Implement datagram
	socketpairs.

2002-01-01  Christopher Faylor  <cgf@redhat.com>

	* speclib: Remove temp files automatically.

2002-01-01  Corinna Vinschen  <corinna@vinschen.de>
	* fhandler.h (fhandler_socket::sun_path): New private member.
	(fhandler_socket::set_sun_path): New method.
	(fhandler_socket::get_sun_path): Ditto.
	* fhandler_socket.cc (fhandler_socket::fhandler_socket): Initialize
	sun_path to NULL.
	(fhandler_socket::~fhandler_socket): Free sun_path if needed.
	(fhandler_socket::set_sun_path): New method.
	* net.cc (cygwin_bind): Set sun_path to path of local socket file.
	(cygwin_getsockname): Add code to return correct sockaddr for unix
	domain sockets.