6656 lines
		
	
	
		
			253 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			6656 lines
		
	
	
		
			253 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 2002-12-30  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* exceptions.cc (events_init): Display name of mutex on failure.
 | |
| 
 | |
| 2002-12-30  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* windows.cc (setitimer): Return ENOSYS on invalid argument.
 | |
| 
 | |
| 2002-12-28  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler_termios.cc (fhandler_termios::line_edit): Perform echo
 | |
| 	before input is accepted or suffer a "race".
 | |
| 
 | |
| 2002-12-27  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler.h (fhandler_tty_master::set_winsize): Declare new function.
 | |
| 	* fhandler_console.cc (fhandler_console::send_winch_maybe): If
 | |
| 	appropriate, call tty master function to handle screen size change.
 | |
| 	* fhandler_tty.cc (fhandler_tty_master::set_winsize): New function.
 | |
| 	(fhandler_tty_master::init): Call set_winsize to set initial screen
 | |
| 	size.
 | |
| 
 | |
| 2002-12-26  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler_tty.cc (fhandler_tty_master::init): Set initial size of tty
 | |
| 	to that of console in which tty is operating.
 | |
| 	(process_input): Semi-revert previous change.  Need to just use current
 | |
| 	terminfo settings since this function is running in a thread, blocked
 | |
| 	when the terminfo changes.
 | |
| 
 | |
| 2002-12-26  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler.h (fhandler_termios::line_edit): Replace third argument with
 | |
| 	passed-in termios struct.
 | |
| 	* fhandler_console.cc (fhandler_console::read): Prior to loop, make a
 | |
| 	copy of current termios for passing to line_edit prior so that all
 | |
| 	characters are processed consistently.
 | |
| 	* fhandler_tty.cc (fhandler_pty_master::write): Ditto.
 | |
| 	(process_input): Make a copy of curent termios prior to read for use in
 | |
| 	subsequent line_edit.
 | |
| 	* fhandler_termios.cc (fhandler_termios::line_edit): Replace third
 | |
| 	parameter with passed-in termios struct and use it throughout rather
 | |
| 	than the data from the current fhandler_termios class.
 | |
| 
 | |
| 2002-12-25  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* include/cygwin/version.h: Bump DLL minor number.
 | |
| 
 | |
| 2002-12-25  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* exceptions.cc (events_init): Initialize critical section to control
 | |
| 	exiting via signal.
 | |
| 	(signal_exit): Enter critical section early to avoid exit races with
 | |
| 	main thread.
 | |
| 	* dcrt0.cc (do_exit): Use exit_lock critical section to avoid races.
 | |
| 
 | |
| 2002-12-25  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygthread.cc (cygthread::detach): Set errno with set_sig_errno so
 | |
| 	that EINTR is properly restored after signal.
 | |
| 
 | |
| 2002-12-21  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* Makefile.in: Default fhandler objects to -fomit-frame-pointer.
 | |
| 	Eliminate redundant CFLAGS settings.
 | |
| 
 | |
| 2002-12-20  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler.h (line_edit_status): Reorganize so that tests for error
 | |
| 	condition can be < or >.
 | |
| 	* fhandler_tty.cc (fhandler_pty_master::write): Don't return after
 | |
| 	sending a signal.
 | |
| 
 | |
| 	* fhandler_termios.cc (fhandler_termios::line_edit): Trivial change to
 | |
| 	use built-in bool types.
 | |
| 
 | |
| 2002-12-19  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* localtime.cc (tzsetwall): Set lcl_is_set and lcl_TZname
 | |
| 	in the Cygwin specific part of the routine.
 | |
| 
 | |
| 2002-12-19  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* fhandler.cc (fhandler_base::open): Use "flags" rather than "mode"
 | |
| 	in Win9X directory code.
 | |
| 
 | |
| 2002-12-19  Steve Osborn  <bub@io.com>
 | |
| 
 | |
| 	* fhandler.h (line_edit_status): Add a new element.
 | |
| 	* fhandler_termios.cc (fhandler_termios::line_edit): After
 | |
| 	accept_input, handle both potential error condition and pipe full
 | |
| 	conditions.
 | |
| 	* fhandler_tty.cc (fhandler_pty_master::accept_input): Return -1 on
 | |
| 	error.
 | |
| 	(fhandler_pty_master::write): Handle pipe full condition.
 | |
| 
 | |
| 2002-12-16  Steve Osborn  <bub@io.com>
 | |
| 	    Christopher Faylor <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler_termios.cc (fhandler_termios::line_edit): Return
 | |
| 	line_edit_error and remove last char from readahead buffer if
 | |
| 	accept_input() fails.
 | |
| 	* fhandler_tty.cc (fhandler_pty_master::accept_input): Return 0 and
 | |
| 	restore readahead buffer when tty slave pipe is full.
 | |
| 
 | |
| 2002-12-16  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* pinfo.cc (_pinfo::cmdline): Allocate sufficient space for myself
 | |
| 	command line args.
 | |
| 
 | |
| 2002-12-14  Steve Osborn  <bub@io.com>
 | |
| 
 | |
| 	* fhandler_termios.cc (fhandler_termios::line_edit): Call
 | |
| 	accept_input() in character processing loop.  Set return value
 | |
| 	independently of input_done.
 | |
| 
 | |
| 2002-12-14  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler.cc (fhandler_base::read): Signal event, if necessary, and
 | |
| 	raw_read hasn't done so.
 | |
| 
 | |
| 2002-12-14  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler.cc (fhandler_base::raw_read): Reset priorities to minimize
 | |
| 	window where thread termination may cause data loss.
 | |
| 	(fhandler_base::read): Always return at end of function.  Just set len
 | |
| 	to copied_chars when len is zero.  Return immediately after raw_read if
 | |
| 	len <= 0.  Remove in_len setting and just check end instead.  Fix CRLF
 | |
| 	handling at end of buffer.
 | |
| 
 | |
| 2002-12-14  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* dcrt0.cc (dll_crt0_1): Call well known SID initializer function.
 | |
| 	* security.h (cygsid::init): Declare new static method.
 | |
| 	* sec_helper.cc (cygsid::init): New method for initializing well
 | |
| 	known SIDs.
 | |
| 
 | |
| 2002-12-14  Pierre Humblet  <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* security.h: Declare well_known_creator_group_sid.
 | |
| 	* sec_helper.cc: Define and initialize well_known_creator_group_sid.
 | |
| 
 | |
| 2002-12-14  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* netdb.cc: Remove strtok_r comment.
 | |
| 
 | |
| 2002-12-14  Pierre Humblet  <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* security.cc (get_user_local_groups): Use LookupAccountSid to find the
 | |
| 	local equivalent of BUILTIN.
 | |
| 
 | |
| 2002-12-14  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* pipe.cc (make_pipe): Set fork fixup flag for read pipe.
 | |
| 
 | |
| 2002-12-14  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* winbase.h: Turn on inline versions of Interlocked* by default.
 | |
| 
 | |
| 2002-12-14  Gary R. Van Sickle <g.r.vansickle@worldnet.att.net>
 | |
| 
 | |
| 	* winbase.h: Fixup inline asm functions.  Add ilockcmpexch.
 | |
| 
 | |
| 2002-12-13  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	Throughout, change fhandler_*::read and fhandler_*::raw_read to void
 | |
| 	functions whose second arguments are both the length and the return
 | |
| 	value.
 | |
| 	* fhandler.cc (fhandler_base::read): Rework slightly to use second
 | |
| 	argument as input/output.  Tweak CRLF stuff.
 | |
| 	(fhandler_base::readv): Accommodate fhandler_*::read changes.
 | |
| 	* cygthread.h (cygthread::detach): Declare as taking optional handle
 | |
| 	argument.
 | |
| 	(cygthread::detach): When given a handle argument, wait for the handle
 | |
| 	to be signalled before waiting for thread to detach.  Return true when
 | |
| 	signal detected.
 | |
| 
 | |
| 2002-12-12  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* Makefile.in: Add MINGW_LDFLAGS when linking cygrun.exe.
 | |
| 
 | |
| 2002-12-10  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygthread.h (cygthread::stack_ptr): New element.
 | |
| 	(cygthread::detach): Accept a "wait_for_signal" argument.
 | |
| 	(cygthread::terminate_thread): New function.
 | |
| 	* cygthread.cc (cygthread::stub): Set stack pointer argument.
 | |
| 	(cygthread::terminate_thread): New function.  Forcibly terminate
 | |
| 	thread.
 | |
| 	(cygthread::detach): Optionally wait for signals and kill thread when
 | |
| 	signal arrives.
 | |
| 	* exceptions.cc (signal_exit): Set signal_arrived prior to exiting to
 | |
| 	wake up anything blocking on signals.
 | |
| 	* fhandler.h (fhandler_base::set_r_no_interrupt): Change to accept bool
 | |
| 	argument.
 | |
| 	(fhandler_pipe::ready_for_read): Declare.
 | |
| 	* pipe.cc (pipeargs): New structure.
 | |
| 	(read_pipe): New thread stub wrapper for normal pipe read.
 | |
| 	(fhandler_pipe::read): Modify to call reader in a cygthread,
 | |
| 	terminating on signal, as appropriate.
 | |
| 	* select.cc (fhandler_pipe::ready_for_read): Define new function.
 | |
| 
 | |
| 2002-12-10  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* net.cc (free_protoent_ptr): Add missing free() for base structure.
 | |
| 	(free_servent_pt): Ditto.
 | |
| 	(free_hostent_pt): Ditto.
 | |
| 
 | |
| 2002-12-10 Craig McGeachie <slapdau@yahoo.com.au>
 | |
| 
 | |
| 	* netdb.cc (parse_alias_list): Change strtok calls to strtok_r.
 | |
| 	(parse_services_line): Ditto.
 | |
| 	(parse_protocol_line): Ditto.
 | |
| 
 | |
| 2002-12-10  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* pwdgrp.h (pwdgrp_check::pwdgrp_state): Replace by
 | |
| 	pwdgrp_check::isinitializing ().
 | |
| 	(pwdgrp_check::isinitializing): Create.
 | |
| 	* passwd.cc (grab_int): Change type to unsigned, use strtoul and set
 | |
| 	the pointer content to 0 if the field is invalid.
 | |
| 	(parse_pwd): Move validity test after getting pw_gid.
 | |
| 	(read_etc_passwd): Replace "passwd_state <= " by
 | |
| 	passwd_state::isinitializing ().
 | |
| 	(internal_getpwuid): Ditto.
 | |
| 	(internal_getpwnam): Ditto.
 | |
| 	(getpwent): Ditto.
 | |
| 	(getpass): Ditto.
 | |
| 	* grp.cc (parse_grp): Use strtoul for gr_gid and verify the validity.
 | |
| 	(read_etc_group): Replace "group_state <= " by
 | |
| 	group_state::isinitializing ().
 | |
| 	(internal_getgrgid): Ditto.
 | |
| 	(getgrent32): Ditto.
 | |
| 	(internal_getgrent): Ditto.
 | |
| 
 | |
| 2002-12-10  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* security.h: Move declarations of internal_getgrent,
 | |
| 	internal_getpwsid and internal_getgrsid to pwdgrp.h.
 | |
| 	* pwdgrp.h: Declare internal_getpwsid, internal_getpwnam,
 | |
| 	internal_getpwuid, internal_getgrsid, internal_getgrgid,
 | |
| 	internal_getgrnam, internal_getgrent and internal_getgroups.
 | |
| 	Delete "emulated" from enum pwdgrp_state.
 | |
| 	(pwdgrp_check::isuninitialized): Create.
 | |
| 	(pwdgrp_check::pwdgrp_state): Change state to initializing
 | |
| 	rather than to uninitialized.
 | |
| 	(pwdgrp_read::gets): Remove trailing CRs.
 | |
| 	* passwd.cc (grab_string): Don't look for NLs.
 | |
| 	(grab_int): Ditto.
 | |
| 	(parse_pwd): Don't look for CRs. Return 0 if entry is too short.
 | |
| 	(search_for): Delete.
 | |
| 	(read_etc_passwd): Simplify tests to actually read the file.
 | |
| 	Set state to loaded before making internal_getpwXX calls.
 | |
| 	Replace search_for calls by equivalent internal_pwgetXX calls.
 | |
| 	(internal_getpwsid): Use passwd_state.isuninitialized to decide
 | |
| 	to call read_etc_passwd.
 | |
| 	(internal_getpwuid): Create.
 | |
| 	(internal_getpwnam): Create.
 | |
| 	(getpwuid32): Simply call internal_getpwuid.
 | |
| 	(getpwuid_r32): Call internal_getpwuid.
 | |
| 	(getpwnam): Simply call internal_getpwnam.
 | |
| 	(getpwnam_r): Call internal_getpwnam.
 | |
| 	* grp.cc (parse_grp): Don't look for CRs. Adjust blank space.
 | |
| 	(add_grp_line): Adjust blank space.
 | |
| 	(class group_lock): Ditto.
 | |
| 	(read_etc_group): Simplify tests to actually read the file.
 | |
| 	Set state to loaded before making internal_getgrXX calls.
 | |
| 	Replace getgrXX calls by equivalent internal calls.
 | |
| 	(internal_getgrsid): Use group_state.isuninitialized to decide
 | |
| 	to call read_etc_group.
 | |
| 	(internal_getgrgid): Create.
 | |
| 	(internal_getgrnam): Create.
 | |
| 	(getgroups32): Simply call internal_getgrgid.
 | |
| 	(getgrnam32): Simply call internal_getgrnam.
 | |
| 	(internal_getgrent): Call group_state.isuninitialized.
 | |
| 	(internal_getgroups): Create from the former getgroups32, using
 | |
| 	two of the four arguments. Set gid to myself->gid and username
 | |
| 	to cygheap->user.name ().
 | |
| 	(getgroups32): Simply call internal_getgroup.
 | |
| 	(getgroups): Call internal_getgroup instead of getgroups32.
 | |
| 	(setgroups32): Call internal versions of get{pw,gr}XX.
 | |
| 	* sec_helper.cc: Include pwdgrp.h.
 | |
| 	(is_grp_member): Call internal versions of get{pw,gr}XX.
 | |
| 	* security.cc: Include pwdgrp.h.
 | |
| 	(alloc_sd): Call internal versions of get{pw,gr}XX.
 | |
| 	* syscalls.cc: Include pwdgrp.h.
 | |
| 	(seteuid32): Call internal versions of get{pw,gr}XX.
 | |
| 	(setegid32): Ditto.
 | |
| 	* uinfo.cc: Include pwdgrp.h.
 | |
| 	(internal_getlogin): Call internal versions of get{pw,gr}XX.
 | |
| 	(cygheap_user::ontherange): Ditto.
 | |
| 	* sec_acl.cc: Include pwdgrp.h.
 | |
| 	(setacl): Call internal versions of get{pw,gr}XX.
 | |
| 	(acl_access): Ditto and simplify logic.
 | |
| 	(aclfromtext): Ditto.
 | |
| 
 | |
| 2002-12-09  2002-12-02  Egor Duda <deo@logos-m.ru>
 | |
| 
 | |
| 	* lib/pseudo-reloc.c: New file.
 | |
| 	* lib/_cygwin_crt0_common.cc: Perform pseudo-relocs during
 | |
| 	initialization of cygwin binary (.exe or .dll).
 | |
| 
 | |
| 2002-12-06  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygwin.din: Reflect name change from strtodf to strtof.  Export
 | |
| 	strtof.
 | |
| 	* include/cygwin/version.h: Bump API minor number.
 | |
| 
 | |
| 2002-12-04  Steve Osborn  <bub@io.com>
 | |
| 
 | |
| 	* fhandler.h (fhandler_termios::line_edit): Change return from an int
 | |
| 	to an enum to allow the function to return an error.
 | |
| 	* fhandler_console.cc (fhandler_console::read): Update the line_edit
 | |
| 	call to use the new enum.
 | |
| 	* fhandler_termios.cc (fhandler_termios::line_edit): Change return from
 | |
| 	an int to an enum to allow the function to return an error.  Put
 | |
| 	put_readahead call before doecho for future patch.
 | |
| 	* fhandler_tty.cc (fhandler_pty_master::write): Change to call
 | |
| 	line_edit one character at a time, and stop if an error occurs.
 | |
| 
 | |
| 2002-12-04  Craig McGeachie  <slapdau@yahoo.com.au>
 | |
| 
 | |
| 	* netdb.cc: New file.
 | |
| 	* Makeile.in (DLL_OFILES): Add reference to the new netdb.cc file.
 | |
| 	* cygwin.din : Add new aliased exports for service and protocol
 | |
| 	enumerations in netdb.cc.
 | |
| 
 | |
| 2002-12-04  Thomas Pfaff  <tpfaff@gmx.net>
 | |
| 
 | |
| 	* cxx.cc: New file. Implement new, new[], delete and delete[]
 | |
| 	operators and  __cxa_pure_virtual if compiled by gcc >=3.
 | |
| 	* Makefile.in (DLL_OFILES): Add cxx.o.
 | |
| 	Remove libstdc++.a from cygwin1.dll link step.
 | |
| 
 | |
| 2002-11-29  Steve Osborn  <bub@io.com>
 | |
| 
 | |
| 	* fhandler_tty.cc (fhandler_pty_master::accept_input): Move
 | |
| 	read_retval assignment to prevent race condition.  Remove read_retval
 | |
| 	from return statement.
 | |
| 
 | |
| 2002-11-29  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* pinfo.h (winpids::set): Renamed from init.
 | |
| 	(winpids::init): New declaration.
 | |
| 	(winpids::cs): Ditto.
 | |
| 	(winpids::winpids): Use set rather than init.
 | |
| 	* external.cc (fillout_pinfo): Ditto.
 | |
| 	* dcrt0.cc (dll_crt0_1): Call winpids::init.
 | |
| 	* pinfo.cc (winpids::set): Renamed from init.  Wrap calls in critical
 | |
| 	section.
 | |
| 	(winpids::init): New function.
 | |
| 	(winpids::cs): Define.
 | |
| 
 | |
| 2002-11-28  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* sigproc.cc (sig_dispatch_pending): Remove assertion.
 | |
| 
 | |
| 2002-11-27  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* include/cygwin/version.h: Bump DLL minor number.
 | |
| 
 | |
| 2002-11-27  Mikael Ylikoski  <my@post.utfors.se>
 | |
| 
 | |
| 	* fhandler_socket.cc (fhandler_socket::sendto): Fix potential
 | |
| 	unitialized value return.
 | |
| 
 | |
| 2002-11-27  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygwin.din: Export pthread_getsequence_np.
 | |
| 	* include/cygwin/version.h: Bump API minor version.
 | |
| 
 | |
| 2002-11-26  Jason Tishler  <jason@tishler.net>
 | |
| 
 | |
| 	* cygwin.din: Export nl_langinfo().
 | |
| 	* include/cygwin/version.h: Bump API minor version.
 | |
| 
 | |
| 2002-11-26  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler_tty.cc (fhandler_pty_master::accept_input): Just use a
 | |
| 	normal Sleep or suffer amazing pauses when other tty apps are running.
 | |
| 	(fhandler_pty_master::process_slave_output): Ditto.
 | |
| 
 | |
| 2002-11-25  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* passwd.cc (read_etc_passwd): Never add an entry when starting
 | |
| 	on Win95/98/ME if a default entry is present.
 | |
| 	* uinfo.cc (internal_getlogin): Look for the default uid if needed.
 | |
| 	Always call user.set_name ().
 | |
| 
 | |
| 2002-11-25  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* sec_acl.cc (getacl): Set errno to ENOSPC if command is GETACL and
 | |
| 	nentries is less than the number of entries in the file's ACL.
 | |
| 
 | |
| 2002-11-24  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* sec_acl.cc: Fix some formatting.  Only set and check `other' bits in
 | |
| 	a_perm throughout.  Use ILLEGAL_GID id for all entries having no id.
 | |
| 	(setacl): Fix inheritance condition.
 | |
| 	(getacl): Set all permission bits in CLASS_OBJ and DEF_CLASS_OBJ
 | |
| 	entries.  Remove DENY bits before returning to calling function.
 | |
| 	(acltomode): Fix usage of searchace().  If available, use CLASS_OBJ
 | |
| 	to mask GROUP_OBJ permissions.
 | |
| 	(aclfrommode): Fix usage of searchace().  If available, set CLASS_OBJ
 | |
| 	permissions to same value as GROUP_OBJ permissions.
 | |
| 
 | |
| 2002-11-24  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* sec_acl.cc (getace): Fix the behavior when allow and
 | |
| 	deny entries are present in arbitrary order.
 | |
| 	(getacl): Report the actual number of entries when
 | |
| 	aclbufp is NULL, even if nentries is zero. Fix the mask
 | |
| 	reporting, handle the case where the owner and group sids
 | |
| 	are equal and streamline the code.
 | |
| 	(acl_worker): Take allow_ntsec into account.
 | |
| 
 | |
| 2002-11-05  Thomas Pfaff  <tpfaff@gmx.net>
 | |
| 
 | |
| 	* dcrt0.cc (dll_crt0_1): Add call to pthread::initMainThread to
 | |
| 	initialize mainthread when it is safe to call new.
 | |
| 	* init.cc (dll_entry): Change call to store reents in tls key.
 | |
| 	* thread.cc (_reent_clib) : Change call to get reents from tls
 | |
| 	key.
 | |
| 	(_reent_winsup): Ditto.
 | |
| 	(MTinterface::Init): Key handling changed. Remove initialization
 | |
| 	of member variables.
 | |
| 	(MTinterface::fixup_after_fork): Reinitialize mainthread object
 | |
| 	after fork. Reset threadount to 1.
 | |
| 	(pthread::initMainThread): Create mainthread object dynamically.
 | |
| 	and initialize with valid handles.
 | |
| 	(pthread::self): Remove calls to create thread objects.
 | |
| 	(pthread::setTlsSelfPointer): Change call to store thread self
 | |
| 	handle in tls key.
 | |
| 	(pthread::getTlsSelfPointer): New static method.
 | |
| 	(pthread::exit): Remove setTlsSelfPointer call.
 | |
| 	(pthread::initCurrentThread): New method.
 | |
| 	(pthread::thread_init_wrapper): Change call to store thread self
 | |
| 	handle in tls key.
 | |
| 	(pthread::join): Check for a valid joiner.
 | |
| 	(pthreadNull::pthreadNull): Mark Null object as detached.
 | |
| 	(pthreadNull::exit): Terminate thread via ExitThread.
 | |
| 	* thread.h (pthread::initMainThread): Change parameter in function
 | |
| 	call.
 | |
| 	(pthread::getTlsSelfPointer): New static method.
 | |
| 	(pthread::initCurrentThread): New method.
 | |
| 	(MTinterface::reent_key): Remove.
 | |
| 	(MTinterface::thread_self_dwTlsIndex): Ditto..
 | |
| 	(MTinterface::indexallocated): Ditto.
 | |
| 	(MTinterface::mainthread): Ditto.
 | |
| 	(MTinterface::reent_key): New member.
 | |
| 	(MTinterface::thread_self_key): Ditto.
 | |
| 	(MTinterface::MTinterface): Initialize all members.
 | |
| 
 | |
| 2002-11-23  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* wait.cc (wait4): Force pending signal delivery before waiting for
 | |
| 	process completion.
 | |
| 
 | |
| 2002-11-23  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* include/cygwin/version.h: Bump DLL minor number.
 | |
| 
 | |
| 2002-11-22  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* exceptions.cc (handle_sigsuspend): Force pending signal delivery
 | |
| 	before waiting for signals to happen.
 | |
| 	* signal.cc (sleep): Force pending signal delivery before sleeping.
 | |
| 	(usleep): Ditto.
 | |
| 	(signal): Force pending signal delivery before manipulating signal
 | |
| 	stuff.
 | |
| 	(sigprocmask): Ditto.
 | |
| 	(kill_worker): Ditto.
 | |
| 	(abort): Ditto.
 | |
| 	(sigaction): Ditto.
 | |
| 	* syscalls.cc (readv): Force pending signal delivery before I/O.
 | |
| 	(writev): Ditto.
 | |
| 	(open): Ditto.
 | |
| 	* net.cc: Ditto, throughout.
 | |
| 	* sigproc.cc (sig_dispatch_pending): Deliver any pending signals prior
 | |
| 	to returning.
 | |
| 
 | |
| 	* tty.cc (tty::make_pipes): Increase pipe buffer size.
 | |
| 
 | |
| 2002-11-22  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* include/cygwin/version.h: Fix comment.
 | |
| 
 | |
| 2002-11-21  Igor Pechtchanski  <pechtcha@cs.nyu.edu>
 | |
| 
 | |
| 	* external.cc (cygwin_internal): Fix va_arg references.
 | |
| 
 | |
| 2002-11-21  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* exceptions.cc (sigthread::get_winapi_lock): Just do standard 'give up
 | |
| 	timeslice' wait.
 | |
| 	(setup_handler): Revamp YA to attempt to deliver signal multiple times
 | |
| 	on failure rather than punting to wait_sig.
 | |
| 	* miscfuncs.cc (low_priority_sleep): Accept INFINITE sleep to mean
 | |
| 	"don't reset the priority after setting it to idle".  Return previous
 | |
| 	priority.
 | |
| 	* winsup.h (SLEEP_0_STAY_LOW): Define.
 | |
| 	(low_priority_sleep): Return an int.
 | |
| 	* sigproc.h: Define WAIT_SIG_PRIORITY here.
 | |
| 	* sigproc.cc: Remove WAIT_SIG_PRIORITY definition.
 | |
| 
 | |
| 2002-11-20  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* security.h: Declare internal_getpwsid and internal_getgrsid.
 | |
| 	Undeclare internal_getpwent.  Define DEFAULT_UID_NT.  Change
 | |
| 	DEFAULT_GID.
 | |
| 	* passwd.cc (internal_getpwsid): New function.
 | |
| 	(internal_getpwent): Suppress.
 | |
| 	(read_etc_passwd): Make static.  Rewrite the code for the completion
 | |
| 	line.  Set curr_lines to 0.
 | |
| 	(parse_pwd): Change type to static int.  Return 0 for short lines.
 | |
| 	(add_pwd_line): Pay attention to the value of parse_pwd.
 | |
| 	(search_for): Do not look for nor return the DEFAULT_UID.
 | |
| 	* grp.cc (read_etc_group): Make static.  Free gr_mem and set
 | |
| 	curr_lines to 0.  Always call add_pwd_line.  Rewrite the code for the
 | |
| 	completion line.
 | |
| 	(internal_getgrsid): New function.
 | |
| 	(parse_grp): If grp.gr_mem is empty, set it to &null_ptr.
 | |
| 	Never NULL gr_passwd.
 | |
| 	(getgrgid32): Only return the default if ntsec is off and the gid is
 | |
| 	ILLEGAL_GID.
 | |
| 	* sec_helper.cc (cygsid::get_id): Use getpwsid and getgrsid.
 | |
| 	(cygsid_getfrompw): Clean up last line.
 | |
| 	(cygsid_getfromgr): Ditto.
 | |
| 	(is_grp_member): Use getpwuid32 and getgrgid32.
 | |
| 	* uinfo.cc (internal_getlogin): Set DEFAULT_GID at start.
 | |
| 	Use getpwsid. Move the read of /etc/group after the second access
 | |
| 	to /etc/passwd.  Change some debug_printf.
 | |
| 
 | |
| 2002-11-20  Steven O'Brien  <steven.obrien2@ntlworld.com>
 | |
| 
 | |
| 	* poll.cc (poll): ...but set POLLIN instead.
 | |
| 
 | |
| 2002-11-20  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* security.cc (get_attribute_from_acl): Always test "anti",
 | |
| 	just in case an access_denied ACE follows an access_allowed.
 | |
| 	Handle the case owner_sid == group_sid, with a FIXME.
 | |
| 	Remove unnecessary tests for non-NULL PSIDs.
 | |
| 	(alloc_sd): Use existing owner and group sids if {ug}id == -1.
 | |
| 	Handle case where owner_sid == group_sid.
 | |
| 	Do not call is_grp_member. Try to preserve canonical ACE order.
 | |
| 	Remove unnecessary tests for non-NULL PSIDs. Reorganize
 | |
| 	debug_printf's.
 | |
| 	(get_initgroups_sidlist): Put well_known_system_sid on left
 | |
| 	side of ==.
 | |
| 	(add_access_denied_ace): Only call GetAce if inherit != 0.
 | |
| 	(add_access_allowed_ace): Ditto. Use appropriate sizeof.
 | |
| 	* syscalls.cc (chown_worker): Pass {ug}id equal to -1 to
 | |
| 	alloc_sd, which removes the need to obtain old_{ug}id.
 | |
| 	(chmod): Remove call to get_file_attribute (), simply pass
 | |
| 	{ug}id equal to -1 to alloc_sd.
 | |
| 
 | |
| 2002-11-20  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* poll.cc (poll): Don't set POLLERR if a listening socket has a
 | |
| 	pending connect.  Don't use errno value from call to
 | |
| 	fhandler_socket::recvfrom().
 | |
| 
 | |
| 2002-11-19  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* net.cc: Sprinkle sigframes throughout.
 | |
| 
 | |
| 2002-11-16  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* tty.cc (tty::make_pipes): Make pipe buffer larger.
 | |
| 
 | |
| 2002-11-15  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* grp.cc (getgroups32): Protect against closing cygheap->user.token.
 | |
| 
 | |
| 2002-11-15  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* include/cygwin/version.h: Bump API_MINOR to accommodate below
 | |
| 	changes.
 | |
| 
 | |
| 2002-11-14  Sergey Okhapkin  <sos@prospect.com.ru>
 | |
| 
 | |
| 	* cygwin.din (siginterrupt): New export.
 | |
| 	* signal.cc (siginterrupt): New.
 | |
| 
 | |
| 2002-11-15  Sergey Okhapkin  <sos@prospect.com.ru>
 | |
| 
 | |
| 	* select.cc (peek_serial): Don't call PurgeComm() to avoid characters
 | |
| 	loss.
 | |
| 
 | |
| 2002-11-14  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* exceptions.cc (setup_handler): Add debugging output.  Set thread
 | |
| 	priority to idle if pending signals to allow other threads to get into
 | |
| 	interruptible state.
 | |
| 	* miscfuncs.cc (sys_mbstowcs): Save current thread in variable to avoid
 | |
| 	an OS call.
 | |
| 	* wait.cc (wait_sig): Reset thread priority each time through loop
 | |
| 	since the priority may have been set down to deal with pending signals.
 | |
| 
 | |
| 2002-11-14  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler_serial.cc (fhandler_serial::tcgetattr): Don't take any
 | |
| 	special action when vmin_ == 0.
 | |
| 
 | |
| 2002-11-14  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* grp.cc (getgroups32): Revert previous patch.  Use impersonation
 | |
| 	token if process is in impersonated state.
 | |
| 	* sec_helper.cc (is_grp_member): Rewrite.  Call getgroups32 only
 | |
| 	for current user.  Scan passwd and group info otherwise.
 | |
| 
 | |
| 2002-11-14  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler_console.cc (fhandler_console::write): Allow characters >=
 | |
| 	0177 to be displayed in the title bar.
 | |
| 
 | |
| 2002-11-14  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* grp.cc (getgroups32): Don't use access token of current user when
 | |
| 	retrieving group info for another user.
 | |
| 
 | |
| 2002-11-13  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* dll_init.cc (dll_list::detach): Eliminate reliance on passed in dll
 | |
| 	address.  Infer from module of caller instead.
 | |
| 	(cygwin_detach_dll): Ignore dll_index argument.
 | |
| 	* dll_init.h (dll_list::detach): Reflect argument change above.
 | |
| 
 | |
| 2002-11-13  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* ioctl.cc (ioctl): Always print ioctl results, even when it's a tty.
 | |
| 
 | |
| 2002-11-13  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* winsup.h (low_priority_sleep): Declare.
 | |
| 
 | |
| 2002-11-13  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* miscfuncs.cc (low_priority_sleep): New function.  Use throughout
 | |
| 	where code is supposed to be giving up time slice.
 | |
| 
 | |
| 	* fhandler_console.cc (fhandler_console::read): Switch button 2/3
 | |
| 	output escape sequences to be consistent with xterm.
 | |
| 
 | |
| 2002-11-12  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* syscalls.cc (chmod): Simplify conditional.
 | |
| 	* sec_helper (cygsid::getfromstr): Reorganize to remove
 | |
| 	calls to strcpy and strtok_r.
 | |
| 	(cygsid::getfromgr): Change type to __uid32_t instead of int.
 | |
| 	Keep only the allow_ntsec branch. Never call LookupAccountSid
 | |
| 	which calls PDCs, simply return -1 in case of failure.
 | |
| 	Use cygsid == instead of calling EqualSid and remove test
 | |
| 	for NULL psid.
 | |
| 	* security.h: Declare cygsid::getfromgr as __uid32_t.
 | |
| 
 | |
| 2002-11-10  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* net.cc: Run indent.
 | |
| 
 | |
| 2002-11-10  Alexander Gottwald <Alexander.Gottwald@s1999.tu-chemnitz.de>
 | |
| 
 | |
| 	* autoload.cc (GetIfEntry): Add symbol.
 | |
| 	* net.cc (get_2k_ifconf): Get the interface entries with the GetIfEntry
 | |
| 	call intead of the GetIfTable call. Clean-up multiple IP address naming.
 | |
| 
 | |
| 2002-11-09  Sergey Okhapkin  <sos@prospect.com.ru>
 | |
| 
 | |
| 	* fhandler.h (class fhandler_pipe): New ioctl() method.
 | |
| 	* pipe.cc (fhandler_pipe::ioctl): New.
 | |
| 
 | |
| 2002-11-07  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler_serial.cc (fhandler_serial::ioctl): Fix typo.
 | |
| 
 | |
| 2002-11-07  Christopher January  <chris@atomice.net>
 | |
| 
 | |
| 	* include/cygwin/fs.h: New file.
 | |
| 	* include/cygwin/hdreg.h: New file.
 | |
| 	* fhandler_floppy.cc (fhandler_floppy::ioctl): Add implementation for
 | |
| 	HDIO_GETGEO, BLKGETSIZE, BLKGETSIZE64, BLKRRPART and BLKSSZGET ioctls.
 | |
| 
 | |
| 2002-11-07  Gilles Courcoux  <Gilles.Courcoux@col.bsf.alcatel.fr>
 | |
| 
 | |
| 	* fhandler_socket.cc (fhandler_socket::ioctl): Return correct flags
 | |
| 	for loopback interface when name is given on input instead of address.
 | |
| 
 | |
| 2002-11-07  Jason Tishler  <jason@tishler.net>
 | |
| 
 | |
| 	* cygwin.din: Export fseeko() and ftello().
 | |
| 	* include/cygwin/version.h: Bump API minor version.
 | |
| 
 | |
| 2002-11-06  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler_console.cc (keytable[]): Revert previous change.  It would
 | |
| 	break too many things.
 | |
| 
 | |
| 2002-11-06  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler_console.cc (keytable[]): Redefine F1 - F5 to something a
 | |
| 	little more sensical.
 | |
| 
 | |
| 2002-11-06  Sergey Okhapkin  <sos@prospect.com.ru>
 | |
| 
 | |
| 	* syscalls.cc (getutid): Use UT_IDLEN where appropriate.
 | |
| 
 | |
| 2002-11-06  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* include/cygwin/version.h: Bump API minor number for below export.
 | |
| 
 | |
| 2002-11-06  Sergey Okhapkin  <sos@prospect.com.ru>
 | |
| 
 | |
| 	* cygwin.din (pututline): New exported function.
 | |
| 	* syscalls.cc (login): Use pututiline().
 | |
| 	(setutent): Open utmp as read/write.
 | |
| 	(endutent): Check if utmp file is open.
 | |
| 	(utmpname): call endutent() to close current utmp file.
 | |
| 	(getutid): Enable all cases, use strncmp() to compare ut_id fields.
 | |
| 	(pututline): New.
 | |
| 	* tty.cc (create_tty_master): Set ut_pid to current pid.
 | |
| 
 | |
| 2002-11-05  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler_serial.cc (fhandler_serial::ioctl): Don't try to figure out
 | |
| 	if OS has the capability to retrieve RTS/CTS.  Just set default values
 | |
| 	if DeviceIoControl fails.  (suggested by Sergey Okhapkin)
 | |
| 
 | |
| 2002-11-05  Sergey Okhapkin  <sos@prospect.com.ru>
 | |
| 
 | |
| 	* fhandler_serial.cc (fhandler_serial::raw_read): Use correct type for
 | |
| 	minchars.
 | |
| 	(fhandler_serial::ioctl): Set errno if the ClearCommError fails.
 | |
| 	(fhandler_serial::tcsetattr): Use correct value for vmin_.
 | |
| 	(fhandler_serial::tcgetattr): Ditto.
 | |
| 
 | |
| 2002-11-05  Thomas Pfaff  <tpfaff@gmx.net>
 | |
| 
 | |
| 	* fhandler_socket.cc (fhandler_socket::recvmsg): Call if from == NULL
 | |
| 	WSARecvFrom with fromlen = NULL.
 | |
| 
 | |
| 2002-11-04  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* pinfo.cc (_pinfo::commune_send): Fix thinko in previous checkin.
 | |
| 
 | |
| 2002-11-04  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* pinfo.cc (_pinfo::commune_send): Set priority low when sleeping,
 | |
| 	waiting for commune completion so that we don't spin waiting for lower
 | |
| 	priority processes.
 | |
| 
 | |
| 2002-11-04  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* sigproc.cc (WAIT_SIG_PRIORITY): Bump to THREAD_PRIORITY_TIME_CRITICAL.
 | |
| 
 | |
| 2002-11-04  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* pinfo.cc (_pinfo::commune_send): Initialize buffer or suffer random
 | |
| 	crashes.
 | |
| 
 | |
| 2002-11-04  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler_process.cc (fhandler_process::fill_filebuf): Deal with error
 | |
| 	condition from cmdline retrieval.
 | |
| 
 | |
| 2002-11-04  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* sigproc.cc (WAIT_SIG_PRIORITY): Bump to highest priority.
 | |
| 
 | |
| 2002-11-04  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* include/cygwin/version.h: Bump DLL minor number.
 | |
| 
 | |
| 2002-11-03  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler_serial.cc (fhandler_serial::ioctl): Reformat.  Set errno
 | |
| 	appropriately.  Exit from the bottom.  Correctly deal with third
 | |
| 	argument for TCFLSH.  (Suggested by Sergey Okhapkin)
 | |
| 
 | |
| 2003-11-03  Sergey Okhapkin  <sos@prospect.com.ru>
 | |
| 
 | |
| 	* fhandler_tty.cc (fhandler_tty_slave::ioctl): Do nothing if the new
 | |
| 	window size is equal to the old one.  Send SIGWINCH if slave connected
 | |
| 	to a pseudo tty.
 | |
| 	(fhandler_pty_master::ioctl): Do nothing if the new window size is
 | |
| 	equal to the old one.
 | |
| 
 | |
| 2002-10-31  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* fhandler.cc (fhandler_base::open): Verify pc isn't NULL.
 | |
| 
 | |
| 2002-10-30  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* include/cygwin/version.h: Bump DLL minor number.
 | |
| 
 | |
| 2002-10-30  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* external.cc (cygwin_internal): Implement CW_CMDLINE.
 | |
| 	* pinfo.h (SIGCOMMUNE): New signal type.
 | |
| 	(commune_result): New structure for commune functions.
 | |
| 	(picom): New enum for commune functions.
 | |
| 	(_pinfo::hello_pid): New.  Pid who's communicating with me.
 | |
| 	(_pinfo::tothem): New.  Handle of communicating pipe.
 | |
| 	(_pinfo::fromthem): Ditto.
 | |
| 	(_pinfo::commune_recv): Declare.
 | |
| 	(_pinfo::commune_send): Declare.
 | |
| 	(_pinfo::alive): Declare.
 | |
| 	(_pinfo::cmdline): Declare.
 | |
| 	(_pinfo::lock): Declare.
 | |
| 	* pinfo.cc (set_myself): Initialize new _pinfo lock.
 | |
| 	(_pinfo::alive): Define. Determines if process still exists.
 | |
| 	(_pinfo::commune_recv): Define.  Receive info from another cooperating process.
 | |
| 	(_pinfo::commune_send): Define.  Send info to another cooperating process.
 | |
| 	(_pinfo::cmdline): Define.  Determine command line of a given process.
 | |
| 	* include/sys/cygwin.h (CW_CMDLINE): Define.
 | |
| 
 | |
| 	*sigproc.cc (talktome): Communicate with any processes who want to talk
 | |
| 	to me.
 | |
| 	(wait_sig): Honor __SIGCOMMUNE.
 | |
| 
 | |
| 	* fhandler.cc (fhandler_virtual::fixup_after_exec): Declare.
 | |
| 	* fhandler_proc.cc: Use malloc/free/realloc throughout rather than
 | |
| 	cmalloc since buffers don't need to be propagated to subprocesses.
 | |
| 	* fhandler_registry.cc: Ditto.
 | |
| 	* fhandler_virtual.cc: Ditto.
 | |
| 	(fhandler_virtual::fixup_after_exec): Define.
 | |
| 	* fhandler_process.cc: Ditto for malloc/free/realloc.
 | |
| 	(process_listin): Add "cmdline".
 | |
| 	(fhandler_process::fill_filebuf): Implement PROCESS_CMDLINE.
 | |
| 
 | |
| 	* miscfuncs.cc (isalpha_array): New array populated with xor values for
 | |
| 	alpha characters to switch from one case to another.
 | |
| 	* string.h (cygwin_strcasematch): New asm implementation of case match.
 | |
| 	* string.h (cygwin_nstrcasematch): New asm implementation of counted
 | |
| 	case match.
 | |
| 
 | |
| 2002-10-24  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* pwdgrp.h (pwdgrp_read::open): Compare fh to INVALID_HANDLE_VALUE.
 | |
| 
 | |
| 2002-10-22  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::fstat_helper): Nevermind.
 | |
| 	Revert everything to previous state wrt ntsec and exec bits.
 | |
| 
 | |
| 2002-10-22  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* shared.cc (shared_info::initialize): Use correct value for version
 | |
| 	comparison.
 | |
| 	* include/cygwin/version.h (CYGWIN_VERSION_MAGIC): Use all of a DWORD
 | |
| 	for magic calculation.
 | |
| 
 | |
| 2002-10-22  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::fstat_helper): Oops.  Only
 | |
| 	do the executable thing for #! scripts since .exe files wouldn't be
 | |
| 	executable in ntsec case regardless.
 | |
| 
 | |
| 2002-10-22  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::fstat_helper): Always
 | |
| 	consider .exe files and '#!' shell scripts to be executable.
 | |
| 
 | |
| 2002-10-22  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygthread.cc (cygthread::exiting): New variable.
 | |
| 	(cygthread::initialized): Delete.
 | |
| 	(cygthread::stub): Use exiting variable to determine when to exit.
 | |
| 	(cygthread::runner): Delete.
 | |
| 	(cygthread_protect): New variable.
 | |
| 	(cygthread::init): Don't start runner thread.  Initialize muto for list
 | |
| 	protection.
 | |
| 	(cygthread::freerange): Return pointer to cygthread.
 | |
| 	(cygthread::operator new): Change logic to start threads on an
 | |
| 	as-needed basis.
 | |
| 	(cygthread::detach): Don't zero id.
 | |
| 	(cygthread::terminate): Don't kill any executing threads.  Just set
 | |
| 	exiting flag.
 | |
| 	* cygthread.h (cygthread): Reflect above changes.
 | |
| 	* dcrt0.cc (dll_crt0_1): Move cygthread initialization later.
 | |
| 
 | |
| 	* fork.cc (fork_child): Do fdtab fixup after dll fixup or (apparently)
 | |
| 	winsock may allocate memory in dll load address.
 | |
| 
 | |
| 2002-10-22  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* sec_helper.cc (cygsid::get_id): If the sid matches a sid stored in
 | |
| 	cygheap->user, return the uid or gid from myself.
 | |
| 	* security.cc (alloc_sd): If gid == myself->gid, return the group sid
 | |
| 	from cygheap->user.  Remove the test for uid == original_uid, which is
 | |
| 	counter-productive.
 | |
| 
 | |
| 2002-10-22  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygheap.cc (cygheap_fixup_in_child): Use user_heap element in
 | |
| 	cygheap.
 | |
| 	(init_cheap): Ditto for declaration.
 | |
| 	* fork.cc (fork_parent): Use user_heap element in cygheap.
 | |
| 	* heap.h (inheap): Ditto.
 | |
| 	* heap.cc (sbrk): Ditto.
 | |
| 	(heap_init): Ditto.  Reorganize to shrink heap chunk as required and
 | |
| 	record new value in cygheap.
 | |
| 	* dcrt0.cc (dll_crt0_1): More "move the cygthread init" games.
 | |
| 	* shared.cc (open_shared): Rework memory protection to properly deal
 | |
| 	with relocated shared segment.
 | |
| 	(shared_info::heap_chunk_size): Rename element to 'heap_chunk'.
 | |
| 	* shared_info.h (shared_info): Ditto for declaration.
 | |
| 	* strace.cc (strace::hello): Report on heap chunk size from cygheap
 | |
| 	since it may shrink.
 | |
| 
 | |
| 2002-10-20  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	Change _function() to function() throughout.
 | |
| 	* cygwin.din: Remove last vestiges (?) of newlib wrappers.
 | |
| 
 | |
| 2002-10-20  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygthread.cc (cygthread::detach): Always wait for event or suffer an
 | |
| 	apparently inavoidable race.
 | |
| 	* dcrt0.cc (dll_crt0_1): Allocate threads after stack has been
 | |
| 	relocated.
 | |
| 	* debub.cc (lock_debug): Don't acquire lock on exit.
 | |
| 	* fork.cc (fork_child): Recreate mmaps before doing anything else since
 | |
| 	Windows has a habit of using blocks of memory in the child that could
 | |
| 	previously have been occupied by shared memory in the parent.
 | |
| 	* mmap.cc (fhandler_disk_file::fixup_mmap_after_fork): Issue error here
 | |
| 	and provide some details about what went wrong.
 | |
| 	(fixup_mmaps_after_fork): Remove error message.
 | |
| 	* shared.cc (open_shared): Move warning message so that more detail is
 | |
| 	possible.
 | |
| 	* sigproc.cc (sigproc_init): Initialize sync_proc_subproc to avoid a
 | |
| 	race.
 | |
| 	(sigproc_terminate): Specifically wait for process thread to terminate.
 | |
| 
 | |
| 2002-10-20  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygthread.cc (cygthread::stub): Fix typo.
 | |
| 	(cygthread::terminate): Don't zero thread handle prior to using it.
 | |
| 
 | |
| 2002-10-20  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* sigproc.cc (wait_sig): Remove obsolete sigchld logic.
 | |
| 
 | |
| 2002-10-20  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	Rename _kill() to kill() throughout.  Rename _raise() to raise()
 | |
| 	throughout.  Rename _pid() to pid() throughout.
 | |
| 	* Makefile.in: Compile some objects with -fomit-frame-pointer.
 | |
| 	* cygwin.din: Reverse aliasing for _kill.
 | |
| 	* syscalls.cc (_getpid_r): New function, implemented for newlib
 | |
| 	compatibility.
 | |
| 
 | |
| 	* shared.cc (open_shared): Remove reserving of memory since previous
 | |
| 	change eliminate the need for this hack.
 | |
| 
 | |
| 2002-10-19  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fork.cc (fork_child): Move pinfo fixup later to attempt some minor
 | |
| 	gains from concurrency with cythread::init.
 | |
| 
 | |
| 2002-10-18  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* dcrt0.cc (dll_crt0_1): Initialize cygwin threads here only when not
 | |
| 	forking.
 | |
| 	* fork.cc (fork_child): Initialize cygwin thread later in process to
 | |
| 	avoid allocating memory for thread stacks.
 | |
| 	* shared.cc (open_shared): Issue warning if NT and shared segment is
 | |
| 	relocated.
 | |
| 
 | |
| 2002-10-18  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygthread.cc: Bump number of cygthreads up to accommodate
 | |
| 	applications which use ttys.
 | |
| 
 | |
| 2002-10-18  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fork.cc (fork_child): Move mmap initialization.
 | |
| 	* shared.cc (shared_info::heap_chunk_size): Store info as megabytes.
 | |
| 	Search HKEY_LOCAL_MACHINE as well as HKEY_CURRENT_USER.
 | |
| 	* shared_info.h (shared_info::initial_heap_size): Change element name
 | |
| 	to reflect new functionality.
 | |
| 	* strace.cc (strace::hello): Report on initial heap size.
 | |
| 
 | |
| 2002-10-18  Thomas Pfaff  <tpfaff@gmx.net>
 | |
| 
 | |
| 	* thread.cc (verifyable_object_isvalid): Test for a valid object
 | |
| 	pointer before testing for static ptr.
 | |
| 
 | |
| 2002-10-17  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* dtable.cc (dtable::init_std_file_from_handle): Force "devices" to
 | |
| 	always be in binary mode.  Temporary fix until ssh is rebuilt?
 | |
| 
 | |
| 2002-10-17  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* dtable.cc (dtable::set_file_pointers_for_exec): New function.
 | |
| 	* dtable.h (dtable::set_file_pointers_for_exec): Declare new function.
 | |
| 	* spawn.cc (spawn_guts): Call dtable::set_file_pointers_for_exec to set
 | |
| 	pointers to EOF when execing non-cygwin applications.
 | |
| 
 | |
| 2002-10-17  Robert Collins  <rbtcollins@hotmail.com>
 | |
| 
 | |
| 	* thread.h (pthread_mutex::isGoodInitializerOrBadObject): Declare.
 | |
| 	* thread.cc (pthread_mutex::isGoodInitializerOrBadObject): Implement.
 | |
| 	(pthread_mutex::init): Use isGoodInitializerOrBadObject to avoid
 | |
| 	unneeded SEGV's during debugging.
 | |
| 
 | |
| 2002-10-17  Thomas Pfaff  <tpfaff@gmx.net>
 | |
| 
 | |
| 	* thread.cc (verifyable_object_isvalid): Test for static object first.
 | |
| 
 | |
| 2002-10-16  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler_tty.cc (fhandler_tty_slave::read): Attempt #527 to properly
 | |
| 	implement VMIN/VTIME.
 | |
| 
 | |
| 2002-10-15  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* shared.cc (open_shared): Revert to "old" method for shared memory
 | |
| 	location if !wincap.needs_memory_protection.
 | |
| 	* wincap.cc: Implement needs_memory_protection throughout.
 | |
| 	* wincap.h: Ditto.
 | |
| 
 | |
| 2002-10-15  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* child_info.h (CURR_CHILD_INFO_MAGIC): Reset.
 | |
| 	(child_info_fork::mount_table): Remove.
 | |
| 	(child_info_fork::myself_addr): Remove.
 | |
| 	* fork.cc (fork_child): Don't set either of the above.
 | |
| 	* dcrt0.cc (dll_crt0_1): Call memory_init as early as possible.
 | |
| 	* fhandler_console.cc (console_state): Move to shared_info.h.
 | |
| 	(fhandler_console::get_tty_stuff): Reflect open_shared arg change.
 | |
| 	* pinfo.cc (myself_addr): Remove definition.
 | |
| 	(pinfo::init): Get myself address from open_shared.
 | |
| 	* pinfo.h (myself_addr): Remove declaration.
 | |
| 	* shared.cc (open_shared): Rework so that known shared memory locations
 | |
| 	are protected.  Take shared memory type as fifth argument.
 | |
| 	(memory_init): Reflect open_shared arg change.
 | |
| 	* shared_info.h (shared_locations): New enum.
 | |
| 	(console_state): Move here.
 | |
| 	(open_shared): Reflect open_shared arg change in declaration.
 | |
| 
 | |
| 2002-10-14  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* child_info.h (CURR_CHILD_INFO_MAGIC): Reset.
 | |
| 	(child_info_fork::heaptop): Remove obsolete element.
 | |
| 	(child_info_fork::heabbase): Ditto.
 | |
| 	(child_info_fork::heapptr): Ditto.
 | |
| 	(child_info_fork::mount_table): New element.
 | |
| 	(child_info_fork::myself_addr): Ditto.
 | |
| 	* dcrt0.cc (dll_crt0_1): Set mount_table and myself_addr when forking.
 | |
| 	(initial_env): Add newline to "sleeping" message.
 | |
| 	* dll_init.cc (reserve_upto): Accommodate cygwin heap when freeing
 | |
| 	memory.  Make debugging output a little more descriptive.
 | |
| 	* fork.cc (fork_parent): Save mount_table and myself_addr.
 | |
| 	* pinfo.cc (myself_addr): New variable.
 | |
| 	(set_myself): Pass PID_MYSELF flag to init.
 | |
| 	(pinfo::init): Honor PID_MYSELF.  Save address where myself shared
 | |
| 	memory resides in myself_addr, for fork.
 | |
| 	* pinfo.h (myself_addr): Declare.
 | |
| 	* shared.cc (memory_init): On fork, use previously saved address for
 | |
| 	location of mount table.
 | |
| 	* include/sys/cygwin.h (PID_MYSELF): New value.
 | |
| 
 | |
| 	* dtable.cc (dtable::stdio_init): Don't pass access type to
 | |
| 	init_std_file_from_handle.  It's always the same.
 | |
| 	(dtable::init_std_file_from_handle): Remove access type argument.
 | |
| 	Assume read/write.
 | |
| 	* dtable.h (dtable::init_std_file_from_handle): Ditto for declaration.
 | |
| 
 | |
| 	* exceptions.cc (try_to_debug): Don't try to debug if already being
 | |
| 	debugged.
 | |
| 
 | |
| 	* fhandler_console.cc (shared_console_info_save): New variable.
 | |
| 	(fhandler_console::get_tty_stuff): Save address of shared console stuff
 | |
| 	for fork.
 | |
| 
 | |
| 2002-10-13  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygthread.cc (cygthread::stub): Reintroduce clearing of __name but do
 | |
| 	it before SetEvent to eliminate a race.
 | |
| 	(cygthread::terminate): Accumulate list of threads to check for
 | |
| 	termination and call WaitForMultipleObjects on list rather than waiting
 | |
| 	for each thread individually.
 | |
| 	* sigproc.cc (subproc_init): Zap hwait_subproc thread handle since it
 | |
| 	is no longer used.
 | |
| 
 | |
| 2002-10-13  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* spawn.cc (spawn_guts): Fix so that cygthread::terminate is *really*
 | |
| 	called only for exec.
 | |
| 
 | |
| 2002-10-13  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygthread.cc (cygthread::stub): Don't zero __name here.  That
 | |
| 	introduces a race.
 | |
| 
 | |
| 2002-10-13  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* include/cygwin/version.h: Bump DLL minor number.
 | |
| 
 | |
| 2002-10-13  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygthread.cc (cygthread::stub): Don't create event for long-running
 | |
| 	threads.  Initialize thread_sync event here which is used to Suspend
 | |
| 	using an event rather than relying on SuspendThread/ResumeThread.
 | |
| 	(cygthread::init): Save handle to runner thread for future termination.
 | |
| 	(cygthread::cygthread): Only resume thread when it is actually
 | |
| 	suspended.  Otherwise signal thread completion event.
 | |
| 	(cygthread::terminate): Forcibly terminate runner thread and any helper
 | |
| 	threads.  Call DisableThreadLibrary calls if execing.
 | |
| 	* cygthread.h (cygthread::thread_sync): Declare.
 | |
| 	* dcrt0.cc (do_exit): Eliminate calls to obsolete window_terminate and
 | |
| 	shared_terminate.
 | |
| 	* exceptions.cc (events_terminate): Don't bother closing title_mutex
 | |
| 	since it is going away anyway.
 | |
| 	* pinfo.cc (_pinfo::exit): Call cygthread::terminate to ensure that
 | |
| 	threads are shut down before process exit or otherwise strange races
 | |
| 	seem to occur.
 | |
| 	* shared.cc (shared_terminate): Eliminate.
 | |
| 	* shared.h (shared_terminate): Eliminate declaration.
 | |
| 	* winsup.h (window_terminate): Eliminate declaration.
 | |
| 	* spawn.cc (spawn_guts): Call cygthread::terminate early in process if
 | |
| 	execing.  Call DisableThreadLibrary calls if execing.
 | |
| 	* window.cc (Winmain): Call ExitThread to force exit.
 | |
| 	(window_terminate): Eliminate.
 | |
| 
 | |
| 	* dcrt0.cc (do_exit): Track exit state more closely.
 | |
| 
 | |
| 2002-10-10  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* window.cc (gethwnd): Use SetThreadPriority method.
 | |
| 
 | |
| 2002-10-10  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* Makefile.in (new-cygwin1.dll): Reorganize library order.
 | |
| 
 | |
| 	* dcrt0.cc (do_exit): Move thread stuff after vfork stuff or threads
 | |
| 	are terminated during vfork.
 | |
| 	* sigproc.cc (proc_terminate): Grab proc lock prior to signalling
 | |
| 	subproc thread exit to avoid an extra "wait-for-thread-to-exit".
 | |
| 
 | |
| 2002-10-09  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygthread.cc (cygthread::stub): Don't create an event for "cygself"
 | |
| 	threads.  Assume that they exit via an ExitThread call.
 | |
| 	* cygthread.h (cygthread::SetThreadPriority): New function.
 | |
| 	(cygthread::zap_h): New function.
 | |
| 	* dcrt0.cc (do_exit): Move cygthread::terminate earlier and establish
 | |
| 	exit_state guard.
 | |
| 	* fhandler.h (fhandler_tty_master::output_thread): Delete.
 | |
| 	* fhandler_tty.cc (fhandler_tty_master::init): Set priority for threads
 | |
| 	via method.  Zap handles when done.  Don't treat process_output
 | |
| 	specially.
 | |
| 	(process_output): Call ExitThread directly.
 | |
| 	(fhandler_tty_master::fixup_after_fork): Don't worry about
 | |
| 	output_thread.
 | |
| 	(fhandler_tty_master::fixup_after_exec): Ditto.
 | |
| 	* sigproc.cc (proc_terminate): Don't detach from hwait_subproc.  Just
 | |
| 	let it exit.
 | |
| 	(sigproc_init): Close thread handle after initialization.
 | |
| 	(wait_sig): Use GetCurrentThread() as SetThreadPriority call rather
 | |
| 	than *event* handle.  Call ExitThread directly on termination.
 | |
| 	(wait_subproc): Call ExitThread directly on termination.
 | |
| 	* tty.cc (tty_list::terminate): Don't attempt to detach from
 | |
| 	output_thread.
 | |
| 
 | |
| 2002-10-08  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygheap.cc (dup_now): Make fatal error a little more informative.
 | |
| 	(cygheap_setup_for_child): Detect when default size of shared region is
 | |
| 	less than the current size and allocate that much.
 | |
| 	(_cbrk): Just return NULL on inability to allocate.
 | |
| 	(_cmalloc): Ditto.
 | |
| 	* cygheap.h (CYGHEAPSIZE): Change size to reflect newer, tinier
 | |
| 	fhandler sizes.
 | |
| 	* spawn.cc (av::error): New element, reflects potential errno from cmalloc.
 | |
| 	(av::~av): Don't free NULL pointers.
 | |
| 	(av::replace0_maybe): Detect out-of-memory conditions.
 | |
| 	(av::dup_maybe): Ditto.
 | |
| 	(av::dup_all): Ditto.
 | |
| 	(av::unshift): Ditto.
 | |
| 	(spawn_guts): Set errno and return if argv creation ran into problems.
 | |
| 
 | |
| 	* fhandler.h (fhandler_union): Change member names to something safer.
 | |
| 
 | |
| 	* fhandler_console.cc (fhandler_console::get_tty_stuff): Always set
 | |
| 	fhandler_console::dev_state regardless of whether shared region is
 | |
| 	initialized.
 | |
| 
 | |
| 	* cygthread.cc (cygthread::runner): Use ExitThread rather than return
 | |
| 	(planning for future).
 | |
| 
 | |
| 2002-10-08  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler.h (dev_console): New class.
 | |
| 	(fhandler_console::dev_state): New class element.
 | |
| 	(fhandler_console::mouse_aware): Use dev_state element.
 | |
| 	(fhandler_console::get_tty_stuff): Declare new function.
 | |
| 	* fhandler_console.cc: Use dev_state fhandler_console element,
 | |
| 	throughout.
 | |
| 	(fhandler_console::get_tty_stuff): Move to fhandler_console class.
 | |
| 	Incorporate dev_console information.  Move constructor stuff here.
 | |
| 
 | |
| 2002-10-07  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* dtable.cc (dtable::init_std_file_from_handle): Try to mimic standard
 | |
| 	open behavior with files redirected from stdin/stdout/stderr, i.e.,
 | |
| 	fmode settings take precedence over mount settings.
 | |
| 
 | |
| 2002-10-07  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* dtable.cc (unknown_file): New variable.
 | |
| 	(dtable::init_std_file_from_handle): Don't set binmode if we couldn't
 | |
| 	determine the actual file name on stdin/stdout/stderr.
 | |
| 	(handle_to_fn): Return unknown_file when can't determine filename.
 | |
| 
 | |
| 2002-10-07  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* dcrt0.cc (do_exit): Call DisableThreadLibraryCalls since we don't
 | |
| 	need to track thread detaches.
 | |
| 	* init.cc (dll_entry): Reorganize slightly.  Fix api_fatal message.
 | |
| 
 | |
| 2002-10-05  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygthread.cc (cygthread::stub): Very minor cleanup.
 | |
| 	(cygthread::stub): Report overflows in cygwin thread pool when
 | |
| 	DEBUGGING is on and special environment variable is not set.
 | |
| 	(cygthread::terminate): Set event only when event actually exists.
 | |
| 	* exceptions.cc (signal_exit): Set priority of main thread to low
 | |
| 	before setting current thread to high.
 | |
| 
 | |
| 2002-10-01  Robert Collins <rbtcollins@hotmail.com>
 | |
| 
 | |
| 	* thread.cc (pthread_key::keys): Copy on fork. Add a comment explaining
 | |
| 	why.
 | |
| 	(pthreadNull::_instance): Copy on fork. Absolutely no state exists
 | |
| 	in pthreadNull.
 | |
| 
 | |
| 2002-09-30  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* cygserver_transport_pipes.cc (transport_layer_pipes::accept):
 | |
| 	Remove trailing \n from debug_printf.
 | |
| 
 | |
| 2002-09-30  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* thread.cc (pthread_mutex::initMutex): Remove \n from api_fatal.
 | |
| 
 | |
| 2002-09-30  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* thread.cc (pthread::precreate): Use explicit "no inherit" option when
 | |
| 	creating mutex.
 | |
| 	(pthread_mutex::nativeMutex::init): Ditto.
 | |
| 
 | |
| 2002-09-30  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* thread.cc (pthread_key::keys): Do not copy on fork.
 | |
| 	(pthread_mutex::mutexInitializationLock): Ditto.
 | |
| 	(pthreadNull::_instance): Ditto.
 | |
| 
 | |
| 2002-09-30  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* exceptions.cc (unused_sig_wrapper): Still need additional level of
 | |
| 	indirection when setting errno.
 | |
| 
 | |
| 2002-09-30  Robert Collins <rbtcollins@hotmail.com>
 | |
| 
 | |
| 	* thread.cc (pthread_mutex::initMutex): Use the wrapper init call.
 | |
| 	(pthread_mutex::nativeMutex::init): Implement.
 | |
| 	(pthread_mutex::nativeMutex::lock): Ditto.
 | |
| 	(pthread_mutex::nativeMutex::unlock): Ditto.
 | |
| 	(pthread_mutex::init): Use the wrapper lock and unlockcalls.
 | |
| 	* thread.h (pthread_mutex): Move mutexInitializationLock into a
 | |
| 	nativeMutex wrapper class.
 | |
| 
 | |
| 2002-09-30  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	Remove \n from calls to strace class printfs throughout.
 | |
| 
 | |
| 2002-09-30  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* exceptions.cc (unused_sig_wrapper): Accommodate newer compilers.
 | |
| 
 | |
| 2002-09-29  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* security.cc (allow_ntsec): Default to zero.
 | |
| 	* environ.cc (environ_init): Set allow_ntsec to TRUE by default,
 | |
| 	assuming OS allows it.
 | |
| 
 | |
| 2002-09-29  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* environ.cc (environ_init): Avoid a compiler warning.
 | |
| 	* path.cc (path_conv::check): Ditto.
 | |
| 	* path.h (path_conv::operator int): Ditto.
 | |
| 	* regex/engine.c: Ditto throughout.
 | |
| 	* regex/regcomp.c: Ditto throughout.
 | |
| 	* regex/regexec.c: Ditto throughout.
 | |
| 
 | |
| 2002-09-29  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* thread.cc: Use "%E" in *_printf throughout rather than calling
 | |
| 	GetLastError.  GNUify comments.
 | |
| 	(__pthread_mutex_lock): Don't return error on EBUSY since that just
 | |
| 	means that the mutex has already been initialized.
 | |
| 
 | |
| 2002-09-30  Robert Collins <rbtcollins@hotmail.com>
 | |
| 
 | |
| 	* pthread.cc (pthread_mutex_init): Use new pthread_mutex::init.
 | |
| 	* thread.cc: Change __pthread_mutex_init to pthread_mutex::init
 | |
| 	throughout.
 | |
| 	(MTinterface::Init): Initialise pthread_mutex support.
 | |
| 	(pthread_mutex::mutexInitializationLock): Instantiate.
 | |
| 	(pthread_mutex::initMutex): New method.
 | |
| 	(__pthread_cond_dowait): Don't dereference untrusted pointers.
 | |
| 	Use the new pthread_mutex::init method.
 | |
| 	(__pthread_condattr_init): Don't dereference untrusted pointers.
 | |
| 	(__pthread_mutex_init): Rename to pthread_mutex::init.
 | |
| 	Lock and release mutexInitializationLock to prevent races on
 | |
| 	mutex initialisation.
 | |
| 	* thread.h (pthread_mutex::initMutex): New method, initialise
 | |
| 	pthread_mutex supporting state on process initialisation.
 | |
| 	(pthread_mutex::init): Initialise a single mutex.
 | |
| 	(pthread_mutex::mutexInitializationLock): A win32 mutex for
 | |
| 	syncronising pthread mutex initialisation.
 | |
| 	(__pthread_mutex_init): Remove this.
 | |
| 
 | |
| 2002-09-28  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* thread.h (verifyable_object:~verifyable_object): Make virtual.
 | |
| 
 | |
| 2002-09-28  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygthread.h (cygthread::terminate): Declare new function.
 | |
| 	(cygthread::initialized): Change to 'int'.
 | |
| 	* cygthread.cc (cygthread::stub): Exit thread if initialized < 0.
 | |
| 	(cygthread::new): Ditto.
 | |
| 	(cygthread::runner): Ditto.  Set initialized using xor to preserve
 | |
| 	sign.
 | |
| 	(cygthread::terminate): New function.
 | |
| 	* dcrt0.cc (do_exit): Call cygthread::terminate.
 | |
| 
 | |
| 2002-09-27  Robert Collins <rbtcollins@hotmail.com>
 | |
| 
 | |
| 	* thread.cc (pthread_key::run_destructor): Run_destructor is not
 | |
| 	const as it needs to set the key value.
 | |
| 	* thread.h (pthread_key::run_destructor): Ditto.
 | |
| 
 | |
| 2002-09-27  Robert Collins <rbtcollins@hotmail.com>
 | |
| 
 | |
| 	* thread.cc (pthread_key::run_destructor): Follow opengroup algorithm.
 | |
| 	I.e. only run the destructor NON-NULL key values, and reset the key
 | |
| 	to NULL before running the destructor. Reported by Thomas Pfaff.
 | |
| 
 | |
| 2002-09-25  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygrun.c (main): Fix setting of CYGWIN environment variable.
 | |
| 
 | |
| 	* Makefile.in: Remove linking of unnecessary libraries.
 | |
| 
 | |
| 2002-09-24  Christopher January <chris@atomice.net>
 | |
| 
 | |
| 	* fhandler_proc.cc (format_process_stat): make ctty a real device
 | |
| 	number.
 | |
| 	(format_process_status): use effective uid/gid as real and saved
 | |
| 	uid/gid.
 | |
| 
 | |
| 2002-09-24  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* errno.cc (errmap): Map ERROR_INVALID_ADDRESS to new errno code
 | |
| 	EOVERFLOW.
 | |
| 	(_sys_errlist): Add entries for EILSEQ and EOVERFLOW.
 | |
| 	(strerror): Ditto.
 | |
| 	* mmap.cc (map_map): Set errno in case of error.
 | |
| 	(mmap64): Remove setting errno explicitely to ENOMEM.
 | |
| 
 | |
| 2002-09-24  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* mmap.cc (map_map): Add debug output.
 | |
| 	(mmap64): Evaluate gran_len correctly even if offset isn't 0.
 | |
| 
 | |
| 2002-09-22  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	More GNUify non-GNU formatted functions calls throughout.
 | |
| 
 | |
| 2002-09-22  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* Makefile.in (DLL_O_FILES): Restore formatting.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	GNUify non-GNU formatted functions calls throughout.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* cygserver_shm.cc (with_strerr): Remove macro.
 | |
| 	(server_shmmgr::segment_t::~segment_t): Remove calls to with_strerr.
 | |
| 	(server_shmmgr::segment_t::attach): Ditto.
 | |
| 	(server_shmmgr::new_segment): Ditto.
 | |
| 	* shm.cc (with_strerr): Remove macro.
 | |
| 	(client_shmmgr::shmdt): Remove calls to with_strerr.
 | |
| 	(client_shmmgr::attach): Ditto.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* include/sys/ipc.h: Move to "include/cygwin/ipc.h".
 | |
| 	* include/sys/msg.h: Move to "include/cygwin/msg.h".
 | |
| 	* include/sys/sem.h: Move to "include/cygwin/sem.h".
 | |
| 	* include/sys/shm.h: Move to "include/cygwin/shm.h".
 | |
| 	* include/cygwin/ipc.h: New file.
 | |
| 	* include/cygwin/msg.h: Ditto.
 | |
| 	* include/cygwin/sem.h: Ditto.
 | |
| 	* include/cygwin/shm.h: Ditto.
 | |
| 	* cygserver_shm.h: Update includes.
 | |
| 	* msg.cc: Ditto.
 | |
| 	* sem.cc: Ditto.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* safe_memory.h (safe_delete): Make a templated function.
 | |
| 	* cygserver.cc (~server_request): Update use of safe_delete.
 | |
| 	(main): Ditto.
 | |
| 	* cygserver_client.cc (client_request::handle_request): Ditto.
 | |
| 	(client_request::make_request): Ditto.
 | |
| 	* cygserver_process.cc (~process_cleanup): Ditto.
 | |
| 	(process::remove): Ditto.
 | |
| 	(process::cleanup): Ditto.
 | |
| 	(process_cache::process): Ditto.
 | |
| 	* cygserver_shm.cc (server_shmmgr::segment_t::detach): Ditto.
 | |
| 	(server_shmmgr::delete_segment): Ditto.
 | |
| 	* shm.cc (client_shmmgr::shmdt): Ditto.
 | |
| 	* threaded_queue.cc (~threaded_queue): Ditto.
 | |
| 	(threaded_queue::worker_loop): Ditto.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* safe_memory.h: Replace #include <new> with an explicit
 | |
| 	definition of the placement new operator.
 | |
| 	(safe_delete): Remove unnecessary ## operator.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* cygserver_shm.cc (class server_shmmgr): Remove `cleanup_t'
 | |
| 	friend declaration.
 | |
| 	(cleanup_t::cleanup_t): Use the segment's shmid as the key rather
 | |
| 	than the segment pointer itself.
 | |
| 	(cleanup_t::segptr): Remove method.
 | |
| 	(cleanup_t::shmid): New method.
 | |
| 	(cleanup_t::cleanup): Update for new key value.
 | |
| 	(server_shmmgr::find (segment_t *)): Remove method.
 | |
| 	* include/cygwin/cygserver_process.h (cleanup_routine::key): Make
 | |
| 	method const.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* include/cygwin/cygserver_process.h
 | |
| 	(cleanup_routine::_key): New field.
 | |
| 	(cleanup_routine::cleanup_routine): Initialise new field with new
 | |
| 	argument.
 | |
| 	(cleanup_routine::operator==): New method.
 | |
| 	(cleanup_routine::key): New method.
 | |
| 	(cleanup_routine::cleanup): Make argument non-const.
 | |
| 	(process::is_active): New method.
 | |
| 	(process::remove): Ditto.
 | |
| 	(process::check_exit_code): Rename method.
 | |
| 	* cygserver_process.cc (process::add): Reorganize code.
 | |
| 	(process::remove): New method.
 | |
| 	(process::check_exit_code): Rename method.
 | |
| 	(process::cleanup): Use new `process::is_active' method.
 | |
| 	(process_cache::process): Ditto.
 | |
| 	(process_cache::sync_wait_array): Ditto.
 | |
| 	(process_cache::check_and_remove_process): Ditto.
 | |
| 	* cygserver_shm.cc (server_shmmgr): Make `cleanup_t' a friend.
 | |
| 	(segment_t::detach): Make argument non-const.  Remove cleanup
 | |
| 	object from client if appropriate.
 | |
| 	(cleanup_t::_segptr): Remove field.
 | |
| 	(cleanup_t::cleanup_t): Initialise parent explicitly.  Remove
 | |
| 	field.
 | |
| 	(cleanup_t::segptr): New method.
 | |
| 	(cleanup_t::cleanup): Add error checking and reporting.
 | |
| 	(server_shmmgr::shmdt): Make argument non-const.
 | |
| 	(server_shmmgr::find (segment_t *)): New method.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* cygserver.cc (client_request_shutdown::client_request_shutdown):
 | |
| 	Comment out verbose tracing statement.
 | |
| 	* cygserver_client.cc
 | |
| 	(client_request_get_version::client_request_get_version): Ditto.
 | |
| 	(client_request_attach_tty::client_request_attach_tty): Ditto.
 | |
| 	* cygserver_shm.cc (client_request_shm::client_request_shm):
 | |
| 	Ditto.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* cygserver_transport_pipes.cc (transport_layer_pipes::listen):
 | |
| 	Set `_is_listening_endpoint' appropriately.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* include/cygwin/cygserver_transport.h
 | |
| 	(transport_layer_base::listen): Change return type.
 | |
| 	(transport_layer_base::connect): Ditto.
 | |
| 	* include/cygwin/cygserver_transport_pipes.h
 | |
| 	(transport_layer_pipes::listen): Change return type.
 | |
| 	(transport_layer_pipes::connect): Ditto.
 | |
| 	(transport_layer_pipes::_sec_none_nih): Remove unused field.
 | |
| 	(transport_layer_pipes::_is_listening_endpoint): New field.
 | |
| 	* cygserver_transport_pipes.cc: Synchronize with sockets code.
 | |
| 	(transport_layer_pipes::transport_layer_pipes): Initialise new
 | |
| 	field.  Separate out asserts.
 | |
| 	(transport_layer_pipes::listen): Change return type.  Add asserts.
 | |
| 	(transport_layer_pipes::accept): Add asserts.
 | |
| 	(transport_layer_pipes::read): Change conditional to an assert.
 | |
| 	Add assert.
 | |
| 	(transport_layer_pipes::write): Ditto.
 | |
| 	(transport_layer_pipes::connect): Change return type.  Change
 | |
| 	conditional to an assert.  Add asserts.  Rationalize error code
 | |
| 	slightly.
 | |
| 	(transport_layer_pipes::impersonate_client): Add asserts.
 | |
| 	* include/cygwin/cygserver_transport_sockets.h
 | |
| 	(transport_layer_sockets::listen): Change return type.
 | |
| 	(transport_layer_sockets::connect): Ditto.
 | |
| 	(transport_layer_sockets::_addr): Change type of field.
 | |
| 	(transport_layer_sockets::_addr_len): Ditto.
 | |
| 	(transport_layer_sockets::_is_accepted_endpoint): New field.
 | |
| 	(transport_layer_sockets::_is_listening_endpoint): Ditto.
 | |
| 	* cygserver_transport_sockets.cc
 | |
| 	(MAX_CONNECT_RETRY): New constant.
 | |
| 	(transport_layer_sockets::transport_layer_sockets): Initialise new
 | |
| 	fields.  Only initialise the socket address where necessary.
 | |
| 	(transport_layer_sockets::listen): Change return type.  Rewrite.
 | |
| 	(transport_layer_sockets::accept): Add asserts.  Add tracing
 | |
| 	statements.  Use a local variable to hold the accepted address.
 | |
| 	(transport_layer_sockets::close): Add tracing statements.  Unlink
 | |
| 	the UNIX domain socket file as appropriate.  Close the socket
 | |
| 	cleanly.
 | |
| 	(transport_layer_sockets::read): Rewrite method.
 | |
| 	(transport_layer_sockets::write): Ditto.
 | |
| 	(transport_layer_sockets::connect): Change return type.  Rewrite.
 | |
| 	* cygserver.cc (server_submission_loop::request_loop): Run the
 | |
| 	listening thread at high priority with special handling for
 | |
| 	shutdown.
 | |
| 	(main): Print the request error code rather than errno in shutdown
 | |
| 	request code.  Install signal handlers with sigaction(2) to avoid
 | |
| 	setting SA_RESTART.  Check value of the listen method call, now it
 | |
| 	has one.
 | |
| 	* cygserver_client.cc (client_request::make_request): Check new
 | |
| 	return value on connect method call.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* include/cygwin/cygserver_transport_pipes.h
 | |
| 	(cygserver_transport_pipes::_sd): Rename field.
 | |
| 	(cygserver_transport_pipes::_sec_none_nih): Ditto.
 | |
| 	(cygserver_transport_pipes::_sec_all_nih): Ditto.
 | |
| 	(cygserver_transport_pipes::_pipe_name): Ditto.
 | |
| 	(cygserver_transport_pipes::_hPipe): Ditto.
 | |
| 	(cygserver_transport_pipes::_is_accepted_endpoint): Ditto.
 | |
| 	* cygserver_transport_pipes.cc
 | |
| 	(transport_layer_pipes::transport_layer_pipes): Rename fields.
 | |
| 	(transport_layer_pipes::init_security): Ditto.
 | |
| 	(transport_layer_pipes::listen): Ditto.
 | |
| 	(transport_layer_pipes::accept): Ditto.
 | |
| 	(transport_layer_pipes::close): Ditto.
 | |
| 	(transport_layer_pipes::read): Ditto.
 | |
| 	(transport_layer_pipes::write): Ditto.
 | |
| 	(transport_layer_pipes::connect): Ditto.
 | |
| 	(transport_layer_pipes::impersonate_client): Ditto.
 | |
| 	(transport_layer_pipes::revert_to_self): Ditto.
 | |
| 	* include/cygwin/cygserver_transport_sockets.h
 | |
| 	(cygserver_transport_sockets::_fd): Rename field.
 | |
| 	(cygserver_transport_sockets::_addr): Ditto.
 | |
| 	(cygserver_transport_sockets::_addr_len): Ditto.
 | |
| 	* cygserver_transport_sockets.cc
 | |
| 	(transport_layer_sockets::transport_layer_sockets): Rename fields.
 | |
| 	(transport_layer_sockets::listen): Ditto.
 | |
| 	(transport_layer_sockets::accept): Ditto.
 | |
| 	(transport_layer_sockets::close): Ditto.
 | |
| 	(transport_layer_sockets::read): Ditto.
 | |
| 	(transport_layer_sockets::write): Ditto.
 | |
| 	(transport_layer_sockets::connect): Ditto.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* cygserver_shm.cc (with_strerr): Fix use of %p format.
 | |
| 	* shm.cc (client_shmmgr::shmat): Ditto.
 | |
| 	(client_shmmgr::shmctl): Ditto.
 | |
| 	(client_shmmgr::shmdt): Ditto.
 | |
| 	(client_shmmgr::attach): Ditto.
 | |
| 
 | |
| 2002-09-22  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* woutsup.h (system_printf): Remove extraneous semicolon from macro
 | |
| 	definition.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* cygserver_transport_pipes.cc
 | |
| 	(transport_layer_pipes::connect): Use ProtectHandle in DLL code.
 | |
| 	(transport_layer_pipes::close): Use ForceCloseHandle in DLL code.
 | |
| 
 | |
| 2002-09-22  Nicholas Wourms  <nwourms@netscape.com>
 | |
| 
 | |
| 	* threaded_queue.h (class queue_submission_loop): Correct friend
 | |
| 	declaration for GCC 3.1.1.
 | |
| 	* include/cygwin/cygserver_process.h (class process): Ditto.
 | |
| 	(class process_cache): Ditto.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* cygserver_shm.cc (server_shmmgr::shmdt): Only call
 | |
| 	delete_segment if the segment exists [sic].
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* safe_memory.h: Include <new> rather than <new.h> for gcc 3.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* safe_memory.h: New file extracted from "woutsup.h".
 | |
| 	* woutsup.h: Move the "safe" new/delete macros into the new
 | |
| 	"safe_memory.h" header file and include that here.
 | |
| 	* cygserver_client.cc: Explicitly include "safe_memory.h" for
 | |
| 	client-side code.
 | |
| 	(client_request::make_request): Use the "safe" new/delete macros
 | |
| 	unconditionally, i.e. use them on the client side as well as on
 | |
| 	the server side.
 | |
| 	* cygserver_transport.cc: Explicitly include "safe_memory.h" for
 | |
| 	client-side code.
 | |
| 	(create_server_transport): Use the "safe" new/delete macros
 | |
| 	unconditionally, i.e. use them on the client side as well as on
 | |
| 	the server side.
 | |
| 	* shm.cc: Include "safe_memory.h".
 | |
| 	(client_shmmgr::instance): Use the "safe" new/delete macros.
 | |
| 	(client_shmmgr::shmdt): Ditto.
 | |
| 	(client_shmmgr::new_segment): Ditto.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* cygserver_process (process::process): Add the client's cygpid
 | |
| 	and winpid to all tracing statements as appropriate.
 | |
| 	(process::exit_code): Ditto.
 | |
| 	(process_cache::check_and_remove_process): Ditto.
 | |
| 	* cygserver_shm.cc (server_shmmgr::shmat): Ditto.
 | |
| 	(server_shmmgr::shmdt): Ditto.
 | |
| 	(server_shmmgr::shmctl): Add a process object argument and remove
 | |
| 	the explicit cygpid argument.  Add the client's cygpid and winpid
 | |
| 	to all tracing statements as appropriate.
 | |
| 	(server_shmmgr::shmget): Ditto.
 | |
| 	(client_request_shm::serve): Update for the new signature of the
 | |
| 	shmctl and shmget methods.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* cygserver.cc (client_request_shutdown::serve): Don't set the
 | |
| 	shutdown flag directly, but send a SIGINT, as the signal handler
 | |
| 	sets the flag and the signal breaks the pause(2) in the main loop.
 | |
| 	(print_usage): Add new options.
 | |
| 	(main): Add new --cleanup-threads and --request-threads options to
 | |
| 	set the number of threads used by the daemon.  Use pause(2) rather
 | |
| 	the win32 Sleep in the main loop.
 | |
| 	* shm.cc (shmat): Add sigframe.
 | |
| 	(shmctl): Ditto.
 | |
| 	(shmdt): Ditto.
 | |
| 	(shmget): Ditto.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* cygserver_shm.cc: Automatically detach processes from any
 | |
| 	segments they are attached to at exit.
 | |
| 	(class server_shmmgr::attach_t): New class.
 | |
| 	(server_shmmgr::segment_t::IS_DELETED): Rename and make private.
 | |
| 	(server_shmmgr::segment_t::_sequence): Make private.
 | |
| 	(server_shmmgr::segment_t::_flg): Ditto.
 | |
| 	(server_shmmgr::segment_t::_hFileMap): Ditto.
 | |
| 	(server_shmmgr::segment_t::_attach_head): New private field.
 | |
| 	(server_shmmgr::segment_t::segment_t): Initialise new fields.
 | |
| 	Make non-inline.
 | |
| 	(server_shmmgr::segment_t::~segment_t): New method.
 | |
| 	(server_shmmgr::segment_t::is_deleted): Ditto.
 | |
| 	(server_shmmgr::segment_t::is_pending_delete): Ditto.
 | |
| 	(server_shmmgr::segment_t::mark_deleted): Ditto.
 | |
| 	(server_shmmgr::segment_t::attach): Ditto.
 | |
| 	(server_shmmgr::segment_t::detach): Ditto.
 | |
| 	(server_shmmgr::segment_t::find): Ditto.
 | |
| 	(class server_shmmgr::cleanup_t): New class.
 | |
| 	(server_shmmgr::_shm_atts): New private field.
 | |
| 	(server_shmmgr::shmat): Add a process object argument to replace
 | |
| 	the removed process_cache, cygpid and winpid arguments.  Remove
 | |
| 	the process_cache manipulations.  Move body of code to the
 | |
| 	segment_t::attach method.  Increment _shm_atts when required.
 | |
| 	Update tracing statements.
 | |
| 	(server_shmmgr::shmdt): Add a process object argument to replace
 | |
| 	the removed cygpid argument.  Move body of code to the
 | |
| 	segment_t::detach method.  Decrement _shm_atts when required.
 | |
| 	Update tracing statements.
 | |
| 	(server_shmmgr::shmget): Use the new segment_t::is_deleted method.
 | |
| 	(server_shmmgr::server_shmmgr): Initialise the new _shm_atts
 | |
| 	field.
 | |
| 	(server_shmmgr::delete_segment): Remove the CloseHandle code, as
 | |
| 	this is now done in the segment_t destructor.
 | |
| 	(client_request_shm::serve): Look up the client's process object
 | |
| 	and pass to the server_shmmgr::shmat and server_shmmgr::shmdt
 | |
| 	methods rather than passing the cache, winpid and cygpid.
 | |
| 	* cygserver_process.h: Add a cygpid to the process object to make
 | |
| 	it more useful and then pass process objects rather than winpids
 | |
| 	where possible.
 | |
| 	(cleanup_routine::cleanup): Change argument to be a pointer to a
 | |
| 	process object.
 | |
| 	(class process): Re-order fields for no discernible reason.
 | |
| 	(process::_cygpid): New field.
 | |
| 	(process::process): Add a cygpid argument.
 | |
| 	(process::winpid): New method.
 | |
| 	(process::cygpid): Ditto.
 | |
| 	(process::add): Make public, as it always should have been.
 | |
| 	(process_cache::process): Add a cygpid argument.
 | |
| 	* cygserver_process.cc (process::process): Add a cygpid argument
 | |
| 	and use it to initialise the `_cygpid' field.  Re-order
 | |
| 	initialisers to match new field order.
 | |
| 	(process::cleanup): Pass `this' rather than just the winpid to
 | |
| 	cleanup_routine::cleanup.
 | |
| 	(process_cache::process): Add a cygpid argument and pass it to the
 | |
| 	process object constructor.
 | |
| 	* include/sys/shm.h (shmatt_t): Make unsigned as per SUSv3.
 | |
| 	(shm_info::shm_atts): New field.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* cygserver_shm.cc (class server_shmmgr::segment_t): Add `_'
 | |
| 	prefix to the names of all fields.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* msg.cc: New file of stub functions, no functionality.
 | |
| 	* sem.cc: Ditto.
 | |
| 	* shm.cc (client_shmmgr::shmctl): Add support for an out shm_info
 | |
| 	buffer for the SHM_INFO command.
 | |
| 	(client_shmmgr::shmget): Use %X to print keys.
 | |
| 	* include/sys/ipc.h: Comment all fields and values.
 | |
| 	(IPC_PRIVATE): Change to be non-negative.
 | |
| 	* include/sys/msg.h: New file with SUSv3 and ipcs(8) interfaces.
 | |
| 	* include/sys/sem.h: Ditto.
 | |
| 	* include/sys/shm.h: Comment all fields and values.
 | |
| 	(struct shm_info): New struct.
 | |
| 	* cygserver_shm.h (client_request_shm::shminfo): Rename.
 | |
| 	(client_request_shm::shm_info): New method.
 | |
| 	(client_request_shm::_parameters.out.hFileMap): Move into union.
 | |
| 	(client_request_shm::_parameters.out.shminfo): Rename.
 | |
| 	(client_request_shm::_parameters.out.shm_info): New field.
 | |
| 	* cygserver_shm.cc (server_shmmgr::_shm_ids): Rename.
 | |
| 	(server_shmmgr::_shm_tot): New field.
 | |
| 	(server_shmmgr::shmctl): Rename `out_shminfo' argument.  Add
 | |
| 	`out_shm_info' argument.  Fill in the `out_shm_info' argument in
 | |
| 	the SHM_INFO command.
 | |
| 	(server_shmmgr::shmget): Check `shmflg' against the mode of
 | |
| 	existing segments as per Stevens 1990, p. 123.
 | |
| 	(server_shmmgr::server_shmmgr): Initialise the new `_shm_tot'
 | |
| 	field.
 | |
| 	(server_shmmgr::new_segment): Set ENOMEM if CreateFileMapping
 | |
| 	fails.  Pass `size' to new_segment.
 | |
| 	(server_shmmgr::new_segment): Add size argument and use it to
 | |
| 	check against and update the new `_shm_tot' field.
 | |
| 	(server_shmmgr::delete_segment): Update the new `_shm_tot' field.
 | |
| 	* Makefile.in (DLL_OFILES): Add new DLL object files.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* cygserver_transport_pipes.cc: The main change is to make the
 | |
| 	client try harder to connect to the server if it's previously
 | |
| 	connected, and so has good grounds for believing that the server
 | |
| 	is running.
 | |
| 	(MAX_WAIT_NAMED_PIPE_RETRY): Change to be an enumerator.
 | |
| 	(WAIT_NAMED_PIPE_TIMEOUT): Ditto.
 | |
| 	(transport_layer_pipes::accept): Use interlocked operators on
 | |
| 	`pipe_instance'.
 | |
| 	(transport_layer_pipes::close): Rearrange so that FlushFileBuffers
 | |
| 	and DisconnectNamedPipe are only called for accepted endpoints.
 | |
| 	Use interlocked operators on `pipe_instance'.
 | |
| 	(transport_layer_pipes::read): Use set_errno where required.
 | |
| 	(transport_layer_pipes::write): Ditto.
 | |
| 	(transport_layer_pipes::connect): Add local static variable
 | |
| 	`assume_cygserver'.  Set it if a connection is made to cygserver,
 | |
| 	clear it if a connection is not made even after retrying.  If set,
 | |
| 	ignore all errors from CreateFile and retry the connection.  Catch
 | |
| 	the situation where WaitNamedPipe fails to wait [sic] and add a
 | |
| 	`Sleep (0)' so that the server gets a chance to run.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* dcrt0.cc: Only check for cygserver if and when required.
 | |
| 	(dll_crt0_1): Remove call to `cygserver_init ()'.
 | |
| 	* fhandler_tty.cc (fhandler_tty_slave::open): Change the cygserver
 | |
| 	logic to allow for the fact that `cygserver_init ()' may not yet
 | |
| 	have been called.
 | |
| 	(fhandler_tty_slave::cygserver_attach_tty): Tweak the cygserver
 | |
| 	request logic to conform to the practice elsewhere in the code.
 | |
| 	* tty.cc (tty::common_init): Add an explicit call to
 | |
| 	`cygserver_init ()' if it hasn't already been called.
 | |
| 	* include/cygwin/cygserver.h (CYGSERVER_UNAVAIL): Rename from
 | |
| 	`CYGSERVER_DEAD'.
 | |
| 	(client_request_get_version::check_version): Make available in
 | |
| 	cygserver as well the DLL.
 | |
| 	(check_cygserver_available): Ditto.  Remove `check_version_too'
 | |
| 	argument.
 | |
| 	(cygserver_init): Ditto.  And likewise.
 | |
| 	* cygserver_client.cc (client_request_get_version::check_version):
 | |
| 	Make available in cygserver as well the DLL.
 | |
| 	(client_request::make_request): This may now be called without
 | |
| 	`cygserver_init ()' having been called first.  Detect this and
 | |
| 	call it as required.  Add tracing.
 | |
| 	(check_cygserver_available): Make available in cygserver as well
 | |
| 	the DLL.  Remove `check_version_too' argument and always check the
 | |
| 	version information.  And since this is called from within
 | |
| 	`cygserver_init ()', force `cygserver_running' before calling
 | |
| 	`client_request::make_request ()'.
 | |
| 	(cygserver_init): Make available in cygserver as well the DLL.
 | |
| 	Remove `check_version_too' argument.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* cygserver_shm.cc: Implement the ipcs(8) interfaces, IPC_INFO,
 | |
| 	SHM_STAT and SHM_INFO.
 | |
| 	(server_shmmgr::segment_t::sequence): New static field.
 | |
| 	(server_shmmgr::segment_t::key): Remove field, use the new
 | |
| 	ds.shm_perm.key field instead.
 | |
| 	(server_shmmgr::segment_t::shmid): Remove field.
 | |
| 	(server_shmmgr::segment_t::intid): New field.
 | |
| 	(server_shmmgr::segment_t::segment_t): Use the `key' argument to
 | |
| 	initialise `ds.shm_perm.key'.  Change from using `shmid' to
 | |
| 	`intid'.
 | |
| 	(server_shmmgr::_shmseg_cnt): Renamed from `_shmid_cnt'.
 | |
| 	(server_shmmgr::_intid_max): Renamed from `_shmid_max.
 | |
| 	(server_shmmgr::shmat): Move the out arguments to the start of the
 | |
| 	argument list.  Rename the `pid' argument as `cygpid'.  Add
 | |
| 	tracing.  Pass an intid to `find ()', not a shmid.
 | |
| 	(server_shmmgr::shmctl): Add separate out arguments.  Rename the
 | |
| 	`pid' argument as `cygpid'.  Add support for the ipcs(8)
 | |
| 	interfaces.  Add tracing.  Pass an intid to `find ()', not a
 | |
| 	shmid.
 | |
| 	(server_shmmgr::shmdt): Rename the `pid' argument as `cygpid'.
 | |
| 	Add tracing.  Pass an intid to `find ()', not a shmid.
 | |
| 	(server_shmmgr::shmget): Add a separate out arguments.  Rename the
 | |
| 	`pid' argument as `cygpid'.  Add tracing.
 | |
| 	(server_shmmgr::server_shmmgr): Update for new field names.
 | |
| 	(server_shmmgr::find_by_key): Update for the new `ds.shm_perm.key'
 | |
| 	field.
 | |
| 	(server_shmmgr::find): Update to use the new `segment_t::intid'
 | |
| 	field.
 | |
| 	(server_shmmgr::new_segment): Rename the `pid' argument as
 | |
| 	`cygpid'.  Check that the requested size is within bounds.  Handle
 | |
| 	new error result from `new_segment (key, HANDLE)'.
 | |
| 	(server_shmmgr::new_segment): Work with intids, not shmids.  Check
 | |
| 	that the new intid is within bounds.  Update for new field names.
 | |
| 	(server_shmmgr::delete_segment): Pass an intid to `find ()', not a
 | |
| 	shmid.  Update for new field names.
 | |
| 	(client_request_shm::serve): Check that the incoming message
 | |
| 	length is the size of the `_parameters.in' struct, not of the
 | |
| 	whole in/out parameter union.  Likewise, set the outgoing message
 | |
| 	length to the size of the `_parameters.out' struct.  Update for
 | |
| 	the new server_shmmgr interfaces.
 | |
| 	* include/sys/ipc.h (ipc_perm::key): New field.
 | |
| 	* include/sys/shm.h (SHM_INFO): New constant.
 | |
| 	* cygserver_ipc.h (IPCMNI): New constant.
 | |
| 	(ipc_int2ext): Add `sequence' argument and munge this into the
 | |
| 	external ipc id.
 | |
| 	(ipc_ext2int_subsys): Unmunge the sequence number from the
 | |
| 	external ipc id.
 | |
| 	(ipc_ext2int): Ditto.
 | |
| 	(ipc_inc_id): Remove.
 | |
| 	(ipc_dec_id): Remove.
 | |
| 	* cygserver_shm.h (SHMMAX): New constant.
 | |
| 	(SHMMIN): Ditto.
 | |
| 	(SHMMNI): Ditto.
 | |
| 	(SHMSEG): Ditto.
 | |
| 	(SHMALL): Ditto.
 | |
| 	(client_request_shm::_parameters): Re-arrange as a union of two
 | |
| 	separate structs, one for in arguments, the other for out.
 | |
| 	(client_request_shm::shmid): Update for the new parameter layout.
 | |
| 	(client_request_shm::ds): Ditto.
 | |
| 	(client_request_shm::info): New method.
 | |
| 	* shm.cc (client_shmmgr::_shmat_cnt): New static field.
 | |
| 	(client_shmmgr::shmat): Add locking.  Add tracing.
 | |
| 	(client_shmmgr::shmctl): Update for ipcs(8) commands.  Add
 | |
| 	tracing.  Add more argument checking.
 | |
| 	(client_shmmgr::shmdt): Add locking.  Add tracing.  Update the new
 | |
| 	`_shmat_cnt' field.
 | |
| 	(client_shmmgr::shmget): Add tracing.
 | |
| 	(client_shmmgr::fixup_shms_after_fork): Add tracing.  Add
 | |
| 	consistency checking.
 | |
| 	(client_shmmgr::attach): Add more tracing.
 | |
| 	(client_shmmgr::new_segment): Update the new `_shmat_cnt' field.
 | |
| 	(client_request_shm::client_request_shm): Update for the new
 | |
| 	parameter layout.  Set the outgoing message length to the size of
 | |
| 	the `_parameters.in' struct, not of the whole in/out parameter
 | |
| 	union.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* shm.cc: Remove the use of a static client_shmmgr object.
 | |
| 	(client_shmmgr::_instance): New static variable.
 | |
| 	(client_shmmgr::instance): Allocate a new shmmgr on the heap,
 | |
| 	rather than using a local static object.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* cygserver_transport.cc (create_server_transport): Fix
 | |
| 	cut-and-paste error.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* cygserver_client.cc (client_request::handle_request): Don't
 | |
| 	bother with the client request activity marker when compiled with
 | |
| 	debugging output.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* cygserver_transport_pipes.cc
 | |
| 	(MAX_WAIT_NAMED_PIPE_RETRY): New constant.
 | |
| 	(WAIT_NAMED_PIPE_TIMEOUT): Ditto.
 | |
| 	(transport_layer_pipes::close): The `pipe' field is now either
 | |
| 	NULL or a valid handle, and it should never have the value
 | |
| 	`INVALID_HANDLE_VALUE'.
 | |
| 	(transport_layer_pipes::read): Ditto.
 | |
| 	(transport_layer_pipes::write): Ditto.
 | |
| 	(transport_layer_pipes::connect): Ditto.
 | |
| 	(transport_layer_pipes::impersonate_client): Ditto.
 | |
| 	(transport_layer_pipes::connect): Ditto.  New, but still bogus,
 | |
| 	retry logic.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* cygserver_shm.cc (server_shmmgr::server_shmmgr): All fields have
 | |
| 	to be initialized now that the singleton is no longer static.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* cygserver_shm.cc (server_shmmgr::_instance): New static field.
 | |
| 	(server_shmmgr::_instance_once): Ditto.
 | |
| 	(server_shmmgr::initialise_instance): New static method.
 | |
| 	(server_shmmgr::instance): Use a pthread_once_t rather than
 | |
| 	relying on a local static variable.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* woutsup.h: Remove all uses of the C++ new and delete operators
 | |
| 	throughout cygserver until they are fully thread-safe.
 | |
| 	(safe_new0): New macro to replace the C++ new operator.
 | |
| 	(safe_new): Ditto.
 | |
| 	(safe_delete): New macro to replace the C++ delete operator.
 | |
| 	* cygserver_client.cc (client_request::handle_request): Replace
 | |
| 	all uses of the C++ new and delete operators with the new macros
 | |
| 	from "woutsup.h".
 | |
| 	(client_request::make_request): Ditto.
 | |
| 	* cygserver_process.cc (~process_cleanup): Ditto.
 | |
| 	(process::cleanup): Ditto.
 | |
| 	(process_cache::process): Ditto.
 | |
| 	(process_cache::check_and_remove_process): Ditto.
 | |
| 	* cygserver_shm.cc (server_shmmgr::new_segment): Ditto.
 | |
| 	(server_shmmgr::delete_segment): Ditto.
 | |
| 	* cygserver_transport.cc (create_server_transport): Ditto.
 | |
| 	* cygserver_transport_pipes.cc
 | |
| 	(transport_layer_pipes::accept): Ditto.
 | |
| 	* cygserver_transport_sockets.cc
 | |
| 	(transport_layer_sockets::accept): Ditto.
 | |
| 	* threaded_queue.cc (~threaded_queue): Ditto.
 | |
| 	(threaded_queue::worker_loop): Ditto.
 | |
| 	(threaded_queue::stop): Replace sleep(3) with win32 Sleep.
 | |
| 	* cygserver.cc (~server_request): Replace all uses of the C++ new
 | |
| 	and delete operators with the new macros from "woutsup.h".
 | |
| 	(server_submission_loop::request_loop): Ditto.
 | |
| 	(main): Ditto.  Replace sleep(3) with win32 Sleep.  Replace
 | |
| 	iostreams with FILEs.
 | |
| 	(print_usage): Replace iostreams with FILEs.
 | |
| 	(print_version): Ditto.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* cygserver_transport_sockets.cc
 | |
| 	(transport_layer_sockets::accept): Rename local variable
 | |
| 	`accept_fd' to avoid shadowing the `fd' field.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* cygwin_ipc.h: Moved (back) to "include/sys/ipc.h".
 | |
| 	* cygwin_shm.h: Moved (back) to "include/sys/shm.h".
 | |
| 	* include/sys/ipc.h: New file.
 | |
| 	* include/sys/shm.h: New file.
 | |
| 	* cygserver_shm.h: Update for new header file locations.
 | |
| 	* ipc.cc: Ditto.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* cygserver_client.cc (client_request::make_request): Comment out
 | |
| 	a verbose tracing statement.
 | |
| 	* cygserver_process.cc (process_cache::sync_wait_array): Fix
 | |
| 	broken assert.
 | |
| 	* include/cygwin/cygserver.h (class client_request): Remove excess
 | |
| 	use of `class' qualifier in declarations.
 | |
| 	(class client_request_get_version): Ditto.
 | |
| 	(class client_request_shutdown): Ditto.
 | |
| 	(class client_request_attach_tty): Ditto.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* cygserver_ipc.h: New file.
 | |
| 	* cygserver_shm.h: Re-written from scratch.
 | |
| 	* cygserver_shm.cc: Ditto.
 | |
| 	* shm.cc: Ditto.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* threaded_queue.h (class queue_request): Re-write.
 | |
| 	(threaded_queue_thread_function): Remove.
 | |
| 	(class queue_process_param): Remove.
 | |
| 	(class threaded_queue): Re-write.
 | |
| 	(class queue_submission_loop): New version of the old
 | |
| 	`queue_process_param' class.
 | |
| 	(TInterlockedExchangePointer): New templated function.
 | |
| 	(TInterlockedCompareExchangePointer): Ditto.
 | |
| 	* threaded_queue.cc (worker_function): Remove.
 | |
| 	(class threaded_queue): Re-write.
 | |
| 	(class queue_process_param): Remove.
 | |
| 	(class queue_submission_loop): New version of the old
 | |
| 	`queue_process_param' class.
 | |
| 	* include/cygwin/cygserver_process.h (process_cleanup): Re-write.
 | |
| 	(class process_process_param): Remove.
 | |
| 	(class cleanup_routine): Re-write.
 | |
| 	(class process): Re-write.
 | |
| 	(class process_cache): Re-write.
 | |
| 	* cygserver_process.cc (process_cleanup): Re-write.
 | |
| 	(class process_process_param): Remove.
 | |
| 	(class cleanup_routine): Re-write.
 | |
| 	(class process): Re-write.
 | |
| 	(class process_cache): Re-write.
 | |
| 	* cygserver.cc (request_count): Remove unused variable.
 | |
| 	(class server_request): Move methods inline.
 | |
| 	(class server_process_param): Remove.
 | |
| 	(class server_request_queue): Remove.
 | |
| 	(request_queue): Move into `main ()' and change type to
 | |
| 	`threaded_queue'.
 | |
| 	(request_loop): Remove.
 | |
| 	(class server_submission_loop): New version of the old
 | |
| 	`server_process_param' class.
 | |
| 	(shutdown_server): New variable.
 | |
| 	(client_request_shutdown::serve): Set `shutdown_server' to trigger
 | |
| 	shutdown.
 | |
| 	(handle_signal): Ditto.
 | |
| 	(main): Install signal handler for SIGINT rather than SIGQUIT.
 | |
| 	Use new interfaces for the `request_queue' and the `cache'.
 | |
| 	Create a `server_submission_loop' and add to the `request_queue'.
 | |
| 	Add check for the `shutdown_server' variable to the main loop.
 | |
| 	* cygserver_shm.cc (client_request_shm::serve): Release the
 | |
| 	process object after use.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* cygserver_client.cc (client_request::handle_request): Correct
 | |
| 	tracing statement.
 | |
| 	* cygserver_transport_pipes.cc: Remove local definition of
 | |
| 	FILE_FLAG_FIRST_PIPE_INSTANCE constant.
 | |
| 	* cygwin_ipc.h: Update copyright notice.
 | |
| 	* cygwin_shm.h: Ditto.
 | |
| 	* woutsup.h: Add definition of _WIN32_WINNT.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* cygserver_client (client_request::make_request): Replace my
 | |
| 	inappropriate use of set_errno () with error_code () throughout.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* include/cygwin/cygserver.h: Add forward declarations of class
 | |
| 	transport_layer_base and class process_cache to reduce
 | |
| 	dependencies between header files.
 | |
| 	* include/cygwin/cygserver_process.h: Add include of
 | |
| 	"threaded_queue.h".
 | |
| 	* cygserver.cc: Remove unnecessary cygserver header files.
 | |
| 	* cygserver_client.cc: Ditto.
 | |
| 	* cygserver_process.cc: Ditto.
 | |
| 	* cygserver_shm.cc: Ditto.
 | |
| 	* cygserver_shm.h: Ditto.
 | |
| 	* cygserver_transport_pipes.cc: Ditto.
 | |
| 	* dcrt0.cc: Ditto.
 | |
| 	* fhandler_tty.cc: Ditto.
 | |
| 	* tty.cc: Ditto.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* cygserver_shm.h: Replace <sys/shm.h> with "cygwin_shm.h" after
 | |
| 	merge from HEAD.
 | |
| 	* cygwin_ipc.h: Update with changes to include/sys/ipc.h lost in
 | |
| 	merge from HEAD.
 | |
| 	* cygwin_shm.h: Ditto.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* cygserver.cc: The tests for a duplicate server instance are now
 | |
| 	the responsibility of the transport layer.
 | |
| 	(request_loop): Use new `recoverable' flag in call to
 | |
| 	`cygserver_transport::accept ()' and shutdown on an unrecoverable
 | |
| 	error.
 | |
| 	(main): Never call `cygserver_init ()'.  Fake `cygserver_running'
 | |
| 	just for sending a shutdown request.
 | |
| 	* cygserver_client.cc (client_request::send): Comment out
 | |
| 	message-size tracing statements as verbose.
 | |
| 	(client_request::handle): Ditto.
 | |
| 	(client_request_get_version::check_version): #ifdef as DLL-only.
 | |
| 	(check_cygserver_available): Ditto.
 | |
| 	(cygserver_init): Ditto.
 | |
| 	* include/cygwin/cygserver.h
 | |
| 	(client_request_get_version::check_version): #ifdef as DLL-only.
 | |
| 	(check_cygserver_available): Ditto.
 | |
| 	(cygserver_init): Ditto.
 | |
| 	* include/cygwin/cygserver_transport.h
 | |
| 	(transport_layer_base::impersonate_client): #ifdef as
 | |
| 	cygserver-only.
 | |
| 	(transport_layer_base::revert_to_self): Ditto.
 | |
| 	(transport_layer_base::listen): Ditto.
 | |
| 	(transport_layer_base::accept): Ditto.  Add a `recoverable' out
 | |
| 	flag for error handling.
 | |
| 	* include/cygwin/cygserver_transport_sockets.h: Ditto.
 | |
| 	* include/cygwin/cygserver_transport_pipes.h: Ditto.
 | |
| 	(transport_layer_pipes): Change type of the `pipe_name' field.
 | |
| 	Remove the `inited' field, as unnecessary.  Add new
 | |
| 	`is_accepted_endpoint' field.
 | |
| 	* include/cygwin/cygserver_transport.cc
 | |
| 	(transport_layer_base::impersonate_client): #ifdef as
 | |
| 	cygserver-only.
 | |
| 	(transport_layer_base::revert_to_self): Ditto.
 | |
| 	* include/cygwin/cygserver_transport_sockets.cc
 | |
| 	(transport_layer_sockets::listen): #ifdef as cygserver-only.
 | |
| 	(transport_layer_sockets::accept): #ifdef as cygserver-only.
 | |
| 	Analyse any errno from `accept ()' and set `recoverable' as
 | |
| 	appropriate.
 | |
| 	* cygserver_transport_pipes.cc: Add local #define of
 | |
| 	`FILE_FLAG_FIRST_PIPE_INSTANCE'.
 | |
| 	(pipe_instance_lock_once): New variable.
 | |
| 	(pipe_instance_lock): Ditto.
 | |
| 	(pipe_instance): Ditto.
 | |
| 	(initialise_pipe_instance_lock): New function.
 | |
| 	(transport_layer_pipes::transport_layer_pipes): Change
 | |
| 	initialization of `pipe_name'.  Initialize `is_accepted_endpoint'
 | |
| 	as appropriate.  Remove use of `inited'.
 | |
| 	(transport_layer_pipes::impersonate_client): #ifdef as
 | |
| 	cygserver-only.
 | |
| 	(transport_layer_pipes::revert_to_self): Ditto.
 | |
| 	(transport_layer_pipes::listen): Ditto.
 | |
| 	(transport_layer_pipes::accept): Ditto.  Keep track of how often
 | |
| 	many named pipes have been created, in the `pipe_instance'
 | |
| 	variable, and pass the `FILE_FLAG_FIRST_PIPE_INSTANCE' flag on the
 | |
| 	open of the first instance.  Analyse the error code from
 | |
| 	`CreateNamedPipe ()' and set the `recoverable' flag as
 | |
| 	appropriate.
 | |
| 	(transport_layer_pipes::close): Update the `pipe_instance' count.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* woutsup.h (cygserver_running): Add declaration.
 | |
| 	(api_fatal): Eliminate.
 | |
| 	* include/cygwin/cygserver.h
 | |
| 	(client_request_get_version::check_version): Change return type to
 | |
| 	bool.
 | |
| 	(check_cygserver_available): New function.
 | |
| 	(cygserver_init): Add check_version_too argument.
 | |
| 	* cygserver_client.cc (allow_daemon): Make a bool.
 | |
| 	(client_request_get_version::make_request): See errno on error.
 | |
| 	Remove special case for CYGSERVER_REQUEST_GET_VERSION; this is now
 | |
| 	handled in cygserver_init().
 | |
| 	(client_request_get_version::check_version): Use syscall_printf()
 | |
| 	instead of api_fatal(). Return true if cygserver version is
 | |
| 	compatible.
 | |
| 	(check_cygserver_available): New function; code moved here from
 | |
| 	cygserver_init().
 | |
| 	(cygserver_init): Move some code into check_cygserver_available().
 | |
| 	* cygserver.cc (__set_errno): Copy from debug.cc so that
 | |
| 	set_errno() can be used when __OUTSIDE_CYGWIN__.
 | |
| 	(main): Call cygserver_init() to set up cygserver_running and add
 | |
| 	checks against this to (try and) prevent multiple copies of
 | |
| 	cygserver running simultaneously.  Remember to delete all
 | |
| 	transport connections so that (one day) the transport classes can
 | |
| 	tidy up on cygserver shutdown.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* cygserver.cc (main): Adjust tracing output for a cleaner display
 | |
| 	when compiled without --enable-debugging.
 | |
| 	* threaded_queue.cc (threaded_queue::cleanup): Ditto.
 | |
| 	(queue_process_param::stop): Ditto.
 | |
| 	* include/cygwin/cygserver.h
 | |
| 	(client_request::make_request): Make non-virtual.
 | |
| 	(client_request::send): Make virtual and protected, not private.
 | |
| 	(client_request_attach_tty::send): New virtual method.
 | |
| 	* cygserver_client.cc: Use the `msglen()' accessor rather than
 | |
| 	`_header.msglen' throughout.
 | |
| 	(client_request_attach_tty::send): New method.
 | |
| 	(client_request::make_request): Remove the explicit close of
 | |
| 	`transport' as it is closed on deletion.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* include/cygwin/cygserver.h: Change the client_request classes to
 | |
| 	give greater encapsulation and to allow variable length requests
 | |
| 	and replies.
 | |
| 	(enum cygserver_request_code): Now client_request::request_code_t.
 | |
| 	(class request_header): Now client_request::header_t.  Make a
 | |
| 	union of the request_code and the error_code.  The `cb' field,
 | |
| 	which was the buffer length, is now the `size_t msglen' field.
 | |
| 	(struct request_get_version): Now
 | |
| 	client_request_get_version::request_get_version.
 | |
| 	(struct request_shutdown): Remove unused type.
 | |
| 	(struct request_attach_tty): Now
 | |
| 	client_request_attach_tty::request_attach_tty.
 | |
| 	(client_request::_buf): Make field const.
 | |
| 	(client_request::_buflen): New const private field.
 | |
| 	(client_request::request_code): New accessor.
 | |
| 	(client_request::error_code): Ditto.
 | |
| 	(client_request::msglen): Ditto.
 | |
| 	(client_request::handle_request): New static method.
 | |
| 	(client_request::make_request): New virtual method.
 | |
| 	(client_request::handle): New method.
 | |
| 	(client_request::send): Make private.
 | |
| 	(client_request_get_version::check_version): New method.
 | |
| 	(client_request_get_version::serve): Make private.
 | |
| 	(client_request_get_version::version): Ditto.
 | |
| 	(client_request_shutdown::serve): Ditto.
 | |
| 	(client_request_attach_tty::req): Ditto.
 | |
| 	(client_request_attach_tty::serve): Ditto.
 | |
| 	(client_request_attach_tty::from_master): Make method const.
 | |
| 	(client_request_attach_tty::from_master): Ditto.
 | |
| 	* cygserver_client.cc
 | |
| 	(client_request_get_version::client_request_get_version): Track
 | |
| 	changes to the client_request classes.
 | |
| 	(client_request_attach_tty::client_request_attach_tty): Ditto.
 | |
| 	(client_request_get_version::check_version): New method to
 | |
| 	encapsulate code from cygserver_init().
 | |
| 	(client_request_shutdown::client_request_shutdown): Move into
 | |
| 	"cygserver.cc".
 | |
| 	(client_request::send): Track changes to the client_request
 | |
| 	classes.  Add more error checking.
 | |
| 	(client_request::handle_request): New static method containing the
 | |
| 	first half of the old server_request::process() code.
 | |
| 	(client_request::make_request): New method to replace the old
 | |
| 	cygserver_request() function.
 | |
| 	(client_request::handle): New method containing the second half of
 | |
| 	the old server_request::process() code.
 | |
| 	(cygserver_init): Track changes to the client_request classes.  In
 | |
| 	particular, some code moved into the
 | |
| 	client_request_get_version::check_version() method.
 | |
| 	* cygserver.cc (client_request_attach_tty::serve): Track changes
 | |
| 	to the client_request classes.  In particular, only return a reply
 | |
| 	body if some handles are successfully duplicated for the client.
 | |
| 	And remove goto's.
 | |
| 	(client_request_get_version::serve): Track changes to the
 | |
| 	client_request classes.
 | |
| 	(client_request_shutdown::serve): Ditto.
 | |
| 	(class client_request_invalid): Dead, and so young too.
 | |
| 	(server_request::request_buffer): Remove unnecessary field.
 | |
| 	(client_request_shutdown::client_request_shutdown): Moved here
 | |
| 	from "cygserver_client.cc".
 | |
| 	(server_request::process): Implementation moved into the new
 | |
| 	client_request::handle_request() and client_request::handle()
 | |
| 	methods.
 | |
| 	* cygserver_shm.h (class client_request_shm): Put client- and
 | |
| 	server-specific interfaces inside #ifdef/#ifndef __INSIDE_CYGWIN__
 | |
| 	guards.
 | |
| 	(client_request_shm::serve): Make private.
 | |
| 	* cygserver_shm.cc
 | |
| 	(client_request_shm::client_request_shm): Track changes to the
 | |
| 	client_request classes.
 | |
| 	(client_request_shm::serve): Ditto
 | |
| 	* shm.cc (client_request_shm::client_request_shm): Ditto.  Use
 | |
| 	alloc_sd() rather than set_security_attribute() to get access to
 | |
| 	the SECURITY_DESCRIPTOR length, so that we can use it to set the
 | |
| 	request body length.
 | |
| 	(shmat): Track changes to the client_request classes. In
 | |
| 	particular, allocate client_request objects on the stack rather
 | |
| 	than on the heap, and use the client_request::make_request()
 | |
| 	method rather than the old cygserver_request() function.
 | |
| 	(shmdt): Ditto.
 | |
| 	(shmctl): Ditto.
 | |
| 	(shmget): Ditto.
 | |
| 	* fhandler_tty.cc (fhandler_tty_slave::cygserver_attach_tty): Ditto.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* include/cygwin/cygserver_transport.h
 | |
| 	(cygserver_transport::read): Change buffer type to void *.
 | |
| 	(cygserver_transport::write): Ditto.
 | |
| 	* include/cygwin/cygserver_transport_sockets.h
 | |
| 	(cygserver_transport_sockets::read): Ditto.
 | |
| 	(cygserver_transport_sockets::write): Ditto.
 | |
| 	* include/cygwin/cygserver_transport_pipes.h
 | |
| 	(cygserver_transport_pipes::read): Ditto.
 | |
| 	(cygserver_transport_pipes::write): Ditto.
 | |
| 	* cygserver_transport_sockets.cc
 | |
| 	(cygserver_transport_sockets::read): Ditto.
 | |
| 	(cygserver_transport_sockets::write): Ditto.
 | |
| 	* cygserver_transport_pipes.cc
 | |
| 	(cygserver_transport_pipes::read): Ditto. Set errno on error, to
 | |
| 	match behaviour of cygserver_transport_sockets class.
 | |
| 	(cygserver_transport_pipes::write): Ditto.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* cygserver.cc (version): New static variable.
 | |
| 	(server_request_queue::add_connection): Remove my gratuitous use
 | |
| 	of studly caps.
 | |
| 	(setup_privileges): Declare static.
 | |
| 	(handle_signal): Ditto.
 | |
| 	(longopts): Make a local variable of main().
 | |
| 	(opts): Ditto.
 | |
| 	(print_usage): New function.
 | |
| 	(print_version): Ditto (tip of the hat to Joshua Daniel Franklin
 | |
| 	for inspiration here).
 | |
| 	(main): More argument checking.  Add --help and --version options.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* include/cygwin/cygserver.h (client_request::serve): Make pure
 | |
| 	virtual.
 | |
| 	* cygserver.cc (client_request::serve): Remove definition of pure
 | |
| 	virtual method.
 | |
| 	(class client_request_invalid): New class.
 | |
| 	(server_request::process): Use new client_request_invalid
 | |
| 	class. And remove goto's.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* cygserver.cc (class server_request): Add virtual destructor.
 | |
| 	(server_request_queue::addConnection): New method to replace bad
 | |
| 	virtual add() method.
 | |
| 	(request_loop): Replace call to queue->add() with call to
 | |
| 	queue->addConnection().
 | |
| 	(server_request::server_request): Use field initialization.
 | |
| 	(server_request::~server_request): New virtual destructor.
 | |
| 	(server_request::process): Remove close and delete of
 | |
| 	transport_layer_base object. It is deleted by the server_request's
 | |
| 	own destructor and closed by its own destructor.
 | |
| 	* include/cygwin/cygserver.h
 | |
| 	(client_request::operator request_header): Remove unused method.
 | |
| 	* cygserver_client.cc: Ditto.
 | |
| 	* include/cygwin/cygserver_process.h
 | |
| 	(class cleanup_routine): Add virtual destructor.
 | |
| 	(cleanup_routine::cleanup): Make pure virtual.
 | |
| 	(class process_cache): Make destructor non-virtual.
 | |
| 	(process_cache::add): Ditto.
 | |
| 	* cygserver_process.cc
 | |
| 	(cleanup_routine::~cleanup_routine): New virtual destructor.
 | |
| 	* include/cygwin/cygserver_transport.h
 | |
| 	(class transport_layer_base): Add virtual destructor.
 | |
| 	* cygserver_transport.cc
 | |
| 	(transport_layer_base::~transport_layer_base): New virtual
 | |
| 	destructor.
 | |
| 	* include/cygwin/cygserver_transport_pipes.h
 | |
| 	(class transport_layer_pipes): Add virtual destructor.
 | |
| 	* cygserver_transport_pipes.cc
 | |
| 	(transport_layer_pipes::~transport_layer_pipes): New virtual
 | |
| 	destructor.
 | |
| 	(transport_layer_pipes::close): Null out handle after closing.
 | |
| 	* include/cygwin/cygserver_transport_sockets.h
 | |
| 	(class transport_layer_sockets): Add virtual destructor.
 | |
| 	* cygserver_transport_sockets.cc
 | |
| 	(transport_layer_sockets::~transport_layer_sockets): New virtual
 | |
| 	destructor.
 | |
| 	(transport_layer_sockets::close): Null out fd after closing.
 | |
| 	* threaded_queue.h (class queue_request): Add virtual destructor.
 | |
| 	(queue_request::process): Make pure virtual.
 | |
| 	* threaded_queue.cc (~queue_request): New virtual destructor.
 | |
| 	(queue_request::process): Remove definition of pure virtual
 | |
| 	method.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* include/cygwin/cygserver.h (client_request::send): Make
 | |
| 	non-virtual.
 | |
| 	(class client_request_attach_tty): Put client- and server-specific
 | |
| 	interfaces inside #ifdef/#ifndef __INSIDE_CYGWIN__ guards.
 | |
| 	* cygserver_client.cc: Ditto.
 | |
| 	(cygserver_init): Fix error handling.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* cygserver.cc: Throughout the code, check and correct level of
 | |
| 	the XXX_printf() functions used. Comment out several of the
 | |
| 	debug_printf() calls with "// verbose:".  Reformat and correct
 | |
| 	typos of some of the XXX_printf() formats.
 | |
| 	* cygserver_process.cc: Ditto.
 | |
| 	* cygserver_shm.cc: Ditto.
 | |
| 	* cygserver_transport_pipes.cc: Ditto.
 | |
| 	* cygserver_transport_sockets.cc: Ditto.
 | |
| 	* shm.cc (hi_ulong): New function to allow printing of a 64-bit
 | |
| 	key with current small_printf implementation.
 | |
| 	(lo_ulong): Ditto.
 | |
| 	(client_request_shm::client_request_shm): Use hi_ulong() and
 | |
| 	lo_ulong() in call to debug_printf().
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* cygserver_shm.cc: Remove #define __INSIDE_CYGWIN__ from around
 | |
| 	<sys/shm.h> as it no longer contains any internal code.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* include/sys/ipc.h (IPC_PRIVATE): Add cast to key_t.
 | |
| 	(IPC_INFO): New flag for ipcs(8).
 | |
| 	(IPC_RMID IPC_SET IPC_STAT): Renumber.
 | |
| 	* include/sys/shm.h (SHM_RDONLY SHM_RND): Renumber with distinct
 | |
| 	values [sic].
 | |
| 	(class _shmattach): Internal type moved to "cygserver_shm.h".
 | |
| 	(class shmnode): Ditto.
 | |
| 	(class shmid_ds): Ditto.
 | |
| 	(struct shmid_ds): Add spare fields.
 | |
| 	(struct shminfo): New type for IPC_INFO interface.
 | |
| 	* cygserver_shm.h: Remove obsolete #if 0 ... #endif block.
 | |
| 	(class shm_cleanup): Remove unused class.
 | |
| 	(struct _shmattach): Internal type moved from <sys/shm.h>.
 | |
| 	(struct shmnode): Ditto.
 | |
| 	(struct int_shmid_ds): Ditto. Renamed to avoid name clash with
 | |
| 	public interface struct shmid_ds. Use the shmid_bs structure as a
 | |
| 	field.
 | |
| 	* cygserver_shm.cc: Remove obsolete #if 0 ... #endif block.
 | |
| 	(client_request_shm::serve): Update for redefinition of
 | |
| 	int_shmid_ds structure.
 | |
| 	* shm.cc (build_inprocess_shmds): Ditto.
 | |
| 	(fixup_shms_after_fork): Ditto.
 | |
| 	(shmctl): Ditto.
 | |
| 	(shmget): Ditto. Remove obsolete #if 0 ... #endif code.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* include/cygwin/cygserver_transport.h
 | |
| 	(transport_layer_base::transport_layer_base): Remove since it is
 | |
| 	now redundant.
 | |
| 	(transport_layer_base::listen): Make a pure virtual method.
 | |
| 	(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.cc
 | |
| 	(transport_layer_base::transport_layer_base): Remove since it is
 | |
| 	now redundant.
 | |
| 	(transport_layer_base::listen): Remove since it is now a pure
 | |
| 	virtual method.
 | |
| 	(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.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* cygserver.cc (check_and_dup_handle): Only use security code if
 | |
| 	running on NT, i.e. if wincap.has_security().
 | |
| 	(client_request_attach_tty::serve): Add check for has_security().
 | |
| 	* cygserver_process.cc (process_cache::process): Use DWORD winpid
 | |
| 	throughout to avoid win32 vs. cygwin pid confusion.
 | |
| 	(process::process): Ditto.
 | |
| 	* cygserver_shm.cc (client_request_shm::serve): Only use security
 | |
| 	code if running on NT, i.e. if wincap.has_security().
 | |
| 	* cygserver_shm.h (client_request_shm::parameters.in): Replace the
 | |
| 	ambiguous pid field with cygpid and winpid fields.
 | |
| 	(client_request_shm::client_request_shm): Reduce to only two
 | |
| 	client-side constructors: one for SHM_CREATE, another for all the
 | |
| 	other requests.
 | |
| 	* shm.cc (client_request_shm::client_request_shm):
 | |
| 	Ditto. Initialize cygpid and winpid fields here. On NT initialize
 | |
| 	sd_buf here using set_security_attribute() to make use of the euid
 | |
| 	and egid.
 | |
| 	(shmat): Use new client_request_shm constructor.
 | |
| 	(shmdt): Ditto.
 | |
| 	(shmctl): Ditto.
 | |
| 	(shmget): Ditto. Remove security code, now performed in the
 | |
| 	relevant client_request_shm constructor.
 | |
| 	* include/cygwin/cygserver_process.h: (class cleanup_routine):
 | |
| 	Change winpid type to DWORD.
 | |
| 	(class process): Ditto.
 | |
| 
 | |
| 2002-09-22  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* woutsup.h: New file.
 | |
| 	* cygserver.cc: Use "woutsup.h" and new XXX_printf macros.
 | |
| 	(getfunc): New function, copied verbatim from "strace.cc".
 | |
| 	(__cygserver__printf): New function.
 | |
| 	* cygserver_client.cc: Use "woutsup.h" and new XXX_printf macros.
 | |
| 	* cygserver_process.cc: Ditto.
 | |
| 	* cygserver_shm.cc: Ditto.
 | |
| 	* cygserver_transport.cc: Ditto.
 | |
| 	* cygserver_transport_pipes.cc: Ditto.
 | |
| 	* cygserver_transport_sockets.cc: Ditto.
 | |
| 	* threaded_queue.cc: Ditto.
 | |
| 	* shm.cc: Remove trailing \n from XXX_printf format strings.
 | |
| 	* Makefile.in: Remove special __OUTSIDE_CYGWIN__ case for
 | |
| 	cygserver_shm.cc.
 | |
| 
 | |
| 2002-09-21  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* init.cc (dll_entry): Temporarily disable thread detach code.
 | |
| 
 | |
| 2002-09-21  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler.cc (fhandler_base::dup): Don't set handle on failure.
 | |
| 	Caller has already taken care of that.
 | |
| 	* fhandler_console.cc (fhandler_console::open): Initialize handles to
 | |
| 	NULL.
 | |
| 	(fhandler_console::close): Ditto.
 | |
| 
 | |
| 2002-09-21  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	GNUify non-GNU formatted functions calls throughout.
 | |
| 
 | |
| 2002-09-21  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* cygwin_ipc.h: Move to "include/cygwin/ipc.h".
 | |
| 	* cygwin_shm.h: Move to "include/cygwin/shm.h".
 | |
| 	* include/cygwin/ipc.h: New file.
 | |
| 	* include/cygwin/shm.h: New file.
 | |
| 	* ipc.c:c Update <cygwin/ipc.h> include.
 | |
| 	* cygserver_shm.cc: Update <cygwin/shm.h> include.
 | |
| 	* shm.cc: Ditto.
 | |
| 
 | |
| 2002-09-21  Robert Collins <rbtcollins@hotmail.com>
 | |
| 
 | |
| 	* pthread.cc: Use class::call for converted pthread and semaphore
 | |
| 	calls.
 | |
| 	* thread.cc: Convert various __pthread_call and __sem_call to
 | |
| 	pthread::call and sem::call throughout.
 | |
| 	* pthread.h (__pthread_cancel): Convert to pthread::cancel.
 | |
| 	(__pthread_join): Convert to pthread::join.
 | |
| 	(__pthread_detach): Convert to pthread::detach.
 | |
| 	(__pthread_create): Convert to pthread::create.
 | |
| 	(__pthread_once): Convert to pthread::once.
 | |
| 	(__pthread_atfork): Convert to pthread::atfork.
 | |
| 	(__pthread_suspend): Convert to pthread::suspend.
 | |
| 	(__pthread_continue): Convert to pthread::resume.
 | |
| 	(__sem_init): Convert to semaphore::init.
 | |
| 	(__sem_destroy): Convert to semaphore::destroy.
 | |
| 	(__sem_wait): Convert to semaphore::wait.
 | |
| 	(__sem_trywait): Convert to semaphore::trywait.
 | |
| 	(__sem_post): Convert to semaphore::post.
 | |
| 
 | |
| 2002-09-21  Robert Collins <rbtcollins@hotmail.com>
 | |
| 
 | |
| 	* thread.cc: Finish the removal of the separate pthread_key
 | |
| 	destructor list.
 | |
| 	Remove all pthread_key_destructor and pthread_key_destructor_list
 | |
| 	references throughout.
 | |
| 	(pthread::exit): Call the new pthread_key interface to activate
 | |
| 	destructors.
 | |
| 	(pthread_key::keys): Change into a list.
 | |
| 	(pthread_key::saveAKey): New method, used via forEach.
 | |
| 	(pthread_key::restoreAKey): Ditto.
 | |
| 	(pthread_key::destroyAKey): Ditto.
 | |
| 	(pthread_key::fixup_before_fork): Use the List::forEach functionality.
 | |
| 	(pthread_key::fixup_after_fork): Ditto.
 | |
| 	(pthread_key::runAllDestructors): New method implementation.
 | |
| 	(pthread_key::pthread_key): Use List::Insert rather than custom list
 | |
| 	code.
 | |
| 	(pthread_key::~pthread_key): Use List::Remove for the same reason.
 | |
| 	* thread.h: Remove all pthread_key_destructor and
 | |
| 	pthread_key_destructor_list references throughout.
 | |
| 	(List): Move the interface above pthread_key in the header.
 | |
| 	Use atomic operations during insert and delete.
 | |
| 	(List::forEach): A generic interface for doing something on each node.
 | |
| 	(pthread_key::runAllDestructors): New method, run all destructors.
 | |
| 	(pthread_key::fork_buf): Make private.
 | |
| 	(pthread_key::run_destructor): Ditto.
 | |
| 	(pthread_key::saveAKey): New method for clearer source.
 | |
| 	(pthread_key::restoreAKey): Ditto.
 | |
| 	(pthread_key::destroyAKey): Ditto.
 | |
| 	(MTinterface::destructors): Remove.
 | |
| 
 | |
| 2002-09-21  Robert Collins <rbtcollins@hotmail.com>
 | |
| 
 | |
| 	* thread.cc: Partial refactoring of pthread_key destructor
 | |
| 	handling. Loosely based on Thomas Pfaff's work.
 | |
| 	(pthread_key_destructor_list::Insert): Remove.
 | |
| 	(pthread_key_destructor_list::Pop): Remove.
 | |
| 	(pthread_key_destructor_list::IterateNull): Call the key's
 | |
| 	run_destructor method.
 | |
| 	(pthread_key::pthread_key): Initialize new member.
 | |
| 	(pthread_key::get): Mark as const for correctness.
 | |
| 	(pthread_key::run_destructor): Implement.
 | |
| 	* thread.h (pthread_key::get): Mark as const for correctness.
 | |
| 	(pthread_key::run_destructor): Declare.
 | |
| 	(List): New template class that implements a generic list.
 | |
| 	(pthread_key_destructor_list): Inherit from List, and remove
 | |
| 	now duplicate functions.
 | |
| 
 | |
| 2002-09-21  Robert Collins <rbtcollins@hotmail.com>
 | |
| 
 | |
| 	* thread.cc: Change verifyable_object_isvalid calls with
 | |
| 	PTHREAD_CONDATTR_MAGIC, PTHREAD_MUTEXATTR_MAGIC, PTHREAD_COND_MAGIC,
 | |
| 	SEM_MAGIC to objecttype::isGoodObject() calls throughout.
 | |
| 	(pthread_condattr::isGoodObject): Implement.
 | |
| 	(pthread_mutex::isGoodInitializer): Implement.
 | |
| 	(pthread_mutex::isGoodInitializerOrObject): Minor bugfix in the
 | |
| 	check for verifyable_object_isvalid result.
 | |
| 	(pthread_mutexattr::isGoodObject): Implement.
 | |
| 	(pthread_cond::isGoodObject): Ditto.
 | |
| 	(pthread_cond::isGoodInitializer): Ditto.
 | |
| 	(pthread_cond::isGoodInitializerOrObject): Ditto.
 | |
| 	(semaphore::isGoodObject): Ditto.
 | |
| 	* thread.h (pthread_mutex::isGoodInitializer): Declare.
 | |
| 	(pthread_condattr::isGoodObject): Ditto.
 | |
| 	(pthread_cond::isGoodObject): Const correctness.
 | |
| 	(pthread_cond::isGoodInitializer): Declare.
 | |
| 	(pthread_cond::isGoodInitializerOrObject): Ditto.
 | |
| 	(semaphore::isGoodObject): Const correctness.
 | |
| 
 | |
| 2002-09-21  Robert Collins <rbtcollins@hotmail.com>
 | |
| 
 | |
| 	* thread.cc: Change verifyable_object_isvalid calls with
 | |
| 	PTHREAD_MUTEX_MAGIC and PTHREAD_KEY_MAGIC and PTHREAD_ATTR_MAGIC to
 | |
| 	::isGoodObject() calls throughout.
 | |
| 	(MTinterface::Init): Remove dead code.
 | |
| 	(pthread_attr::isGoodObject): Implement.
 | |
| 	(pthread_key::isGoodObject): Implement.
 | |
| 	(pthread_mutex::isGoodObject): Implement.
 | |
| 	(pthread_mutex::isGoodInitializerOrObject): Implement.
 | |
| 	(pthread::isGoodObject): Update signature.
 | |
| 	* thread.h (pthread_key::isGoodObject): Declare.
 | |
| 	(pthread_attr::isGoodObject): Ditto.
 | |
| 	(pthread_mutex::isGoodObject): Ditto.
 | |
| 	(pthread_mutex::isGoodInitializerOrObject): Ditto.
 | |
| 	(pthread::isGoodObject): Change to a const parameter for const
 | |
| 	correctness.
 | |
| 	(pthread_mutexattr::isGoodObject): Declare.
 | |
| 	(pthread_condattr::isGoodObject): Ditto.
 | |
| 	(pthread_cond::isGoodObject): Ditto.
 | |
| 	(semaphore::isGoodObject): Ditto.
 | |
| 
 | |
| 2002-09-19  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	Cleanup calls to CreateFile throughout.
 | |
| 	* dcrt0.cc (__api_fatal): Correctly check for failing return from CreateFile.
 | |
| 	* assert.cc (__assert): Don't check return value from CreateFile for NULL.
 | |
| 	* fhandler_console.cc (set_console_state_for_spawn): Ditto.
 | |
| 	* fork.cc (fork_parent): Ditto.
 | |
| 
 | |
| 2002-09-18  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygthread.cc (cygthread::initialized): Avoid copying on fork or some
 | |
| 	threads may not end up in the pool.
 | |
| 	(cygthread::new): Avoid race when checking for initialized.  Add
 | |
| 	debugging code.
 | |
| 
 | |
| 2002-09-18  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* fhandler.cc (fhandler_base::raw_read): Add case for
 | |
| 	ERROR_INVALID_HANDLE due to Win95 directories.
 | |
| 	(fhandler_base::open): Handle errors due to Win95 directories.
 | |
| 	(fhandler_base::close): Add get_nohandle () test.
 | |
| 	(fhandler_base::set_close_on_exec): Ditto.
 | |
| 	(fhandler_base::fork_fixup): Ditto.
 | |
| 	(fhandler_base::lock): Change error code to Posix EINVAL.
 | |
| 	(fhandler_base::dup): If get_nohandle (), set new value to
 | |
| 	INVALID_HANDLE_VALUE instead of NULL.
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::fstat): Call fstat_by_name
 | |
| 	if get_nohandle ().  Remove extraneous element from strpbrk.
 | |
| 	(fhandler_disk_file::open): Remove test for Win95 directory.
 | |
| 
 | |
| 	* fhandler_random.cc (fhandler_dev_random::open): Add set_nohandle ().
 | |
| 	* fhandler_clipboard.cc (fhandler_dev_clipboard::open): Ditto.
 | |
| 	* fhandler_zero.cc (fhandler_dev_zero::open): Ditto.
 | |
| 	(fhandler_dev_zero::close): Delete.
 | |
| 	* fhandler.h (class fhandler_dev_zero): Ditto.
 | |
| 
 | |
| 2002-09-17  Robert Collins <rbtcollins@hotmail.com>
 | |
| 
 | |
| 	* thread.cc (pthread_key::set): Preserve GetLastError(). Reported
 | |
| 	by Thomas Pffaf.
 | |
| 
 | |
| 2002-09-17  Robert Collins  <rbtcollins@hotmail.com>
 | |
| 
 | |
| 	This work inspires by Thomas Pfaff's pthread_fork patch (1).
 | |
| 	* fork.cc (fork_child): Remove MTinterface fixup call, it's
 | |
| 	adsorbed by pthread::atforkchild.
 | |
| 	Rename __pthread_atforkchild to pthread::atforkchild to give
 | |
| 	access to private members.
 | |
| 	(fork_parent): Rename __pthread_atforkparent to
 | |
| 	pthread::atforkparent to give it access to private members.
 | |
| 	Ditto for __pthread_atforkprepare.
 | |
| 	* thread.cc: Fix some formatting problems throughout.
 | |
| 	(MTinterface::fixup_before_fork): Implement.
 | |
| 	(MTinterface::fixup_after_fork): Fix pthread_keys.
 | |
| 	(pthread_key::keys): Implement.
 | |
| 	(pthread_key::fixup_before_fork): Ditto.
 | |
| 	(pthread_key::fixup_after_fork): Ditto.
 | |
| 	(pthread_key::pthread_key): Add to pthread_key::keys.
 | |
| 	(pthread_key::~pthread_key): Remove from pthread_key::keys.
 | |
| 	(pthread_key::saveKeyToBuffer): Implement.
 | |
| 	(pthread_key::recreateKeyFromBuffer): Ditto.
 | |
| 	(pthread::atforkprepare): Prepare all MT classes for fork.
 | |
| 	(pthread::atforkchild): And fix them up afterwards.
 | |
| 	* thread.h (pthread_key): Buffer the key value during
 | |
| 	fork in fork_buf.
 | |
| 	List the keys needing to be fixed up in a linked list with
 | |
| 	head pthread_key::keys.
 | |
| 	(pthread): Move atfork cygwin internal calls into the class.
 | |
| 	(MTInterface): Provide a fixup_before_fork for objecst that
 | |
| 	need to save state.
 | |
| 	(__pthread_atforkprepare): Remove.
 | |
| 	(__pthread_atforkparent): Remove.
 | |
| 	(__pthread_atforkchild): Remove.
 | |
| 
 | |
| 2002-09-16  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* init.cc: Cleanup slightly and remove obsolete code.
 | |
| 
 | |
| 2002-09-11  Robert Collins  <rbtcollins@hotmail.com>
 | |
| 
 | |
| 	* init.cc (dll_entry): On thread detach, if the thread hasn't
 | |
| 	exit()ed, do so.
 | |
| 	* pthread.cc (pthread_getsequence_np): Remove the
 | |
| 	__pthread_getsequence_np wrapper. This requires errno.h.
 | |
| 	* thread.cc (pthread::self): Instantiate a new pthread object
 | |
| 	when called and none exists. return a NULL object if instantiation
 | |
| 	fails.
 | |
| 	(pthread::precreate): Factor out common code.
 | |
| 	(pthread::postcreate): Ditto.
 | |
| 	(pthread::create): Ditto.
 | |
| 	(pthread::exit): Remove the TLS value when we exit to prevent
 | |
| 	double exits.
 | |
| 	(MTinterface::Init): Bugfix - don't mark the TLS index as created
 | |
| 	if one was not allocated.
 | |
| 	Apply Extract Method to move pthread specific initialisation into
 | |
| 	pthread.
 | |
| 	(pthread::initMainThread): Extracted method from MTinterface::Init.
 | |
| 	(pthread::setTlsSelfPointer): Extracted method from various pthread
 | |
| 	calls, to make reading those functions easier.
 | |
| 	(pthread::setThreadIdtoCurrent): Ditto.
 | |
| 	(pthread::cancel_self): Bring into the .cc file, it's only used
 | |
| 	within the class.
 | |
| 	(pthread::getThreadId): Ditto.
 | |
| 	(pthread::thread_init_wrapper): Apply Extract Method to the TLS
 | |
| 	setting logic.
 | |
| 	(pthread::isGoodObject): Extracted method from various pthread
 | |
| 	wrapper calls, for clarity of reading.
 | |
| 	(pthread::getsequence_np): Converted from __pthread_getsquence_np.
 | |
| 	(__pthread_create): Apply Extract Method to the object validation.
 | |
| 	(__pthread_cancel): Ditto.
 | |
| 	(__pthread_join): Ditto.
 | |
| 	(__pthread_detach): Ditto.
 | |
| 	(__pthread_suspend): Ditto.
 | |
| 	(__pthread_continue): Ditto.
 | |
| 	(__pthread_getschedparam): Ditto.
 | |
| 	(__pthread_getsequence_np): Remove.
 | |
| 	(__pthread_setschedparam): Apply Extract Method to the object
 | |
| 	validation.
 | |
| 	(pthreadNull::getNullpthread): New method, return the pthreadNull
 | |
| 	object.
 | |
| 	(pthreadNull::pthreadNull): Private constructor to prevent accidental
 | |
| 	use.
 | |
| 	(pthreadNull::~pthreadNull): Prevent compile warnings.
 | |
| 	(pthreadNull::create): Override pthread behaviour.
 | |
| 	(pthreadNull::exit): Ditto.
 | |
| 	(pthreadNull::cancel): Ditto.
 | |
| 	(pthreadNull::testcancel): Ditto.
 | |
| 	(pthreadNull::setcancelstate): Ditto.
 | |
| 	(pthreadNull::setcanceltype): Ditto.
 | |
| 	(pthreadNull::push_cleanup_handler): Ditto.
 | |
| 	(pthreadNull::pop_cleanup_handler): Ditto.
 | |
| 	(pthreadNull::getsequence_np): Ditto.
 | |
| 	(pthreadNull::_instance): Ditto.
 | |
| 	* thread.h (pthread): Declare pre- and post-create.
 | |
| 	Move GetThreadId to private scope and rename to getThreadId.
 | |
| 	Move setThreadIdtoCurrent to private scope.
 | |
| 	Make create virtual.
 | |
| 	Make ~pthread virtual.
 | |
| 	Declare initMainThread.
 | |
| 	Declare isGoodObject.
 | |
| 	Make exit virtual.
 | |
| 	Make cancel virtual.
 | |
| 	Make testcancel virtual.
 | |
| 	Make setcancelstate virtual.
 | |
| 	Make setcanceltype virtual.
 | |
| 	Make push_cleanup_handler virtual.
 | |
| 	Make pop_cleanup_handler virtual.
 | |
| 	Declare getsequence_np.
 | |
| 	Declare setTlsSelfPointer.
 | |
| 	(pthreadNull): New null object class for pthread.
 | |
| 	(__pthread_getsequence_np): Remove.
 | |
| 
 | |
| 2002-09-13  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* syscalls.cc (seteuid32): Treat ILLEGAL_UID invalid.
 | |
| 	(setegid32): Treat ILLEGAL_GID invalid.
 | |
| 
 | |
| 2002-09-10  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* grp.cc (initgroups): Call groups::clear_supp to free the
 | |
| 	supplementary group sids that may have been set by setgroups.
 | |
| 	* security.cc (cygsidlist::free_sids): Also zero the class members.
 | |
| 	* security.h (groups::clear_supp): New.
 | |
| 	Rename cygsidlist_unknown to cygsidlist_empty.
 | |
| 
 | |
| 2002-09-08  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler_tty.cc (fhandler_tty_slave::open): Don't protect
 | |
| 	input/output handles since they are not properly manipulated later.
 | |
| 	* tty.cc (tty::make_pipes): Ditto.
 | |
| 
 | |
| 2002-09-06  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* winsup.h (_WIN32_WINNT): Protect.
 | |
| 
 | |
| 2002-09-06  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* winsup.h (_WIN32_WINNT): Define.
 | |
| 
 | |
| 2002-09-03  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* Makefile.in (DLL_OFILES): Drop shortcut.o.
 | |
| 	* path.cc: Move all shortcut functions from shortcut.c to here.
 | |
| 	(check_shortcut): Implement without using COM interface.
 | |
| 	* path.h: Move definition of SHORTCUT_HDR_SIZE to here.
 | |
| 	* shortcut.c: Remove.
 | |
| 	* shortcut.h: Ditto.
 | |
| 
 | |
| 2002-09-03  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* fhandler.h (fhandler_socket::read): Remove method.
 | |
| 	(fhandler_socket::write): Ditto.
 | |
| 	(fhandler_socket::readv): New method.
 | |
| 	(fhandler_socket::writev): Ditto.
 | |
| 	(fhandler_socket::recvmsg): Add new optional argument.
 | |
| 	(fhandler_socket::sendmsg): Ditto.
 | |
| 	* fhandler.cc (fhandler_socket::read): Remove method.
 | |
| 	(fhandler_socket::write): Ditto.
 | |
| 	(fhandler_socket::readv): New method.
 | |
| 	(fhandler_socket::writev): Ditto.
 | |
| 	(fhandler_socket::recvmsg): Use win32's scatter/gather IO where
 | |
| 	possible.
 | |
| 	(fhandler_socket::sendmsg): Ditto.
 | |
| 	* net.cc (cygwin_recvmsg): Check the msghdr's iovec fields.
 | |
| 	(cygwin_sendmsg): Ditto.  Add omitted sigframe.
 | |
| 
 | |
| 2002-09-02  Kazuhiro Fujieda  <fujieda@jaist.ac.jp>
 | |
| 
 | |
| 	* cygwin.din: Revert exporting new wchar functions.
 | |
| 	* include/cygwin/version.h: Change comment for API minor 62.
 | |
| 
 | |
| 2002-09-02  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* dcrt0.cc (dll_crt0_1): Remove getpagesize() call.
 | |
| 	* shared.cc (memory_init): Move it here.
 | |
| 
 | |
| 2002-08-31  Christopher January  <chris@atomice.net>
 | |
| 
 | |
| 	* fhandler_proc.cc: Add <sys/param.h> include.
 | |
| 	(format_proc_uptime): Use KernelTime and UserTime only as they include
 | |
| 	the other counters.
 | |
| 	(format_proc_stat): KernelTime includes IdleTime, so subtract IdleTime
 | |
| 	from KernelTime. Make number of 'jiffies' per second same as HZ define.
 | |
| 	* fhandler_process.cc: Add <sys/param.h> include.
 | |
| 	(format_process_stat): Make number of 'jiffies' per second same as
 | |
| 	HZ define. Use KernelTime and UserTime only to calculate start_time.
 | |
| 
 | |
| 2002-08-30  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	(inspired by a patch from Egor Duda)
 | |
| 	* select.cc (fhandler_tty_slave::ready_for_read): Remove.
 | |
| 	* fhandler.h (fhandler_tty_slave::ready_for_read): Remove declaration.
 | |
| 	* fhandler_tty.cc (fhandler_tty_slave::fhandler_tty_slave): Set "don't
 | |
| 	need ready for read" flag.
 | |
| 	(fhandler_tty_slave::read): Don't do anything special with vtime when
 | |
| 	vmin == 0.
 | |
| 
 | |
| 2002-08-30  Egor Duda  <deo@logos-m.ru>
 | |
| 
 | |
| 	* autoload.cc (GetConsoleWindow): Correct parameter count.
 | |
| 
 | |
| 2002-08-30  Christopher January  <chris@atomice.net>
 | |
| 	    Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* tty.cc (tty_list::allocate_tty): Use GetConsoleWindow, if available.
 | |
| 	Call FindWindow in a loop.
 | |
| 	* autoload.cc (GetConsoleWindow): Export
 | |
| 
 | |
| 2002-08-30  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* miscfuncs.cc (check_iovec_for_read): Don't check buffer when zero
 | |
| 	length iov_len.
 | |
| 	(check_iovec_for_write): Ditto.
 | |
| 
 | |
| 2002-08-27  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* fhandler.h (fhandler_base::readv): New method.
 | |
| 	(fhandler_base::writev): Ditto.
 | |
| 	* fhandler.cc (fhandler_base::readv): New method.
 | |
| 	(fhandler_base::writev): Ditto.
 | |
| 	* syscalls.cc (_read): Delegate to readv(2).
 | |
| 	(_write): Ditto, mutatis mutandi.
 | |
| 	(readv): Rewrite, based on the old _read code, to use the new
 | |
| 	fhandler_base::readv method.  Improve access mode handling and ensure
 | |
| 	all calls reach the final strace statement.
 | |
| 	(writev): Ditto, mutatis mutandi.
 | |
| 	* include/sys/uio.h (struct iovec): Change field types to match SUSv3.
 | |
| 	* winsup.h (check_iovec_for_read): New function.
 | |
| 	(check_iovec_for_write): Ditto.
 | |
| 	* miscfuncs.cc (check_iovec_for_read): Ditto.
 | |
| 	(check_iovec_for_write): Ditto.
 | |
| 
 | |
| 2002-08-30  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygwin.din: Add more prototypes for new wchar functions in newlib.
 | |
| 
 | |
| 2002-08-30  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygwin.din: Add prototypes for new wchar functions in newlib.
 | |
| 	* include/cygwin/version.h: Bump API minor number.
 | |
| 
 | |
| 2002-08-29  Boris Schaeling  <boriss@web.de>
 | |
| 	    Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* poll.cc (poll): Peek sockets ready for read to see if there's
 | |
| 	actually data.
 | |
| 
 | |
| 2002-08-28  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygthread.cc (hthreads): Remove unneeded global.
 | |
| 	(cygthread::simplestub): New static member function.
 | |
| 	(cygthread::runner): Don't set hthreads.
 | |
| 	(cygthread::freerange): New member function.
 | |
| 	(cygthread::operator new): Call freerange if all cygwin slots are used
 | |
| 	up.
 | |
| 	(cygthread::exit_thread): Don't mess with event if freerange thread.
 | |
| 	(cygthread::detach): Ditto.
 | |
| 	* cygthread.h (class cygthread): Declare new member functions and
 | |
| 	variables.
 | |
| 
 | |
| 2002-08-28  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* malloc.cc: Protect some definitions to avoid a compile time warning.
 | |
| 
 | |
| 2002-08-27  Nicholas Wourms  <nwourms@netscape.net>
 | |
| 
 | |
| 	* cygwin.din: Export getc_unlocked, getchar_unlocked,
 | |
| 	putc_unlocked, putchar_unlocked functions.
 | |
| 	* include/cygwin/version.h: Bump api minor.
 | |
| 
 | |
| 2002-08-28  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_socket.cc (fhandler_socket::recvfrom): Eliminate flags
 | |
| 	not understood by WinSock.
 | |
| 	(fhandler_socket::sendto): Ditto.  If WinSock sendto() returns
 | |
| 	WSAESHUTDOWN, change errno to EPIPE and raise SIGPIPE if MSG_NOSIGNAL
 | |
| 	isn't set in flags.
 | |
| 	* include/cygwin/socket.h: Define MSG_WINMASK and MSG_NOSIGNAL.
 | |
| 	* include/cygwin/version.h: Bump API minor number.
 | |
| 
 | |
| 2002-08-28  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* poll.cc (poll): Eliminate erroneous POLLERR conditional.
 | |
| 
 | |
| 2002-08-26  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* fhandler_socket.cc (fhandler_socket::check_peer_secret_event):
 | |
| 	Fix strace message.
 | |
| 	(fhandler_socket::connect): Remove sigframe.
 | |
| 	(fhandler_socket::accept): Ditto.
 | |
| 	(fhandler_socket::getsockname): Ditto.
 | |
| 	(fhandler_socket::getpeername): Ditto.
 | |
| 	(fhandler_socket::recvfrom): Ditto.
 | |
| 	(fhandler_socket::recvmsg): Ditto.
 | |
| 	(fhandler_socket::sendto): Ditto.
 | |
| 	(fhandler_socket::sendmsg): Ditto.
 | |
| 	(fhandler_socket::close): Ditto.
 | |
| 	(fhandler_socket::ioctl): Ditto.
 | |
| 	* ioctl.cc (ioctl): Add sigframe.
 | |
| 	* net.cc (cygwin_sendto): Ditto.
 | |
| 	(cygwin_recvfrom): Ditto.
 | |
| 	(cygwin_recvfrom): Ditto.
 | |
| 	(cygwin_connect): Ditto.
 | |
| 	(cygwin_shutdown): Ditto.
 | |
| 	(cygwin_getpeername): Ditto.
 | |
| 	(cygwin_accept): Ditto.  Improve strace message.
 | |
| 	(cygwin_getsockname): Ditto.  Ditto.
 | |
| 	(cygwin_recvmsg): Ditto.  Ditto.
 | |
| 	(cygwin_sendmsg): Fix strace message.
 | |
| 
 | |
| 2002-08-27  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* child_info.h: Add _PROC_WHOOPS enum value.
 | |
| 	(CURR_CHILD_INFO_MAGIC): Update.
 | |
| 	(child_info::magic): Make 'long'.
 | |
| 	* cygheap.h: Export _cygheap_start.
 | |
| 	* cygheap.cc: Don't declare _cygheap_start.
 | |
| 	* cygmagic: Use cksum to produce checksums.  Append 'U' to end of
 | |
| 	checksum.
 | |
| 	* dcrt0.cc (initial_env): Calculate sleep ms before reusing buffer.
 | |
| 	(_dll_crt0): Detect cygheap mismatch as indicative of different cygwin
 | |
| 	version.  Set child_proc_info to NULL when _PROC_WHOOPS.
 | |
| 	(multiple_cygwin_problem): If child_info specific problem, then set
 | |
| 	child_proc_info type to _PROC_WHOOPS.
 | |
| 	* shared_info.h (CURR_MOUNT_MAGIC): Update.
 | |
| 	(CURR_SHARED_MAGIC): Ditto.
 | |
| 
 | |
| 2002-08-25  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* fhandler.h (fhandler_socket::recvfrom): Fix prototype.
 | |
| 	(fhandler_socket::sendto): Ditto.
 | |
| 	* fhandler_socket.cc (fhandler_socket::recvfrom): Ditto.
 | |
| 	(fhandler_socket::sendto): Ditto.
 | |
| 	* include/sys/socket.h (recv): Fix prototype.
 | |
| 	(recvfrom): Ditto.
 | |
| 	(send): Ditto.
 | |
| 	(sendto): Ditto.
 | |
| 	* net.cc (cygwin_sendto): Ditto. Improve strace message
 | |
| 	(cygwin_recvfrom): Ditto.  Ditto.
 | |
| 	(cygwin_setsockopt): Improve strace message.
 | |
| 	(cygwin_getsockopt): Ditto.
 | |
| 	(cygwin_connect): Ditto.
 | |
| 	(cygwin_accept): Ditto.
 | |
| 	(cygwin_bind): Ditto.
 | |
| 	(cygwin_getsockname): Ditto.
 | |
| 	(cygwin_getpeername): Ditto.
 | |
| 	(cygwin_recv): Fix prototype.
 | |
| 	(cygwin_send): Ditto.
 | |
| 	(cygwin_recvmsg): Improve strace message.
 | |
| 	(cygwin_sendmsg): Ditto.
 | |
| 
 | |
| 2002-08-25 Pierre Humblet <Pierre.Humblet@ieee.org>
 | |
| 
 | |
| 	* sec_acl.cc (getacl): Check ace_sid == well_known_world_sid
 | |
| 	before owner_sid and group_sid so that well_known_world_sid
 | |
| 	means "other" even when owner_sid and/or group_sid are Everyone.
 | |
| 	* security.cc (get_attribute_from_acl): Created from code common
 | |
| 	to get_nt_attribute() and get_nt_object_attribute(), with same
 | |
| 	reordering as in getacl() above.
 | |
| 	(get_nt_attribute): Call get_attribute_from_acl().
 | |
| 	(get_nt_object_attribute): Ditto.
 | |
| 
 | |
| 2002-08-26  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* Makefile.in (cygrunk.exe): Make a -mno-cygwin program.
 | |
| 	* cygrun.c (main): Export CYGWIN=ntsec unless otherwise set.
 | |
| 
 | |
| 	* shared.cc (shared_name): Only add build date to shared name when
 | |
| 	*testing*.
 | |
| 
 | |
| 2002-08-24  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* Makefile.in (DLL_IMPORTS): Move libuuid.a and libshell32.a to list
 | |
| 	rather than referring to them via -l.  Add DLL imports last in link
 | |
| 	line for new-cygwin.dll and cygrun.exe.
 | |
| 
 | |
| 2002-08-19  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* pinfo.h (pinfo::remember): Arrange for destructor call if
 | |
| 	proc_subproc returns error.
 | |
| 	* sigproc.cc (zombies): Store 1 + total zombies since proc_subproc uses
 | |
| 	NZOMBIES element.
 | |
| 
 | |
| 2002-08-19  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* pwdgrp.h (pwdgrp_read::pwdgrp_read): Remove.
 | |
| 	(pwdgrp_read::~pwdgrp_read): Ditto.
 | |
| 	(pwdgrp_read::open): Reset fh to NULL instead of INVALID_HANDLE_VALUE.
 | |
| 	(pwdgrp_read::close): Ditto.
 | |
| 
 | |
| 2002-08-19  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler.h (fhandler_console::send_winch_maybe): New method.
 | |
| 	* fhandler_console.cc (set_console_state_for_spawn): Remove if 0'ed
 | |
| 	code.
 | |
| 	(fhandler_console::send_winch_maybe): Define new method.
 | |
| 	(fhandler_console::read): Use send_winch_maybe where appropriate.
 | |
| 	(fhandler_console::init): Just call all tcsetattr rather than
 | |
| 	output_tcsetattr.
 | |
| 	* select.cc (peek_console): Reorganize so that send_winch_maybe is
 | |
| 	called for everything but keyboard input.
 | |
| 
 | |
| 2002-08-18  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* perthread.h (vfork_save): Add ctty, sid, pgid, exitval fields.
 | |
| 	(vfork_save::restore_pid): New method.
 | |
| 	(vfork_save::restore_exit): New method.
 | |
| 	* fork.cc (vfork): Save ctty, sid, pgid and restore them when returning
 | |
| 	to "parent".  Use exitval field if exiting but never created a new
 | |
| 	process.
 | |
| 	* syscalls.cc (setsid): Detect when in "vfork" and force an actual fork
 | |
| 	so that pid will be allocated (UGLY!).
 | |
| 	(getsid): New function.
 | |
| 	* dcrt0.cc (do_exit): Use vfork_save::restore_exit method for returning
 | |
| 	from a vfork.
 | |
| 	* spawn.cc (spawnve): Use vfork_save::{restore_pid,restore_exit}
 | |
| 	methods for returning from vfork.
 | |
| 	* cygwin.din: Export getsid.
 | |
| 	* include/cygwin/version.h: Bump api minor number.
 | |
| 
 | |
| 	* malloc.cc: #ifdef sYSTRIm for when MORECORE_CANNOT_TRIM is true.
 | |
| 
 | |
| 2002-08-18  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygmalloc.h (MORECORE_CANNOT_TRIM): Define.
 | |
| 
 | |
| 2002-08-18  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* sigproc.cc (sigCONT): Define.
 | |
| 	* sigproc.h (sigCONT): Declare.
 | |
| 	(wait_sig): Create sigCONT event here.
 | |
| 	* exceptions.cc (sig_handle_tty_stop): Wait for sigCONT event rather
 | |
| 	than stopping thread.
 | |
| 	(sig_handle): Set sigCONT event as appropriate on SIGCONT rather than
 | |
| 	calling ResumeThread.
 | |
| 
 | |
| 2002-08-17  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* malloc.cc: Update to 2.7.2.
 | |
| 	* malloc_wrapper.cc (malloc_init): Call user level mallocs to determine
 | |
| 	if the malloc routines have been overridden.
 | |
| 
 | |
| 2002-08-16  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* winsup.h: Remove malloc_*lock functions.
 | |
| 
 | |
| 2002-08-16  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* Makefile.in: Add support for new malloc.o and renamed
 | |
| 	malloc_wrapper.o.  Use -fomit-frame-pointer for malloc.o compilation.
 | |
| 	* malloc_wrapper.cc: New file.  Rename from malloc.cc.  Add support for
 | |
| 	more malloc functions.  Eliminate export_* calls.  Just use straight
 | |
| 	malloc names.  Remove unused argument from malloc lock functions.
 | |
| 	* cygwin.din: Just export straight malloc names.  Add malloc_stats,
 | |
| 	malloc_trim, malloc_usable_size, mallopt, memalign, valloc.
 | |
| 	* dcrt0.cc (__cygwin_user): Eliminate export_* malloc entries.
 | |
| 	* fork.cc (fork_parent): Remove unused argument from malloc_lock
 | |
| 	argument.
 | |
| 	* malloc.cc: New file.  Doug Lea's malloc v2.7.1.
 | |
| 	* cygmalloc.h: New file.
 | |
| 	* include/cygwin/version.h: Bump API_MINOR.
 | |
| 
 | |
| 	* sync.h (muto::acquire): Use appropriate number for regparm attribute.
 | |
| 	(muto::reset): Ditto.
 | |
| 	(muto::release): Ditto.
 | |
| 
 | |
| 2002-08-16  Pavel Tsekov  <ptsekov@gmx.net>
 | |
| 
 | |
| 	* exceptions.cc (interrupt_setup): Ensure that the previous signal mask
 | |
| 	is properly saved.
 | |
| 
 | |
| 2002-08-15  Thomas Pfaff  <tpfaff@gmx.net>
 | |
| 
 | |
| 	* dcrt0.cc: Modify define for CYGWIN_GUARD.
 | |
| 	(alloc_stack_hard_way): Just use CYGWIN_GUARD in VirtualAlloc call.
 | |
| 
 | |
| 2002-08-11  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* fhandler.h (fhandler_socket::recv): Remove method.
 | |
| 	(fhandler_socket::send): Ditto.
 | |
| 	* fhandler_socket.cc (fhandler_socket::recv): Ditto.
 | |
| 	(fhandler_socket::send): Ditto.
 | |
| 	(fhandler_socket::read): Delegate to fhandler_socket::recvfrom.
 | |
| 	(fhandler_socket::write): Delegate to fhandler_socket::sendto.
 | |
| 	(fhandler_socket::sendto): Check for null `to' address.
 | |
| 	* net.cc (cygwin_sendto): Check for zero request length.
 | |
| 	(cygwin_recvfrom): Ditto.  Fix signature, use void *buf.
 | |
| 	(cygwin_recv): Delegate to cygwin_recvfrom.
 | |
| 	(cygwin_send): Delegate to cygwin_sendto.
 | |
| 
 | |
| 2002-08-11  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygthread.cc (cygthread::cygthread): Close another race.
 | |
| 
 | |
| 2002-08-11  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* assert.cc (__assert): Call debugger on assertion failure if
 | |
| 	debugging.
 | |
| 	* dcrt0.cc (dll_crt0_1): Just wait for signal thread to go live rather
 | |
| 	than going through the overhead of invoking it.
 | |
| 	* fork.cc (fork_child): Ditto.
 | |
| 	* exceptions.cc (signal_fixup_after_fork): Call sigproc_init here.
 | |
| 	* sigproc.cc (proc_can_be_signalled): Assume that the signal thread is
 | |
| 	live.
 | |
| 	(sig_dispatch): Ditto.
 | |
| 	(sig_send): Ditto.
 | |
| 	(wait_for_sigthread): Rename from "wait_for_me".  Assume that
 | |
| 	wait_sig_inited has been set and that this function is only called from
 | |
| 	the main thread.
 | |
| 	* sigproc.h (wait_for_sigthread): Declare new function.
 | |
| 
 | |
| 2002-08-08  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* environ.cc (parse_options): Remember the "no" part of any options for
 | |
| 	later export.
 | |
| 
 | |
| 2002-08-07  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* winsup.h (__check_null_invalid_struct): Make ptr argument non-const.
 | |
| 	(__check_null_invalid_struct_errno): Ditto.
 | |
| 	* miscfuncs.cc (__check_null_invalid_struct): Ditto.
 | |
| 	(__check_null_invalid_struct_errno): Ditto.
 | |
| 	(__check_invalid_read_ptr_errno): Remove superfluous cast.
 | |
| 	* net.cc (get): Set appropriate errno if fd is not a socket.
 | |
| 	(cygwin_sendto): Fix parameter checking.
 | |
| 	(cygwin_recvfrom): Ditto.
 | |
| 	(cygwin_setsockopt): Ditto.
 | |
| 	(cygwin_getsockopt): Ditto.
 | |
| 	(cygwin_connect): Ditto.
 | |
| 	(cygwin_gethostbyaddr): Ditto.
 | |
| 	(cygwin_accept): Ditto.
 | |
| 	(cygwin_bind): Ditto.
 | |
| 	(cygwin_getsockname): Ditto.
 | |
| 	(cygwin_listen): Ditto.
 | |
| 	(cygwin_getpeername): Ditto.
 | |
| 	(cygwin_send): Ditto.
 | |
| 	(cygwin_shutdown): Ditto.  Move sigframe to fhandler_socket.
 | |
| 	(cygwin_recvmsg): Fix parameter checking.  Add tracing.
 | |
| 	(cygwin_sendmsg): Ditto.
 | |
| 	* fhandler_socket.cc (fhandler_socket::shutdown): Add sigframe.
 | |
| 	* resource.cc (setrlimit): Fix parameter checking.
 | |
| 
 | |
| 2002-08-08  Joe Buehler  <jbuehler@hekimian.com
 | |
| 
 | |
| 	* sec_helper.cc (sec_acl): remove extraneous arg to debug_printf.
 | |
| 
 | |
| 2002-08-07  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* fhandler_socket.cc (fhandler_socket::accept): Fix FIONBIO call.
 | |
| 
 | |
| 2002-08-06  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygheap.cc (_csbrk): Avoid !cygheap considerations.
 | |
| 	(cygheap_init): Deal with unintialized cygheap issues here.
 | |
| 	(cheap_init): Move cygheap_max setting here.
 | |
| 
 | |
| 2002-08-06  Christopher Faylor  <cgf@redhat.com>
 | |
| 	    Conrad Scott  <conrad.scott@dsl.pipex.com
 | |
| 
 | |
| 	* cygheap.cc (_csbrk): Allocate some slop initially.  Don't erroneously
 | |
| 	add sbrk amount to returned value in initial case.
 | |
| 
 | |
| 2002-08-06  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* spawn.cc (spawn_guts): Don't set mount_h here.
 | |
| 	* sigproc.cc (init_child_info): Set it here instead.
 | |
| 	* shared.cc (cygwin_mount_h): Make NO_COPY.
 | |
| 
 | |
| 2002-08-06  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygthread.cc (cygthread::stub): Accept flag to pass info structure to
 | |
| 	thread function.
 | |
| 	(cygthread::operator new): Add defensive debugging output.
 | |
| 	(cygthread::cygthread): Add debugging output.  Set name after thread
 | |
| 	has been awakened to avoid a race.
 | |
| 	(cygthread::exit_thread): Use handle operator rather than using ev
 | |
| 	directly.
 | |
| 	(cygthread::exit_thread): Reorganize to provide debugging.  Set __name
 | |
| 	to NULL.
 | |
| 	* cygthread.h (cygself): Define.
 | |
| 	* fhandler_tty.cc (fhandler_tty_master::init): Use cygself as argument
 | |
| 	so that invoked thread can access its own info.
 | |
| 	(process_output): Derive cygthread info of thread from thread argument.
 | |
| 	* sigproc.cc (sigproc_init): Use cygself as argument so that invoked
 | |
| 	thread can access its own info.
 | |
| 	(wait_sig): Derive cygthread info of thread from thread argument.
 | |
| 
 | |
| 2002-08-06  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* debug.h (handle_list::allocated): Remove field.
 | |
| 	* debug.cc (newh): Don't malloc extra entries.
 | |
| 	(add_handle): Downgrade strace message level.
 | |
| 	(delete_handle): Remove case for `allocated' entries.
 | |
| 
 | |
| 2002-08-05  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygthread.cc (cygthread::stub): Change event creation to manual
 | |
| 	reset.  Set __name after calling SetEvent to prevent races.
 | |
| 	(cygthread::detach): Always reset event here to prevent races.
 | |
| 
 | |
| 2002-08-03  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* debug.h (WaitForMultipleObjects): Correct typo.
 | |
| 
 | |
| 2002-08-01 Pierre Humblet <Pierre.Humblet@ieee.org>
 | |
| 
 | |
| 	* security.cc (verify_token): Do not reject a token just because
 | |
| 	the supplementary group list is missing Everyone or a groupsid
 | |
| 	equal to usersid, or because the primary group is not in the token,
 | |
| 	as long as it is equal to the usersid.
 | |
| 	* syscalls.cc (seteuid32): Use common code for all successful returns.
 | |
| 	* grp.cc (getgroups32): Never includes Everyone in the output.
 | |
| 
 | |
| 2002-08-01  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygthread.cc (cygthread::exit_thread): Define new method.
 | |
| 	* cygthread.h (cygthread::exit_thread): Declare new method.
 | |
| 	* fhandler.h (fhandler_tty_master::hThread): Delete.
 | |
| 	(fhandler_tty_master::output_thread): Define.
 | |
| 	* fhandler_tty.cc (fhandler_tty_master::fhandler_tty_master): Adjust
 | |
| 	constructor.
 | |
| 	(fhandler_tty_master::init): Use cygthread rather than handle.
 | |
| 	(process_output): Use cygthread method to exit.
 | |
| 	(fhandler_tty_master::fixup_after_fork): Set output_thread to NULL
 | |
| 	after fork.
 | |
| 	(fhandler_tty_master::fixup_after_exec): Set output_thread to NULL
 | |
| 	after spawn/exec.
 | |
| 	* tty.cc (tty_list::terminate): Detach from output_thread using
 | |
| 	cygthread method.
 | |
| 
 | |
| 2002-08-01  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* syscalls.cc (_link): Revert previous change and just always
 | |
| 	dereference the oldpath.
 | |
| 
 | |
| 2002-08-01  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* syscalls.cc (link): Properly deal with a link to a symlink.
 | |
| 
 | |
| 2002-08-01  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygthread.cc: Remove cruft.
 | |
| 
 | |
| 2002-08-01  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* Makefile.in (DLL_OFILES): Add cygthread.o.
 | |
| 	* dcrt0.cc (dll_crt0_1): Eliminate various thread initialization
 | |
| 	functions in favor of new cygthread class.
 | |
| 	* debug.cc: Remove thread manipulation functions.
 | |
| 	* debug.h: Ditto.
 | |
| 	* external.cc (cygwin_internal): Use cygthread method for determining
 | |
| 	thread name.  Remove capability for setting thread name.
 | |
| 	* fhandler_console.cc (fhandler_console::read): Use cygthread method
 | |
| 	rather than iscygthread function.
 | |
| 	* fhandler_tty.cc (fhandler_tty_master::fhandler_tty_master): Use
 | |
| 	cygthread methods to create threads.
 | |
| 	(fhandler_tty_common::__acquire_output_mutex): Use cygthread method to
 | |
| 	retrieve thread name.
 | |
| 	* select.cc (pipeinf): Use cygthread pointer rather than handle.
 | |
| 	(start_thread_pipe): Ditto.
 | |
| 	(pipe_cleanup): Ditto.
 | |
| 	(serialinf): Ditto.
 | |
| 	(start_thread_serial): Ditto.
 | |
| 	(serial_cleanup): Ditto.
 | |
| 	(socketinf): Ditto.
 | |
| 	(start_thread_socket): Ditto.
 | |
| 	(socket_cleanup): Ditto.
 | |
| 	* sigproc.cc (hwait_sig): Ditto.
 | |
| 	(hwait_subproc): Ditto.
 | |
| 	(proc_terminate): Ditto.
 | |
| 	(sigproc_terminate): Ditto.
 | |
| 	(sigproc_init): Initialize cygthread hwait_sig pointer.
 | |
| 	(subproc_init): Initialize cygthread hwait_subproc pointer.
 | |
| 	(wait_sig): Rely on cygthread HANDLE operator.
 | |
| 	* strace.cc (strace::vsprntf): Use cygthread::name rather than threadname.
 | |
| 	* window.cc (gethwnd): Use cygthread method to initialize thread.
 | |
| 
 | |
| 2002-07-31  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* fhandler.h (fhandler_base::get_r_no_interrupt): Make non-virtual.
 | |
| 	* net.cc (fdsock): Call set_r_no_interrupt.
 | |
| 
 | |
| 2002-07-30  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* syscalls.cc (_read): Clarify debugging output.
 | |
| 
 | |
| 2002-07-30  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler.h (fhandler_base::get_r_no_interrupt): Make virtual.
 | |
| 
 | |
| 2002-07-30  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_cygdrive::set_drives): Incorporate .
 | |
| 	and ..  processing here.
 | |
| 	(fhandler_cygdrive::readdir): Assume . and .. are already in pdrive.
 | |
| 	(fhandler_cygdrive::seekdir): Ditto.
 | |
| 
 | |
| 2002-07-29  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* dcrt0.cc (dll_crt0_1): Move debug_fixup_after_fork_exec.
 | |
| 	* cygheap.cc (cygheap_fixup_in_child): Call debug_fixup_after_fork_exec
 | |
| 	immediately after cygheap has been set up.
 | |
| 
 | |
| 2002-07-29  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* security.cc: Change some formatting.
 | |
| 	* include/cygwin/version.h: Bump API minor version.
 | |
| 
 | |
| 2002-07-28 Pierre Humblet <Pierre.Humblet@ieee.org>
 | |
| 
 | |
| 	* cygheap.h (class cygheap_user): Add member groups.
 | |
| 	* security.h (class cygsidlist): Add members type and maxcount, methods
 | |
| 	position, addfromgr, alloc_sids and free_sids and operator+= (const
 | |
| 	PSID psid).  Modify contains () to call position () and optimize add ()
 | |
| 	to use maxcount.
 | |
| 	(class user_groups): Create.  Update declarations of verify_token and
 | |
| 	create_token.
 | |
| 	* security.cc (cygsidlist::alloc_sids): New.
 | |
| 	(cygsidlist::free_sids): New.
 | |
| 	(get_token_group_sidlist): Create from get_group_sidlist.
 | |
| 	(get_initgroups_sidlist): Create from get_group_sidlist.
 | |
| 	(get_group_sidlist): Suppress.
 | |
| 	(get_setgroups_sidlist): Create.
 | |
| 	(verify_token): Modify arguments.  Add setgroups case.
 | |
| 	(create_token): Modify arguments.  Call get_initgroups_sidlist and
 | |
| 	get_setgroups_sidlist as needed.  Set SE_GROUP_LOGON_ID from auth_pos
 | |
| 	outside of the loop.  Rename the various group sid lists consistently.
 | |
| 	* syscalls.cc (seteuid32): Modify to use cygheap->user.groups.
 | |
| 	(setegid32): Call cygheap->user.groups.update_pgrp.
 | |
| 	* grp.cc (setgroups): Create.
 | |
| 	(setgroups32): Create.
 | |
| 	* uinfo.cc (internal_getlogin): Initialize and update
 | |
| 	user.groups.pgsid.
 | |
| 	* cygwin.din: Add setgroups and setgroups32.
 | |
| 
 | |
| 2002-07-28  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler_console.cc (fhandler_console::read): Use appropriate
 | |
| 	kill_pgrp method.
 | |
| 	* select.cc (peek_console): Ditto.
 | |
| 	* fhandler_termios.cc (fhandler_termios::bg_check): Send "stopped"
 | |
| 	signal to entire process group as dictated by SUSv3.
 | |
| 	* termios.cc (tcsetattr): Detect when stopped signal sent and force a
 | |
| 	stop before setting anything.
 | |
| 
 | |
| 2002-07-26  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* include/cygwin/version.h: Bump API version to indicate that ntsec is
 | |
| 	on by default now.
 | |
| 
 | |
| 2002-07-26  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* fhandler_registry.cc (fhandler_registry::close): Return any error
 | |
| 	result to the caller.
 | |
| 	* syscalls.cc (_close): Return result of fhandler::close to the caller.
 | |
| 
 | |
| 2002-07-25  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* security.cc (allow_ntsec): Default to on.
 | |
| 	(allow_smbntsec): Default to off.
 | |
| 
 | |
| 2002-07-24  David MacMahon  <davidm@smartsc.com>
 | |
| 
 | |
| 	* times.cc (to_time_t): Always round time_t down to nearest second.
 | |
| 
 | |
| 2002-07-25  Egor Duda  <deo@logos-m.ru>
 | |
| 
 | |
| 	* Makefile.in: Check if API version is updated when exports are
 | |
| 	changed and stop if not so.
 | |
| 
 | |
| 2002-07-24  Egor Duda  <deo@logos-m.ru>
 | |
| 
 | |
| 	* include/cygwin/version.h: Bump minor API version.
 | |
| 
 | |
| 2002-07-24  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_serial.cc: Change 'must_init_serial_line capability'
 | |
| 	to 'supports_reading_modem_output_lines' throughout (negated meaning).
 | |
| 	* wincap.cc: Ditto.
 | |
| 	* wincap.h: Ditto.
 | |
| 
 | |
| 2002-07-23  Nicholas Wourms  <nwourms@netscape.net>
 | |
| 
 | |
| 	* cygwin.din (fcloseall): Add symbol for export.
 | |
| 	(fcloseall_r): Ditto.
 | |
| 
 | |
| 2002-07-24  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* path.cc (path_conv::check): Always set fileattr when component == 0.
 | |
| 	(readlink): Use path_conv method rather than field.
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::fstat_helper): Ditto,
 | |
| 	throughout.
 | |
| 	* path.h (path_conv): Make fileattr private.
 | |
| 	* exceptions.cc (try_to_debug): Default to idle priority when looping.
 | |
| 
 | |
| 2002-07-23  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_serial.cc: Use must_init_serial_line capability throughout.
 | |
| 	* wincap.cc: Set flag must_init_serial_line appropriately.
 | |
| 	* wincap.h: Add flag must_init_serial_line.
 | |
| 
 | |
| 2002-07-23  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* security.cc (get_group_sidlist): Create group list from /etc files
 | |
| 	even if DC is available but access fails.
 | |
| 
 | |
| 2002-07-22  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler_serial.cc: Fix formatting problems introduced by below
 | |
| 	changes.
 | |
| 
 | |
| 2002-07-22  Jacek Trzcinski <jacek@certum.pl>
 | |
| 
 | |
| 	* fhandler.h (class fhandler_serial): Add new members of the class -
 | |
| 	rts,dtr and method ioctl().  Variables rts and dtr important for Win 9x
 | |
| 	only.
 | |
| 	* fhandler_serial.cc (fhandler_serial::open): Add initial setting of
 | |
| 	dtr and rts.  Important for Win 9x only.
 | |
| 	(fhandler_serial::ioctl): New function.  Implements commands TIOCMGET,
 | |
| 	TIOCMSET and TIOCINQ.
 | |
| 	(fhandler_serial::tcflush): Fix found error.
 | |
| 	(fhandler_serial::tcsetattr): Add settings of rts and dtr.  Important
 | |
| 	for Win 9x only.
 | |
| 	* termios.h: Add new defines as a support for ioctl() function on
 | |
| 	serial device.
 | |
| 
 | |
| 2002-07-20  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* autoload.cc (LoadDLLprime): Add jmp call to allow streamlining of
 | |
| 	later jmp rewrite.
 | |
| 	(doit): Avoid use of cx register.  Just change one word to avoid races.
 | |
| 
 | |
| 2002-07-18  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* security.cc (get_unix_group_sidlist): Create.
 | |
| 	(get_supplementary_group_sidlist): Evolve into get_unix_group_sidlist.
 | |
| 	(get_user_local_groups): Add check for duplicates.
 | |
| 	(get_user_primary_group): Suppress.
 | |
| 	(get_group_sidlist): Silently ignore PDC unavailability.
 | |
| 	Call get_unix_group_sidlist() before get_user_local_groups().
 | |
| 	Remove call to get_supplementary_group_sidlist(). Never call
 | |
| 	get_user_primary_group() as the passwd group is always included.
 | |
| 	Add well_known_authenticated_users_sid in only one statement.
 | |
| 
 | |
| 2002-07-19  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler_serial.cc (fhandler_serial::tcflush): Fix typo.
 | |
| 
 | |
| 2002-07-15  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* security.cc (get_group_sidlist): Fix formatting.
 | |
| 
 | |
| 2002-07-14  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* dcrt0.cc (initial_env): Force path and CYGWIN_DEBUG contents to lower
 | |
| 	case.
 | |
| 	* exceptions.cc (error_start_init): Use the name derived from
 | |
| 	GetModuleName rather than myself->progname.
 | |
| 
 | |
| 2002-07-14  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* dcrt0.cc (dll_crt0_1): Move debug_init call back to here.  Avoid a
 | |
| 	compiler warning.
 | |
| 	* shared.cc (memory_init): Remove debug_init call.
 | |
| 	* debug.h (handle_list): Change "clexec" to "inherited".
 | |
| 	* debug.cc: Remove a spurious declaration.
 | |
| 	(setclexec): Conditionalize away since it is currently unused.
 | |
| 	(add_handle): Use inherited field rather than clexec.
 | |
| 	(debug_fixup_after_fork_exec): Ditto.  Move debugging output to
 | |
| 	delete_handle.
 | |
| 	(delete_handle): Add debugging output.
 | |
| 	* fhandler.cc (fhandler_base::set_inheritance): Don't bother setting
 | |
| 	inheritance in debugging table since the handle was never protected
 | |
| 	anyway.
 | |
| 	(fhandler_base::fork_fixup): Ditto.
 | |
| 
 | |
| 	* exceptions.cc (debugger_command): Revert.
 | |
| 
 | |
| 2002-07-14  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* debug.cc (clexec): Add missing `hl = hl->next'.
 | |
| 
 | |
| 2002-07-14  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* Makefile.in (cygrun.exe): Add a -lcygwin on the end.
 | |
| 
 | |
| 2002-07-14  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* Makefile.in (cygserver.exe): Add -lstdc++.
 | |
| 	(cygrun.exe): Move -lgcc last.
 | |
| 
 | |
| 2002-07-13  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* dcrt0.cc (dll_crt0_1): Delay closing of some handles until cygheap
 | |
| 	has been set up.
 | |
| 	(break_here): New function, for debugging.
 | |
| 	(initial_env): Add program name to "Sleeping" message.  Implement new
 | |
| 	"CYGWIN_DEBUG" environment variable option.
 | |
| 	* exceptions.cc (debugger_command): Add argument to dumper call.
 | |
| 	* strace.cc (strace::hello): Use winpid if cygwin pid is unavailable.
 | |
| 	(strace::vsprntf): Ditto.
 | |
| 
 | |
| 2002-07-13  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* debug.h (handle_list): Move here from debug.cc.  Add "inherit" flag
 | |
| 	functionality.
 | |
| 	* cygheap.cc (init_cheap): Move cygheap_max calculation to _csbrk.
 | |
| 	(_csbrk): Reorganize to not assume first allocation is <= 1 page.
 | |
| 	(cygheap_setup_for_child): Mark protected handle as inheritable.
 | |
| 	* cygheap.h (cygheap_debug): New struct.
 | |
| 	(init_cygheap): Add new structure when debugging.
 | |
| 	* dcrt0.cc (dll_crt0_1): Remove call to debug_init.  Close ppid_handle
 | |
| 	here, if appropriate.  Don't protect subproc_ready, since it is already
 | |
| 	protected in the parent.  Call memory_init prior to ProtectHandle to
 | |
| 	ensure that cygheap is set up.  Call debug_fixup_after_fork_exec when
 | |
| 	appropriate.
 | |
| 	(_dll_crt0): Don't close ppid_handle here.
 | |
| 	* debug.cc: Use cygheap debug structure rather than static elements
 | |
| 	throughout.
 | |
| 	(add_handle): Don't issue a warning if attempt to protect handle in
 | |
| 	exactly the same way from exactly the same place.  Add pid info to
 | |
| 	warning output.  Accept additional argument controlling whether handle
 | |
| 	is to be inherited.  Add pid to stored information.
 | |
| 	(debug_fixup_after_fork_exec): Renamed from debug_fixup_after_fork.
 | |
| 	Reorganize to avoid erroneously skipping handles.
 | |
| 	(mark_closed): Add pid info to warning output.
 | |
| 	(setclexec): Rename from setclexec_pid.
 | |
| 	* fhandler.cc (fhandler_base::get_default_fmode): Minor reorg.
 | |
| 	(fhandler_base::fstat): Add debugging output.
 | |
| 	(fhandler_base::set_inheritance): Call setclexec rather than
 | |
| 	setclexec_pid.
 | |
| 	(fhandler_base::fork_fixup): Ditto.
 | |
| 	* fhandler_console.cc (get_tty_stuff): Mark protected handle as
 | |
| 	inheritable.
 | |
| 	* fhandler_tty.cc (fhandler_tty_slave::open): Ditto.
 | |
| 	* tty.cc (tty::make_pipes): Ditto.
 | |
| 	(tty::common_init): Ditto.
 | |
| 	* fork.cc (fork_parent): Ditto.
 | |
| 	(fork_child): Close protected handles with correct name.  Remove
 | |
| 	debug_fixup_after_fork call.
 | |
| 	* fhandler_socket.cc (fhandler_socket::create_secret_event): Mark
 | |
| 	protected handle as inheritable/non-inheritable, as appropriate.
 | |
| 	* shared.cc (memory_init): Mark protected handle as inheritable.
 | |
| 	Call debug_init here.
 | |
| 	* sigproc.cc (wait_sig): Close protected handle with correct name.
 | |
| 	* spawn.cc (spawn_guts): Rename spr to subproc_ready and mark it as
 | |
| 	inheritable.
 | |
| 
 | |
| 	* exceptions.cc (debugger_command): Try to run dumper.exe, if found.
 | |
| 
 | |
| 	* syscalls.cc (fstat64): Don't follow symlinks for path_conv lookup
 | |
| 	since path is already resolved.
 | |
| 
 | |
| 2002-07-12  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygwin.din: Change erroneous entries.
 | |
| 
 | |
| 2002-07-11  Pavel Tsekov  <ptsekov@gmx.net>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::open): Don't
 | |
| 	move the file pointer to the end of file if O_APPEND is
 | |
| 	specified in the open flags.
 | |
| 
 | |
| 2002-07-09  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* debug.cc: Avoid explicit zeroing of globals.
 | |
| 	(lock_debug): Make locker a static member.  Avoid unlocking when
 | |
| 	already unlocked (from Conrad Scott).
 | |
| 	(debug_init): Initialize lock_debug::locker here.
 | |
| 	* fork.cc (fork_child): Fix up fdtab earlier to avoid some (but not
 | |
| 	all) confusion with close-on-exec craziness.
 | |
| 
 | |
| 2002-07-05  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (fhandler_socket::is_unconnected): Constify.
 | |
| 	(fhandler_socket::is_connect_pending): Ditto.
 | |
| 	(fhandler_socket::is_connected): Ditto.
 | |
| 	(fhandler_socket::set_connect_state): New method.
 | |
| 	(struct select_record): Add member `except_on_write'.
 | |
| 	(select_record::select_record): Initialize all bool values to `false'.
 | |
| 	* fhandler_socket.cc: Use set_connect_state() method throughout.
 | |
| 	(fhandler_socket::connect): Set state always to connected if connection
 | |
| 	isn't pending.
 | |
| 	* net.cc (cygwin_getsockopt): Revert erroneous previous patch.
 | |
| 	* select.cc (set_bits): Check for `except_on_write'.  Set fd in
 | |
| 	write_fds if set.  Set connect state to connected if fd has been
 | |
| 	returned by WINSOCK_SELECT.
 | |
| 	(peek_socket): Check for `except_on_write'.
 | |
| 	(start_thread_socket): Ditto.
 | |
| 	(fhandler_socket::select_write): Don't set `write_ready' if connect
 | |
| 	is pending.  Set `except_on_write' if connect is pending.
 | |
| 
 | |
| 2002-07-05  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* ntdll.h (_SYSTEM_PROCESSOR_TIMES): Force eight byte alignment.
 | |
| 	(_SYSTEM_TIME_OF_DAY_INFORMATION): Ditto.
 | |
| 
 | |
| 	* path.cc (suffix_scan::has): Reorganize to eliminate double scanning
 | |
| 	for for .exe (in the typical case).
 | |
| 
 | |
| 2002-07-05  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (UNCONNECTED): New define.
 | |
| 	(CONNECT_PENDING): Ditto.
 | |
| 	(CONNECTED): Ditto.
 | |
| 	(class fhandler_socket): Add member `had_connect_or_listen'.
 | |
| 	Add member functions `is_unconnected', `is_connect_pending' and
 | |
| 	`is_connected'.
 | |
| 	* fhandler_socket.cc (fhandler_socket::connect): Set member
 | |
| 	`had_connect_or_listen' according to return code of WinSock
 | |
| 	call.
 | |
| 	(fhandler_socket::listen): Ditto.
 | |
| 	* net.cc (cygwin_getsockopt): Modify SO_ERROR return value in
 | |
| 	case of socket with pending connect().
 | |
| 	* select.cc (peek_socket): Only add socket to matching fd_set
 | |
| 	if it's not "ready".  Call WINSOCK_SELECT only if at least one
 | |
| 	socket is in one of the fd_sets.
 | |
| 	(start_thread_socket): Only add socket to matching fd_set
 | |
| 	if it's not "ready".
 | |
| 	(fhandler_socket::select_write): Set write_ready to true also
 | |
| 	if socket isn't connected or listening.
 | |
| 
 | |
| 2002-07-04  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_socket.cc (fhandler_socket::set_sun_path): Don't free
 | |
| 	memory here.  Allow NULL parameter.
 | |
| 
 | |
| 2002-07-04  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_socket.cc (fhandler_socket::dup): Add missing copy operation
 | |
| 	on sun_path.
 | |
| 
 | |
| 2002-07-03  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* include/cygwin/version.h: Bump DLL minor number.
 | |
| 
 | |
| 2002-07-03  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* include/sys/statfs.h: New header file.
 | |
| 
 | |
| 2002-07-03  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* dtable.cc (cygwin_attach_handle_to_fd): Default to implicit bin mode
 | |
| 	if none specified.
 | |
| 	* fhandler.cc (fhandler_base::init): Make bin argument a guarantee
 | |
| 	rather than a suggestion.
 | |
| 	* path.cc (path_conv::check): Load flag returned from
 | |
| 	cygwin_conv_to_win32_path into path_flags.
 | |
| 
 | |
| 2002-07-03  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* tty.cc (tty::common_init): Reverse logic of cygserver check in
 | |
| 	call to SetKernelObjectSecurity.
 | |
| 
 | |
| 2002-07-03  Thomas Pfaff  <tpfaff@gmx.net>
 | |
| 
 | |
| 	* autoload.cc (WSAEventSelect): Define new autoload function.
 | |
| 	(WSAEnumNetworkEvents): Ditto.
 | |
| 	* fhandler_socket.cc (fhandler_socket::accept): If socket is
 | |
| 	in blocking mode wait for incoming connection and signal.
 | |
| 
 | |
| 2002-07-02  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygheap.cc (init_cheap): Rearrange error message.
 | |
| 	(cygheap_fixup_in_child): Ditto.
 | |
| 	* dtable.cc: Remove if 0'ed code.
 | |
| 	* fhandler_dsp.cc (fhandler_dev_dsp::open): Force binmode.
 | |
| 	* sec_helper.cc (cygsid::get_id): Use system_printf for error message.
 | |
| 	* tty.cc (tty::common_init): Ditto.
 | |
| 
 | |
| 2002-07-02  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* net.cc (cygwin_getpeername): Defend against NULL pointer dereference.
 | |
| 
 | |
| 2002-07-02  Egor Duda <deo@logos-m.ru>
 | |
| 
 | |
| 	* include/cygwin/version.h: Bump API minor version.
 | |
| 
 | |
| 2002-07-01  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* security.cc (get_logon_server): Interpret a zero length
 | |
| 	domain as the local domain.
 | |
| 	(get_group_sidlist): Add authenticated users SID to SYSTEM's group
 | |
| 	list instead of SYSTEM itself.
 | |
| 	(verify_token): Accept the primary group sid if it equals
 | |
| 	the token user sid.
 | |
| 
 | |
| 2002-07-02  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygwin.din (__fpclassifyd): Add symbol.
 | |
| 	(__fpclassifyf): Ditto.
 | |
| 	(__signbitd): Ditto.
 | |
| 	(__signbitf): Ditto.
 | |
| 
 | |
| 2002-07-02  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* security.h (DONT_INHERIT): Eliminate definition.
 | |
| 	(INHERIT_ALL): Ditto.
 | |
| 	(INHERIT_ONLY): Ditto.
 | |
| 	* sec_acl.cc: Use appropriate defines from accctrl.h instead of the
 | |
| 	above throughout.
 | |
| 	* security.cc: Ditto.
 | |
| 
 | |
| 2002-07-01  Pierre Humblet  <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* syscalls.c (seteuid32): Return immediately if the program is not
 | |
| 	impersonated and both uid and gid are original.
 | |
| 	(setegid32): Return immediately if the new gid is the current egid.
 | |
| 
 | |
| 2002-07-01  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* syscalls.cc (seteuid32): Fix incorrect placement of Pierre's patch
 | |
| 	below.
 | |
| 
 | |
| 2002-07-01  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* syscalls.cc (seteuid32): Fix incorrect use of system_printf.
 | |
| 
 | |
| 2002-07-02  Christopher January  <chris@atomice.net>
 | |
| 
 | |
| 	* autoload.cc (GetSecurityInfo): Define new autoload function.
 | |
| 	(RegQueryInfoKeyA): Ditto.
 | |
| 	* fhandler.h (fhandler_virtual::fill_filebuf): Change return type to
 | |
| 	bool.
 | |
| 	(fhandler_proc::fill_filebuf): Ditto.
 | |
| 	(fhandler_registry::fill_filebuf): Ditto.
 | |
| 	(fhandler_process::fill_filebuf): Ditto.
 | |
| 	(fhandler_registry::value_name): Add new member.
 | |
| 	(fhandler_registry::close): Add new method.
 | |
| 	(fhandler_process::p): Remove member.
 | |
| 	* fhandler_proc.cc (fhandler_proc::open): Add set_nohandle after
 | |
| 	calling superclass method.  Check return value of fill_filebuf.
 | |
| 	(fhandler_proc::fill_filebuf): Change return type to bool.  Add return
 | |
| 	statement.
 | |
| 	* fhandler_process.cc (fhandler_process::open): Add set_nohandle after
 | |
| 	calling superclass method.  Remove references to p.  Check return value
 | |
| 	of fill_filebuf.
 | |
| 	(fhandler_process::fill_filebuf): Change return type to bool.  Don't
 | |
| 	use dereference operator on p.  Add return statement.
 | |
| 	(fhandler_process::format_process_stat): Fix typo.
 | |
| 	* fhandler_registry.cc: Add static open_key declaration.
 | |
| 	(fhandler_registry::exists): Assume path is already normalised.  Try
 | |
| 	opening the path as a key in its own right first, before reverting to
 | |
| 	enumerating subkeys and values of the parent key.
 | |
| 	(fhandler_registry::fstat): Add additional code to return more relevant
 | |
| 	information about the registry key/value.
 | |
| 	(fhandler_registry::readdir): Explicitly set desired access when
 | |
| 	opening registry key.  Remove output of buf from debug_printf format
 | |
| 	string.
 | |
| 	(fhandler_registry::open): Use set_io_handle to store registry key
 | |
| 	handle.  Set value_name member.  Move code to read a value from the
 | |
| 	registry to fill_filebuf.  Add call to fill_filebuf.
 | |
| 	(fhandler_registry::close): New method.
 | |
| 	(fhandler_registry::fill_filebuf): Change return type to bool.  Add
 | |
| 	code to read a value from registry.
 | |
| 	(fhandler_registry::open_key): Make function static.  Use KEY_READ as
 | |
| 	desired access unless this is the last path component.  Check the
 | |
| 	return value of RegOpenKeyEx for an error instead of hKey.
 | |
| 	* fhandler_virtual.cc (fhandler_virtual::lseek): Check the return value
 | |
| 	of fill_filebuf.
 | |
| 	(fhandler_virtual::open): Remove call to set_nohandle.
 | |
| 	(fhandler_virtual::fill_filebuf): Change return type to bool.  Add
 | |
| 	return statement.
 | |
| 	* security.cc (get_nt_object_attribute): New function.
 | |
| 	(get_object_attribute): New function.
 | |
| 	* security.h (get_object_attribute): New function declaration.
 | |
| 
 | |
| 2002-07-01  Pierre Humblet  <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* syscalls.c (seteuid32): Do not return an error when the token cannot
 | |
| 	be created only because of a problem with the gid.
 | |
| 
 | |
| 2002-07-01  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler_clipboard.c (fhandler_dev_clipboard::open): Force text mode.
 | |
| 	* fhandler_console.cc (fhandler_console::open): *Really* force binary
 | |
| 	mode rather than make it optional.
 | |
| 	* fhandler_proc.cc (fhandler_proc::open): Ditto.
 | |
| 	* fhandler_process.cc (fhandler_process::open): Ditto.
 | |
| 	* fhandler_random.cc (fhandler_dev_random::fhandler_dev_random): Ditto.
 | |
| 	* fhandler_raw.cc (fhandler_dev_raw::open): Ditto.
 | |
| 	* fhandler_registry.cc (fhandler_registry::open): Ditto.
 | |
| 	* fhandler_tty.cc (fhandler_tty_slave::open): Ditto.
 | |
| 	* fhandler_virtual.cc (fhandler_virtual::open): Ditto.
 | |
| 	* fhandler_windows.cc (fhandler_windows::open): Ditto.
 | |
| 	* fhandler_zero.cc (fhandler_dev_zero::open): Ditto.
 | |
| 	* net.cc (fdsock): Ditto.
 | |
| 	* path.cc (set_flags): Add more debugging.
 | |
| 
 | |
| 2002-07-01  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* debug.cc (threads): Avoid initialization.
 | |
| 	* uinfo.cc (cygheap_user::ontherange): (from Corinna Vinschen) Actually
 | |
| 	make below changes work.
 | |
| 
 | |
| 2002-07-01  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* uinfo.cc (cygheap_user::ontherange): Make cygwin root the last resort
 | |
| 	for HOMEPATH/HOMEDRIVE for consistency with HOME.
 | |
| 
 | |
| 2002-07-01  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* shared.cc (sec_none): Move to sec_helper.cc.
 | |
| 	(sec_none_nih): Ditto.
 | |
| 	(sec_all): Ditto.
 | |
| 	(sec_all_nih): Ditto.
 | |
| 	(get_null_sd): Ditto.
 | |
| 	(sec_acl): Ditto.
 | |
| 	(__sec_user): Ditto.
 | |
| 	* sec_helper.cc (sec_none): Move from shared.cc to here.
 | |
| 	(sec_none_nih): Ditto.
 | |
| 	(sec_all): Ditto.
 | |
| 	(sec_all_nih): Ditto.
 | |
| 	(get_null_sd): Ditto.
 | |
| 	(sec_acl): Ditto.
 | |
| 	(__sec_user): Ditto.
 | |
| 
 | |
| 2002-06-30  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* uinfo.cc (cygheap_user::ontherange): Potentially set HOME from
 | |
| 	existing homepath and homedrive cygheap_user fields (not currently used
 | |
| 	yet).  Set HOME to / if no other alternative.
 | |
| 	(cygheap_user::test_uid): Simplify.
 | |
| 
 | |
| 2002-06-30  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* environ.cc (parse_options): Use setenv to potentially replace CYGWIN
 | |
| 	value on export.  Fixes broken behavior since November 2000 changes.
 | |
| 	(regopt): Return indication of whether or not something has been parsed
 | |
| 	from the registry.
 | |
| 	(environ_init): Only attempt to export CYGWIN variable when values were
 | |
| 	set from the registry.  It is exported automatically otherwise.
 | |
| 
 | |
| 2002-06-30  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler.h (fhandler_process::pid): New field.
 | |
| 	(fhandler_process::fstat): Remove unneeded array.  Set pid element.
 | |
| 	(fhandler_process::open): Ditto.
 | |
| 	(fhandler_process::fill_filebuf): Handle case where 'p' field is NULL.
 | |
| 
 | |
| 2002-06-30  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler.h (fhandler_process::p): New field.
 | |
| 	(fhandler_process:fill_filebuf): Revert to same definition as virtual
 | |
| 	in parent class.
 | |
| 	(fhandler_process::open): Fill out p field rather than passing as an
 | |
| 	argument.
 | |
| 	(fhandler_process::fill_filebuf): Use p pointer rather than argument.
 | |
| 
 | |
| 2002-06-29  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* security.cc (extract_nt_dom_user): Check for all buffer overflows.
 | |
| 	Call LookupAccountSid after trying to get domain & user from passwd.
 | |
| 	(get_group_sidlist): Obtain the domain and user by calling
 | |
| 	extract_nt_dom_user instead of LookupAccountSid.
 | |
| 
 | |
| 2002-06-29  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* uinfo.cc (cygheap_user::test_uid): Use standard issetuid test.
 | |
| 
 | |
| 2002-06-29  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* autoload.cc (NetGetDCName): Change to make this an optional load
 | |
| 	function.
 | |
| 	* cygheap.h (cygheap_user::logsrv): Return NULL when operation fails.
 | |
| 	(cygheap_user::winname): Ditto.
 | |
| 	(cygheap_user::domain): Ditto.
 | |
| 	* uinfo.cc (cygheap_user::env_logsrv): Save results in temp variable.
 | |
| 	(cygheap_user::env_userprofile): Ditto.
 | |
| 
 | |
| 2002-06-29  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* environ.cc (spenv::retrieve): Detect return of env_dontadd from
 | |
| 	cygheap_user methods.
 | |
| 	(build_env): Avoid incrementing environment pointer if not actually
 | |
| 	adding to the environment.  That could result in garbage in the
 | |
| 	environment table.  Be more defensive when reallocing envblock.
 | |
| 
 | |
| 2002-06-29  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* uinfo.cc (cygheap_user::test_uid): Return NULL or further tests are
 | |
| 	sorta useless.
 | |
| 	(cygheap_user::env_domain): Recalculate if name is missing.
 | |
| 
 | |
| 2002-06-29  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* environ.cc (spenv::from_cygheap): Still need to take setuid into
 | |
| 	consideration.
 | |
| 
 | |
| 2002-06-28  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* uinfo.cc (cygheap_user::env_logsrv): Return "almost_null" in case
 | |
| 	where no domain or username is "SYSTEM".
 | |
| 
 | |
| 2002-06-28  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygheap.h (cygheap_user): Reorg to accommodate environment caching.
 | |
| 	(cygheap_user::logsrv): New method.
 | |
| 	(cygheap_user::winname): Ditto.
 | |
| 	(cygheap_user::domain): Ditto.
 | |
| 	(cygheap_user::test_uid): Ditto.
 | |
| 	* cygheap.cc (cygheap_user::set_name): Reflect name "pwinname" name
 | |
| 	change.
 | |
| 	* environ.cc (getwinenveq): New function.
 | |
| 	(penv::from_cygheap): penv::from_cygheap): Change arguments.
 | |
| 	(spenv::retrieve): Ditto for call.  Use getwinenveq to retrieve info
 | |
| 	from environment.  Always return value from cygwin environment, if it
 | |
| 	exists.
 | |
| 	* environ.h (getwinenveq): Declare.
 | |
| 	* uinfo.cc (cygheap_user::ontherange): Use logsrv() rather than
 | |
| 	env_logsrv().
 | |
| 	(cygheap_user::test_uid): Define new method.
 | |
| 	(cygheap_user::env_logsrv): Accept environment arguments.  Use test_uid
 | |
| 	to find info.
 | |
| 	(cygheap_user::env_domain): Ditto.
 | |
| 	(cygheap_user::env_userprofile): Ditto.
 | |
| 	(cygheap_user::env_homepath): Ditto.
 | |
| 	(cygheap_user::env_homedrive): Ditto.
 | |
| 	(cygheap_user::env_name): Ditto.
 | |
| 
 | |
| 2002-06-27  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygheap.cc (cfree_and_set): New function.
 | |
| 	(cygheap_user::set_name): Use cfree_and_set to reset members.
 | |
| 	* cygheap.h (cygheap_user): Delete static members.
 | |
| 	(cygheap_user::puserprof): New member.
 | |
| 	(cfree_and_set): Declare.
 | |
| 	* dcrt0.cc (almost_null): Define.
 | |
| 	* environ.cc (env_dontadd): Redefine as "almost_null".
 | |
| 	* winsup.h (almost_null): Declare.
 | |
| 	* syscalls.cc (cfree_and_set): Remove unused variable.
 | |
| 	* uinfo.cc (cygheap_user::homepath_env_buf): Eliminate.
 | |
| 	(cygheap_user::homedrive_env_buf): Ditto.
 | |
| 	(cygheap_user::userprofile_env_buf): Ditto.
 | |
| 	(cygheap_user::ontherange): YA change to try to preserve existing
 | |
| 	HOMEPATH and HOMEDRIVE.  Return almost_null values when variables
 | |
| 	should not actually exist.
 | |
| 	(cygheap_user::env_logsrv): Ditto.
 | |
| 	(cygheap_user::env_domain): Ditto.
 | |
| 	(cygheap_user::env_userprofile): Ditto.
 | |
| 
 | |
| 2002-06-27  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* dcrt0.cc (dll_crt0_1): Let __progname point to the applications
 | |
| 	basename.  Move eliminating ".exe" suffix from argv[0] so that it
 | |
| 	always also affects __progname.
 | |
| 
 | |
| 2002-06-27  Thomas Pfaff  <tpfaff@gmx.net>
 | |
| 
 | |
| 	* thread.cc (pthread::create): Add trace printf to get CreateThread
 | |
| 	LastError.
 | |
| 
 | |
| 2002-06-27  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* mmap.cc (list::match): Check using pagesize aligned size.
 | |
| 
 | |
| 2002-06-26  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::fstat_by_name): Force
 | |
| 	FindFirstFile on first file of directory when asking for x:\ .
 | |
| 
 | |
| 2002-06-26  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygheap.cc (cygheap_user::set_name): Correct thinko in below change.
 | |
| 
 | |
| 2002-06-26  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygheap.cc (cygheap_user::set_name): Avoid clearing things when just
 | |
| 	setting name to itself or during first time initialization.
 | |
| 
 | |
| 	* environ.cc (check_case_init): Make case insensitive.
 | |
| 
 | |
| 2002-06-26  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (fhandler_socket::bind): Add method definition.
 | |
| 	(fhandler_socket::connect): Ditto.
 | |
| 	(fhandler_socket::listen): Ditto.
 | |
| 	(fhandler_socket::accept): Ditto.
 | |
| 	(fhandler_socket::getsockname): Ditto.
 | |
| 	(fhandler_socket::getpeername): Ditto.
 | |
| 	(fhandler_socket::recvfrom): Ditto.
 | |
| 	(fhandler_socket::recvmsg): Ditto.
 | |
| 	(fhandler_socket::sendto): Ditto.
 | |
| 	(fhandler_socket::sendmsg): Ditto.
 | |
| 	(fhandler_socket::shutdown): Ditto.
 | |
| 	* fhandler_socket.cc (get_inet_addr): Move here from net.cc.
 | |
| 	(fhandler_socket::bind): New method.
 | |
| 	(fhandler_socket::connect): Ditto.
 | |
| 	(fhandler_socket::listen): Ditto.
 | |
| 	(fhandler_socket::accept): Ditto.
 | |
| 	(fhandler_socket::getsockname): Ditto.
 | |
| 	(fhandler_socket::getpeername): Ditto.
 | |
| 	(fhandler_socket::recvfrom): Ditto.
 | |
| 	(fhandler_socket::recvmsg): Ditto.
 | |
| 	(fhandler_socket::sendto): Ditto.
 | |
| 	(fhandler_socket::sendmsg): Ditto.
 | |
| 	(fhandler_socket::shutdown): Ditto.
 | |
| 	* net.cc: Various formatting cleanups throughout.
 | |
| 	(get_inet_addr): Move to fhandler_socket.cc.
 | |
| 	(cygwin_bind): Move base functionality to appropriate fhandler_socket
 | |
| 	method.
 | |
| 	(cygwin_connect): Ditto.
 | |
| 	(cygwin_listen): Ditto.
 | |
| 	(cygwin_accept): Ditto.
 | |
| 	(cygwin_getsockname): Ditto.
 | |
| 	(cygwin_getpeername): Ditto.
 | |
| 	(cygwin_recvfrom): Ditto.
 | |
| 	(cygwin_recvmsg): Ditto.
 | |
| 	(cygwin_sendto): Ditto.
 | |
| 	(cygwin_sendmsg): Ditto.
 | |
| 	(cygwin_shutdown): Ditto.
 | |
| 
 | |
| 2002-06-26  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* pwdgrp.h (pwdgrp_read::~pwdgrp_read): Avoid compiler warning.
 | |
| 
 | |
| 2002-06-26  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* dcrt0.cc (_dcrt0): Be more defensive when reserved block is used and
 | |
| 	it's not cygwin info.
 | |
| 
 | |
| 2002-06-26  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* autoload (noload): Avoid clobbering bx register.
 | |
| 
 | |
| 	* environ.cc (codepage_init): Use case insensitive match.
 | |
| 
 | |
| 	* fhandler_console.cc (cp_get_internal): Delete.
 | |
| 	(con_to_str): Use get_cp to derive code page.
 | |
| 	(str_to_con): Ditto.
 | |
| 	* miscfuncs.cc (get_cp): New function.
 | |
| 	(sys_wcstombs): New function.  Converted from macro.
 | |
| 	(sys_mbstowcs): Ditto.
 | |
| 	* winsup.h: Reflect above changes.
 | |
| 
 | |
| 2002-06-26  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* winsup.h: Minor cleanup.
 | |
| 	* path.h (path_conv::[]): New operator.
 | |
| 	* syscalls.cc (_link): Use path_conv operators rather than methods,
 | |
| 	where appropriate.  Minor white space cleanup.
 | |
| 
 | |
| 2002-06-26  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* include/cygwin/version.h: Bump DLL minor number.
 | |
| 
 | |
| 2002-06-25  Thomas Pfaff  <tpfaff@gmx.net>
 | |
| 
 | |
| 	* include/pthread.h (PTHREAD_CANCELED): Define a reasonable value.
 | |
| 	* pthread.cc (pthread_exit): Call method instead of function.
 | |
| 	(pthread_setcancelstate): Ditto.
 | |
| 	(pthread_setcanceltype): Ditto.
 | |
| 	(pthread_testcancel): Ditto.
 | |
| 	* thread.h (pthread::cancel_event): New member.
 | |
| 	(__pthread_cancel_self): New prototype.
 | |
| 	(pthread::exit): New Method.
 | |
| 	(pthread::cancel): Ditto.
 | |
| 	(pthread::testcancel): Ditto.
 | |
| 	(pthread::cancel_self): Ditto.
 | |
| 	(pthread::static_cancel_self): Ditto.
 | |
| 	(pthread::setcancelstate): Ditto.
 | |
| 	(pthread::setcanceltype): Ditto.
 | |
| 	(__pthread_cancel): Give c++ linkage.
 | |
| 	(__pthread_exit): Remove.
 | |
| 	(__pthread_setcancelstate): Ditto.
 | |
| 	(__pthread_setcanceltype): Ditto.
 | |
| 	(__pthread_testcancel): Ditto.
 | |
| 	* thread.cc (pthread::pthread): Inititialize cancel_event.
 | |
| 	(pthread::~pthread): Close cancel_event if needed.
 | |
| 	(pthread::create): Create cancel_event.
 | |
| 	(pthread::exit): New method.  Replacement for __pthread_exit.
 | |
| 	(pthread::cancel): New method.
 | |
| 	(pthread::testcancel): Ditto.
 | |
| 	(pthread::static_cancel_self); New static method.
 | |
| 	(pthread::setcancelstate): New method.  Replacement for
 | |
| 	__pthread_setcancelstate.
 | |
| 	(pthread::setcanceltype): New method.  Replacement for
 | |
| 	__pthread_setcanceltype.
 | |
| 	(pthread::pop_cleanup_handler): Add lock for async cancel safe
 | |
| 	cancellation.
 | |
| 	(pthread::thread_init_wrapper): Change __pthread_exit to
 | |
| 	thread->exit().
 | |
| 	(__pthread_cancel): Call method thread->cancel().
 | |
| 	(__pthread_exit): Remove.
 | |
| 	(__pthread_setcancelstate): Ditto.
 | |
| 	(__pthread_setcanceltype): Ditto.
 | |
| 	(__pthread_testcancel): Ditto.
 | |
| 
 | |
| 2002-06-25  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* dcrt0.cc (sm): Make NO_COPY.
 | |
| 
 | |
| 2002-06-25  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* syscalls.cc (chown): Convert uid to 32 bit.
 | |
| 	(lchown): Ditto.
 | |
| 	(fchown): Ditto.
 | |
| 
 | |
| 2002-06-24  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* dtable.cc (dtable::find_unused_handle): Avoid coercion.
 | |
| 
 | |
| 2002-06-24  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* dtable.cc (fhandler_base::dup2): Cleanup.  Ensure that lock is turned
 | |
| 	off in error condition.
 | |
| 
 | |
| 2002-06-24  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* uinfo.cc (internal_getlogin): Set myself->uid and myself->gid instead
 | |
| 	of user.real_uid and user.real_gid.
 | |
| 	(uinfo_init): Evaluate orig_uid and real_uid from myself->uid.  Ditto
 | |
| 	for gid.
 | |
| 
 | |
| 2002-06-23  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* security.cc (get_group_sidlist): Add pw argument and use pw->pw_name
 | |
| 	in call to get_supplementary_group_sidlist.
 | |
| 	(create_token): Add pw argument and use it in call to
 | |
| 	get_group_sidlist.
 | |
| 	* security.h: Add pw argument in declaration of create_token.
 | |
| 	* syscalls.cc (seteuid32): Add pw argument in call to create_token.
 | |
| 
 | |
| 2002-06-23  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* fhandler.cc (fhandler_base::fstat): Set S_IFIFO for pipes.
 | |
| 	* fhandler_socket.cc (fhandler_socket.cc::fstat): Set S_IFSOCK.
 | |
| 
 | |
| 2002-06-23  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* lib/_cygwin_S_IEXEC.cc: Remove obsolete file.
 | |
| 
 | |
| 2002-06-23  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	Use cygwin_{shm,ipc}.h instead of /sys/{shm,ipc}.h throughout.
 | |
| 	* sys/ipc.h: Remove.
 | |
| 	* sys/shm.h: Remove.
 | |
| 	* cygwin_ipc.h: New file.
 | |
| 	* cygwin_shm.h: New file.
 | |
| 
 | |
| 2002-06-23  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygwin.sc: Add recent changes from ld sources.
 | |
| 
 | |
| 2002-06-23  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* winsup.h: Move #ifdef EXPCGF code into "winbase.h".
 | |
| 	* winbase.h: #ifdef EXPCGF code moved here from "winsup.h".
 | |
| 
 | |
| 2002-06-12  Thomas Pfaff  <tpfaff@gmx.net>
 | |
| 
 | |
| 	* thread.h (pthread::cleanup_stack): Rename cleanup_handlers to
 | |
| 	cleanup_stack.
 | |
| 	* thread.cc (pthread::pthread): Ditto.
 | |
| 	(pthread::create): Fix mutex verification.
 | |
| 	(pthread::push_cleanup_handler): Renam cleanup_handlers to
 | |
| 	cleanup_stack.  Remvoe Mutex calls, use InterlockedExchangePointer
 | |
| 	instead.
 | |
| 	(pthread::pop_cleanup_handler): Rename cleanup_handlers to
 | |
| 	cleanup_stack.
 | |
| 	(pthread::pop_all_cleanup_handlers): Ditto.
 | |
| 	(__pthread_once): Check state first and return if already done.
 | |
| 	(__pthread_join): Revert DEADLOCK test to __pthread_equal call.
 | |
| 	(__pthread_detach): Unlock mutex before deletion.
 | |
| 
 | |
| 2002-06-21  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* Makefile.in (cygrun.exe): Move -lgcc where it will do some good.
 | |
| 
 | |
| 2002-06-21  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* syscalls.cc (stat64_to_stat32): Correctly evaluate st_rdev.
 | |
| 	(fstat64): Set st_rdev to same value as st_dev.
 | |
| 	(stat_worker): Ditto.
 | |
| 
 | |
| 2002-06-21  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* security.cc (alloc_sd): Carefully check owner_sid again after trying
 | |
| 	SIDs from cygheap.
 | |
| 
 | |
| 2002-06-21  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* security.cc (alloc_sd): Remove unnecessary retrieval of owner name.
 | |
| 	Check uid for current user first and use SIDs from cygheap if so.
 | |
| 	Set errno to EINVAL if user SID isn't retrievable.  Just print user SID
 | |
| 	as debug output.
 | |
| 	Don't bail out if group SID isn't retrievable.  Change debug output
 | |
| 	appropriately.
 | |
| 
 | |
| 2002-06-21  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* errno.cc: Change text description for EBADF throughout.
 | |
| 
 | |
| 2002-06-20  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* uinfo.cc (cygheap_user::ontherange): Use env_name for NetUserGetInfo.
 | |
| 	(cygheap_user::env_logsrv): Verify env_domain is valid.
 | |
| 	* environ.cc: Include child_info.h and keep spenvs[] sorted.
 | |
| 	(environ_init): Check child_proc_info instead of myself->ppid_handle.
 | |
| 
 | |
| 2002-06-19  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler.cc (fhandler_base::set_flags): Change priority of "linked
 | |
| 	in" default binmode setting so that it has priority over optional
 | |
| 	setting.
 | |
| 
 | |
| 2002-06-19  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	Use hMainProc where appropriate, throughout.
 | |
| 	* environ.cc (spenv::retrieve): Add debugging statements.
 | |
| 
 | |
| 	* pinfo.cc (set_myself): Don't call strace.hello if already stracing.
 | |
| 	* strace.cc (strace): Move NO_COPY keyword so that it will actually
 | |
| 	take effect.
 | |
| 
 | |
| 2002-06-19  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* uinfo.cc (cygheap_user::ontherange): Call NetUserGetInfo() only with
 | |
| 	non-NULL logserver parameter.
 | |
| 
 | |
| 2002-06-16  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygheap.h (cygheap_user::issetuid): New method.
 | |
| 	* dtable.cc (dtable::vfork_child_dup): Use new method to determine if
 | |
| 	we are in "setuid mode."
 | |
| 	* fork.cc (fork_parent): Ditto.
 | |
| 	* spawn.cc (spawn_guts): Ditto.
 | |
| 	* syscalls.cc (seteuid32): Ditto.
 | |
| 	(setegid32): Ditto.
 | |
| 	* environ.cc (spenv::retrieve): (Suggested by Pierre Humblet) Do
 | |
| 	potential recalculation of cygheap_user stuff when in setuid mode.
 | |
| 	Return special value when environment variable should be calculated but
 | |
| 	not added.
 | |
| 	(build_env): Don't add retrieved value to dstp if it is 'dont_add'.
 | |
| 
 | |
| 2002-06-16  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	Changes suggested by Pierre Humblet.
 | |
| 	* environ.cc (NL): New macro.
 | |
| 	(conv_envvars): Use NL macro to fill in name and namelen.
 | |
| 	(spenv::namelen): New field.
 | |
| 	(spenvs): Use NL to fill in name and namelen.
 | |
| 	(spenv::retrieve): Eliminate length argument.  Instead, use namelen
 | |
| 	throughout.
 | |
| 	(build_env): Don't calculate length of initial FOO= part of
 | |
| 	environment.  Accommodate spenv::retrive argument change.
 | |
| 
 | |
| 2002-06-16  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygheap.h (cygheap_user::winname): New field.
 | |
| 	* cygheap.cc (cygheap_user::set_name): Clear winname when name changes.
 | |
| 	* uinfo.cc (cygheap_user::env_logsrv): Avoid calculating server when
 | |
| 	Windows user == SYSTEM.
 | |
| 	(cygheap_user::env_domain): Set winname here too.
 | |
| 	(cygheap_user::env_userprofile): Eliminate superfluous tests.
 | |
| 	(cygheap_user::env_name): Seed winname by calling env_domain().
 | |
| 
 | |
| 2002-06-12  Pierre Humblet  <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* spawn.cc (spawn_guts): Revert removal of ciresrv.moreinfo->uid =
 | |
| 	ILLEGAL_UID.
 | |
| 
 | |
| 2002-06-15  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* child_info.h (child_proc_info): Declare as base class.
 | |
| 	(spawn_info): Declare as alias of child_proc_info to aid debugging.
 | |
| 	(fork_info): Ditto.
 | |
| 	* cygheap.cc (cygheap_fixup_in_child): Use child_proc_info global
 | |
| 	rather than parameter.
 | |
| 	* cygheap.h (cygheap_fixup_in_child): Reflect above change in
 | |
| 	declaration.
 | |
| 	* dcrt0.cc (_dll_crt0): Move 'si' definition here.  Assign
 | |
| 	child_proc_info.
 | |
| 	(dll_crt0_1): Accommodate cygheap_fixup_in_child and *_info changes.
 | |
| 	* environ.cc (spenv::retrieve): Make regparm.
 | |
| 	* environ.h (environ_init): Ditto.
 | |
| 	(win_env::add_cache): Ditto.
 | |
| 	(build_env): Ditto.
 | |
| 	(getwinenv): Ditto.
 | |
| 	* fork.cc (sync_with_parent): Use fork_info global.
 | |
| 	(fork_child): Ditto.
 | |
| 
 | |
| 2002-06-14  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* uinfo.cc (cygheap_user::ontherange): Don't set HOMEDRIVE or HOMEPATH
 | |
| 	unless one or the other is specified.
 | |
| 
 | |
| 2002-06-14  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygheap.h (cygheap_user::userprofile_env_buf): New static member.
 | |
| 	* environ.cc (build_env): Add debugging statement.
 | |
| 	(spenvs): Switch functions for USERDOMAIN and USERNAME.
 | |
| 	* spawn.cc (spawn_guts): Move environment initialization prior to
 | |
| 	cygheap_setup_for_child or environment info will never be copied to
 | |
| 	child.
 | |
| 
 | |
| 2002-06-14  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygheap.h (cygheap_user): Add static members to hold home{drive,path}
 | |
| 	info.
 | |
| 	* uinfo.cc (cygheap_user::ontherange): Use static class members for
 | |
| 	local HOME* storage.
 | |
| 
 | |
| 2002-06-14  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygheap.cc (cygheap_user::set_logsrv): Remove.
 | |
| 	(cygheap_user::set_domain): Ditto.
 | |
| 	* cygheap.h (cygheap_user::set_logsrv): Remove declaration.
 | |
| 	(cygheap_user::set_domain): Ditto.
 | |
| 	(cygheap_user::env_domain): Declare new method.
 | |
| 	(cygheap_user::env_name): Ditto.
 | |
| 	* environ.cc (spenvs): Add two environment variables.
 | |
| 	* spawn.cc (spawn_guts): Call build_env after RevertToSelf.  Always set
 | |
| 	ciresrv.mount_h.
 | |
| 	(cygheap_user::ontherange): Recalculate homedrive/homepath if they are
 | |
| 	empty.  Use env_logsrv to get logon server.
 | |
| 	(cygheap_user::env_logsrv): Calculate server name here rather than
 | |
| 	relying on it having been previously calculated.
 | |
| 	(cygheap_user::env_domain): Ditto for domain name.
 | |
| 	(cygheap-user::env_name): New method.
 | |
| 
 | |
| 2002-06-12  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* syscalls.cc (seteuid32): Do not get or set the environment.  Do not
 | |
| 	call LookupAccountSid nor internal_getlogin.  Set cygheap->user name
 | |
| 	and sid from the passwd entry.
 | |
| 	* uinfo.cc (uinfo_init): Only call internal_getlogin when starting from
 | |
| 	a non Cygwin process and use the values returned in user.
 | |
| 	(internal_getlogin): Simplify to case where starting from a non Cygwin
 | |
| 	process.  Store return values in user and return void.  Do not set the
 | |
| 	Windows default environment.
 | |
| 	* dcrt0.cc (dll_crt0_1): Call uinfo_init only when needed.  Do not set
 | |
| 	myself->uid nor reset user.sid.
 | |
| 	* spawn.cc (spawn_guts): Get the sid from cygheap->user.  Always
 | |
| 	RevertToSelf().  Don't set uid in impersonated case.
 | |
| 	* cygheap.cc (cygheap_user::set_sid): Do not set orig_sig.
 | |
| 	(cygheap_user::set_orig_sid): New.
 | |
| 	* cygheap.h: Declare cygheap_user::set_sid.
 | |
| 	* winsup.h: Add argument to uinfo_init().
 | |
| 
 | |
| 2002-06-14  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* environ.cc (build_env): If realloc moves envblock, move s with it.
 | |
| 
 | |
| 2002-06-13  Nicholas S. Wourms  <nwourms@netscape.net>
 | |
| 
 | |
| 	* winver.rc: Add more words to copyright.
 | |
| 
 | |
| 2002-06-13  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygheap.cc (cygheap_user::set_name): Revert previous change.
 | |
| 	* environ.cc (spenv::retrieve): Check return value of call to
 | |
| 	cygheap->user.*from_cygheap().
 | |
| 
 | |
| 2002-06-13  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* cygheap.cc (cygheap_user::set_name): Remove setting homedrive and
 | |
| 	homepath to NULL.
 | |
| 	(cygheap_user::set_logsrv):  Fix free'ing of plogsrv.
 | |
| 	* cygheap.h (cygheap_user::cygheap_user): Initialize homedrive and
 | |
| 	homepath to NULL.
 | |
| 
 | |
| 2002-06-13  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* security.cc (get_logon_server): Use strcasematch rather than
 | |
| 	strcasecmp.
 | |
| 
 | |
| 2002-06-12  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* path.cc (chdir): Minor cleanup.
 | |
| 
 | |
| 2002-06-12  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* environ.cc (build_env): Correctly fill out windows environment block
 | |
| 	with win32 paths rather than posix paths.
 | |
| 
 | |
| 2002-06-12  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygheap.cc (cygheap_user::set_name): Set homedrive and homepath to
 | |
| 	NULL on user name change.
 | |
| 	(cygheap_user::set_logsrv): Allocate enough space for leading \\ so
 | |
| 	that we can put this in the environment, if needed.
 | |
| 	* cygheap.h (homebodies): New enum.
 | |
| 	(cygheap_user::homedrive): New field.
 | |
| 	(cygheap_user::homepath): Ditto.
 | |
| 	(cygheap_user::env_logsrv): New method.
 | |
| 	(cygheap_user::env_homepath): New method.
 | |
| 	(cygheap_user::env_homedrive): New method.
 | |
| 	(cygheap_user::env_userprofile): New method.
 | |
| 	(cygheap_user::ontherange): New method.
 | |
| 	* environ.cc (envsize): Eliminate debugging argument.
 | |
| 	(environ_init): Assume that envc counts number of elments not total
 | |
| 	size.
 | |
| 	(spenv): New class.
 | |
| 	(spenvs): New array, rename from forced_winenv_vars, using spenv.
 | |
| 	(spenv::retrieve): New method.
 | |
| 	(build_env): Rename from 'winenv' -- one stop shopping for building new
 | |
| 	environment blocks for both windows and "unix".
 | |
| 	* environ.h (build_env: Declare.
 | |
| 	(winenv): Delete declaration.
 | |
| 	(envsize): Ditto.
 | |
| 	* spawn.cc (spawn_guts): Use build_env to build windows and cygwin
 | |
| 	environment blocks.
 | |
| 	* uinfo.cc (internal_getlogin): Eliminate environment manipulation.
 | |
| 	Default to info from GetUserName if it exists.  Move HOMEPATH and
 | |
| 	HOMEDRIVE stuff elsewhere.  Move HOME setting elsewhere.  Only set HOME
 | |
| 	environment variable in processes that are not parented by a cygwin
 | |
| 	process.
 | |
| 	(cygheap_user::ontherange): Define new method.
 | |
| 	(cygheap_user::env_logsrv): Ditto.
 | |
| 	(cygheap_user::env_homepath): Ditto.
 | |
| 	(cygheap_user::env_homedrive): Ditto.
 | |
| 	(cygheap_user::env_userprofile): Ditto.
 | |
| 
 | |
| 2002-06-11  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* spawn.cc (spawn_guts): More hToken removal cleanup.
 | |
| 
 | |
| 2002-06-09  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* spawn.cc (spawn_guts): Define sec_attribs and call sec_user_nih()
 | |
| 	only once.
 | |
| 
 | |
| 2002-06-10  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* Makefile.in: Ensure that -MD gets added to CFLAGS regardless of
 | |
| 	CFLAGS command-line setting.
 | |
| 
 | |
| 	* cygwin.din: Export sexec* functions as function which returns ENOSYS
 | |
| 	(i.e., sexec* is deprecated).
 | |
| 	* dtable.cc (dtable::vfork_child_dup): Ensure that impersonation is
 | |
| 	restored even on failure.
 | |
| 	* exec.cc: Throughout, remove references to sexec* and _spawnve.
 | |
| 	* pinfo.h: Remove _spawnve declaration.
 | |
| 	* spawn.cc: Rename _spawnve to spawnve and use throughout.
 | |
| 	(spawn_guts): Eliminate hToken argument and processing of same.  Just
 | |
| 	perform special actions if impersonating.
 | |
| 	(spawnve): Rename from _spawnve.
 | |
| 
 | |
| 2002-06-10  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* include/sys/strace.h (strace): Avoid use of constructor.
 | |
| 
 | |
| 2002-06-10  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* dcrt0.cc (dll_crt0_1): Initialize wincap and check for sanity before
 | |
| 	running global ctors.
 | |
| 	* wincap.h (wincap): Eliminate constructor.  Default is to zero memory,
 | |
| 	anyway.
 | |
| 	* wincap.cc (wincap): Copy this on fork to avoid initialization in
 | |
| 	forked processes.
 | |
| 
 | |
| 2002-06-10  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (fhandler_socket::fixup_after_fork): Revert patch from
 | |
| 	2002-06-04.
 | |
| 	* fhandler_socket.cc (fhandler_socket::fixup_after_fork): Ditto.
 | |
| 	(fhandler_socket::dup): Ditto.
 | |
| 	* net.cc (fdsock): Make sockets explicitely noninheritable on NT.
 | |
| 
 | |
| 2002-06-09  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::fstat_helper): Correctly
 | |
| 	set number of links for directory, if appropriate.
 | |
| 
 | |
| 2002-06-10  Robert Collins  <rbtcollins@hotmail.com>
 | |
| 
 | |
| 	* thread.cc: Variation of a patch from Thomas Pffaf.
 | |
| 	(__pthread_detach): Cleanup thread object if the thread has terminated.
 | |
| 	(__pthread_join): Change order of error checks, and lock against
 | |
| 	join/detach/exit races.
 | |
| 	(__pthread_exit): Lock object against join/detach/exit races.
 | |
| 	(pthread::thread_init_wrapper): Ditto.
 | |
| 	(thread_init_wrapper): Rename to pthread::thread_init_wrapper.
 | |
| 	(pthread::create): Check that the mutex initialized correctly.
 | |
| 	(pthread::push_cleanup_handler): Lock against potential cancellation
 | |
| 	race. NB: this may not be required if pthread_cleanup_push is non-
 | |
| 	cancelable.
 | |
| 	* thread.h (pthread::mutex): New member.
 | |
| 	(thread_init_wrapper): Rename to pthread::thread_init_wrapper.
 | |
| 	(pthread::thread_init_wrapper_: New static member.
 | |
| 
 | |
| 2002-06-10  Robert Collins  <rbtcollins@hotmail.com>
 | |
| 
 | |
| 	* cygwin.din: Add _pthread_cleanup_push and _pthread_cleanup_pop.
 | |
| 	* pthread.cc: Change __pthread_self to pthread::self() thruoghout.
 | |
| 	(_pthread_cleanup_push): New function.
 | |
| 	(_pthread_cleanup_pop): Ditto.
 | |
| 	* thread.cc: Thanks to Thomas Pfaff for the pthread cleanup_push,_pop
 | |
| 	patch, this work is derived from that.
 | |
| 	Change __pthread_self to pthread::self() thruoghout.
 | |
| 	(__pthread_self): Rename to pthread::self.
 | |
| 	(pthread::self): New method.
 | |
| 	(pthread::pthread): Initialize new member.
 | |
| 	(pthread::push_cleanup_handler): New method.
 | |
| 	(pthread::pop_cleanup_handler): New method.
 | |
| 	(pthread::pop_all_cleanup_handlers): New method.
 | |
| 	(__pthread_exit): Pop all cleanup handlers.
 | |
| 	* thread.h (pthread::push_cleanup_handler): Declare.
 | |
| 	(pthread::pop_cleanup_handler): Ditto.
 | |
| 	(pthread::pop_all_cleanup_handlers): Ditto.
 | |
| 	(pthread::self): New static method.
 | |
| 	(__pthread_exit): Give C++ linkage.
 | |
| 	(__pthread_join): Ditto.
 | |
| 	(__pthread_detach): Ditto.
 | |
| 	(__pthread_self): Remove.
 | |
| 
 | |
| 2002-04-24  Thomas Pfaff  <tpfaff@gmx.net>
 | |
| 
 | |
| 	* include/pthread.h (__pthread_cleanup_handler): New structure.
 | |
| 	(pthread_cleanup_push): Rewritten.
 | |
| 	(pthread_cleanup_pop): Ditto.
 | |
| 	(_pthread_cleanup_push): New prototype.
 | |
| 	(_pthread_cleanup_pop): Ditto.
 | |
| 
 | |
| 2002-04-24  Thomas Pfaff  <tpfaff@gmx.net>
 | |
| 
 | |
| 	* thread.cc (thread_init_wrapper): Check if thread is already joined.
 | |
| 	(__pthread_join): Set joiner first.
 | |
| 	(__pthread_detach): Ditto.
 | |
| 
 | |
| 2002-06-10  Robert Collins  <rbtcollins@hotmail.com>
 | |
| 
 | |
| 	* cygserver_transport.cc (create_server_transport): Finish the split
 | |
| 	out of sockets code from transport_layer_base. Thanks to Nicholas
 | |
| 	Wourms and Conrad Scott for catching this.
 | |
| 
 | |
| 2002-06-08  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* pinfo.cc (pinfo_dummy): Initialize to correct size.
 | |
| 
 | |
| 2002-06-08  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* path.cc: Change MOUNT_AUTO to MOUNT_CYGDRIVE throughout.
 | |
| 	* shared_info.h (CURR_MOUNT_MAGIC): Update.
 | |
| 
 | |
| 2002-06-08  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* external.cc (cygwin_internal): Make v1 mount table access invalid.
 | |
| 	* path.cc (mount_info::init): Remove had_to_create_mount_areas initialization.
 | |
| 	(mount_info::from_registry): Remove v1 table import.
 | |
| 	(mount_info::read_v1_mounts): Eliminate.
 | |
| 	(mount_info::import_v1_mounts): Ditto.
 | |
| 	* shared_info.h (mount_info): Ditto for both of above.
 | |
| 	* sys/mount.h (MOUNT_DEVFS): New enum.
 | |
| 	(MOUNT_PROC): Ditto.
 | |
| 
 | |
| 2002-06-08  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* include/wchar.h: Define __need_size_t.
 | |
| 
 | |
| 2002-06-07  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler_socket.cc (fhandler_socket::fstat): Don't assume that socket
 | |
| 	is unix-domain socket.
 | |
| 
 | |
| 2002-06-07  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* times.cc (hires_ms::prime): Set init flag.
 | |
| 
 | |
| 2002-06-07  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* times.cc (hires_ms::prime): Adjust epoch of initime_us from 1601 to
 | |
| 	1970.
 | |
| 
 | |
| 2002-06-06  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* autoload.cc (timeGetDevCaps): Define new autoload function.
 | |
| 	(timeGetTime): Ditto.
 | |
| 	(timeBeginPeriod): Ditto.
 | |
| 	(timeEndPeriod): Ditto.
 | |
| 	* hires.h (hires_base): New class.  Rename from hires.
 | |
| 	(hires_us): New class.
 | |
| 	(hires_ms): New class.
 | |
| 	* strace.cc (strace::microseconds): Use hires_us class.
 | |
| 	* times.cc (gettimeofday): Use hires-ms class.
 | |
| 	(hires_us::prime): Rename from hires::prime.
 | |
| 	(hires_us::usecs): Rename from hires:usecs.
 | |
| 	(hires_ms::prime): New method.
 | |
| 	(hires_ms::usecs): New method.
 | |
| 	(hires_ms::~hires_ms): New destructor.
 | |
| 
 | |
| 2002-06-06  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* autoload.cc (noload): Correctly save argument count register.
 | |
| 
 | |
| 2002-06-05  Conrad Scott  <conrad.scott@dsl.pipex.com>
 | |
| 
 | |
| 	* fhandler.cc (fhandler_base::fstat): Initialise tv_nsec member of
 | |
| 	st_atim, st_mtim, and st_ctim fields.
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::fstat_helper): Ditto.
 | |
| 	* fhandler_process.cc (fhandler_process::fstat): Ditto.
 | |
| 	* glob.c (stat32_to_STAT): Copy across the whole st_atim, st_mtime, and
 | |
| 	st_ctim fields.
 | |
| 	* syscalls.cc (stat64_to_stat32): Ditto.
 | |
| 	* times.cc (to_timestruc_t): New function.
 | |
| 	(time_as_timestruc_t): New function.
 | |
| 	* winsup.h: Add to_timestruc_t and time_as_timestruc_t functions.
 | |
| 	* include/cygwin/stat.h: Replace time_t with timestruc_t throughout for
 | |
| 	all file times, removing the st_spare1, st_spare2, and st_spare3 fields
 | |
| 	in the process.  Add macros to access tv_sec fields by old names.
 | |
| 	* include/cygwin/types.h: Typedef timespec_t and timestruc_t as struct
 | |
| 	timespec.
 | |
| 
 | |
| 2002-06-03  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* sec_helper.cc (lookup_name): Suppress.
 | |
| 	* security.cc (alloc_sd): Remove logsrv argument.
 | |
| 	Remove two calls to lookup_name.
 | |
| 	(set_security_attribute): Remove logsrv argument.
 | |
| 	Remove logsrv argument in call to alloc_sd.
 | |
| 	(set_nt_attribute): Remove logsrv argument.
 | |
| 	Remove logsrv argument in call to set_security_attribute.
 | |
| 	(set_file_attribute): Remove logsrv argument.
 | |
| 	Remove logsrv argument in call to set_nt_attribute.
 | |
| 	(set_file_attribute): Remove logsrv argument.
 | |
| 	Remove logsrv argument in call to set_file_attribute.
 | |
| 	* syscalls.cc (chown_worker): Remove logserver argument in
 | |
| 	call to set_file_attribute.
 | |
| 	(chmod): Ditto.
 | |
| 	* shm.cc (shmget): Remove logsrv argument in call to alloc_sd.
 | |
| 	* uinfo.cc (internal_getlogin): Replace calls to
 | |
| 	lookup_name by call to LookupAccountName.
 | |
| 	* security.h: Remove logsrv in declarations of set_file_attribute
 | |
| 	and alloc_sd. Remove declaration of lookup_name.
 | |
| 
 | |
| 2002-06-05  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* child_info.h (CHILD_INFO_MAGIC): Oops.  Revert previous change.  gcc
 | |
| 	3.1 bug?
 | |
| 
 | |
| 2002-06-05  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* child_info.h (CHILD_INFO_MAGIC): Update.
 | |
| 
 | |
| 2002-06-05  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* strace.cc (strace::hello): Set inited, when appropriate.
 | |
| 
 | |
| 2002-06-05  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* cygwin.din: Eliminate some newlib wrappers.
 | |
| 	* path.cc (get_devn): Only consider first 99 potential com devices.
 | |
| 	(get_device_number): Ditto.
 | |
| 	* times.cc (_times): Eliminate.
 | |
| 	(_times): Rename from times().
 | |
| 
 | |
| 2002-06-05  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* dir.cc (rmdir): Streamline.  Detect attempts to remove directories
 | |
| 	from "read-only" virtual devices. (Suggested by Pavel Tsekov)
 | |
| 	* syscalls.cc (unlink): Detect attempts to remove directories from
 | |
| 	"read-only" virtual devices.  (From Pavel Tsekov)
 | |
| 
 | |
| 2002-06-05  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* dtable.cc (handle_to_fn): Check error return value from NtQueryObject
 | |
| 	first before seeing if name buffer is NULL.
 | |
| 
 | |
| 	* grp.cc (read_etc_group): Fix gcc warning regarding snprintf format.
 | |
| 	* passwd.cc (read_etc_passwd): Ditto.
 | |
| 
 | |
| 2002-04-18  Thomas Pfaff  <tpfaff@gmx.net>
 | |
| 
 | |
| 	* thread.h (pthread::joiner): New member.
 | |
| 	* thread.cc (pthread::pthread): Initialize joiner to NULL
 | |
| 	(pthread::create): Increment of thread counter moved from
 | |
| 	__pthread_create to this location.
 | |
| 	(__pthread_create): Increment thread counter removed.
 | |
| 	(thread_init_wrapper): Set joiner to self when thread was created
 | |
| 	detached.
 | |
| 	(__pthread_exit): delete thread when it is detached and not
 | |
| 	joined.
 | |
| 	(__pthread_join): Check for deadlock and delete thread when it has
 | |
| 	terminated.
 | |
| 	(__pthread_detach): Set joiner to self when thread state
 | |
| 	changed to detached.
 | |
| 
 | |
| 2002-06-05  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* grp.cc (read_etc_group): When emulating nonexisting group file on
 | |
| 	NT systems, read primary group SID from process token.  Use that info
 | |
| 	to create correct group entry.  On error or on 9x systems fallback
 | |
| 	to emulating Administrators group as before.
 | |
| 	* passwd.cc (read_etc_passwd): When emulating nonexisting passwd file
 | |
| 	on NT systems, read user and primary group SID from process token.
 | |
| 	Use that info to create correct passwd entry.  On error or on 9x
 | |
| 	systems fallback to emulating user with Administrator user id and
 | |
| 	Administrators group as before.
 | |
| 
 | |
| 2002-06-05  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* grp.cc (etc_group): Removed.
 | |
| 	(parse_grp): Make line parameter nonconst.  Don't copy data into new
 | |
| 	allocated memory.  Check for CR instead of LF to accomodate new
 | |
| 	read method.
 | |
| 	(add_grp_line): Make line parameter nonconst.
 | |
| 	(read_etc_group): Rearrange using new pwdgrp_read class.
 | |
| 	* passwd.cc (parse_pwd): Don't copy data into new allocated memory.
 | |
| 	Check for CR instead of LF to accomodate new read method.
 | |
| 	(read_etc_passwd): Rearrange using new pwdgrp_read class.
 | |
| 	* pwdgrp.h (pwdgrp_check::set_last_modified):  Use different
 | |
| 	parameters.
 | |
| 	(class pwdgrp_read): New class for opening and reading passwd and
 | |
| 	group files.
 | |
| 
 | |
| 2002-06-04  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* dtable.cc (handle_to_fn): Attempt to handle "raw" accesses to remote
 | |
| 	shares.
 | |
| 	* path.cc (mount_info::conv_to_win32_path): Set flags to binary when
 | |
| 	mount entry is not found.
 | |
| 	(mount_info::set_flags_from_win32_path): Ditto.
 | |
| 
 | |
| 2002-06-04  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* dtable.cc (handle_to_fn): Correct placement and length of name
 | |
| 	buffer.  (Suggested by Pavel Tsekov)
 | |
| 
 | |
| 2002-06-04  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	Remove fcntl.h includes throughout.
 | |
| 	* fhandler.h: Move fcntl.h include here.
 | |
| 	(fhandler_base::set_flags): Accept supplied_bin argument.  Make
 | |
| 	non-inlined.
 | |
| 	* dtable.cc (dtable::init_std_file_from_handle): Just use binmode from
 | |
| 	pc.
 | |
| 	(reset_to_open_binmode): Use set_flags.
 | |
| 	* cygwin.din (open): Avoid newlib wrapper.
 | |
| 	(read): Ditto.
 | |
| 	(unlink): Ditto.
 | |
| 	(write): Ditto.
 | |
| 	* fhandler.cc (fhandler_base::set_flags): Accept supplied_bin argument.
 | |
| 	Make binmode decisions here.
 | |
| 	(fhandler_base::open): Avoid using pc if it is NULL.  Eliminate binmode
 | |
| 	logic.  Just call set_flags with binmode argument.
 | |
| 	(fhandler_base::init): Call set_flags with binmode argument.
 | |
| 	* fhandler_clipboard.cc (fhandler_dev_clipboard::open): Ditto.
 | |
| 	* fhandler_console.cc (fhandler_console::open): Ditto.
 | |
| 	(fhandler_console::init): Force binary on open.
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::open): Don't set binmode
 | |
| 	here.  Let it happen in base class.
 | |
| 	* fhandler_dsp.cc (fhandler_dev_dsp::open): Force binmode open.  Set
 | |
| 	return value appropriately if unable to open.
 | |
| 	* fhandler_proc.cc (fhandler_proc::open): Make sure flags are set
 | |
| 	before open_status.
 | |
| 	* fhandler_process.cc (fhandler_process::open): Ditto.
 | |
| 	* fhandler_registry.cc (fhandler_registry::open): Ditto.
 | |
| 	* fhandler_random.cc (fhandler_dev_random::fhandler_dev_random): Ditto.
 | |
| 	* fhandler_raw.cc (fhandler_dev_raw::open): Force O_BINARY by default.
 | |
| 	* fhandler_serial.cc (fhandler_serial::init): Ditto.
 | |
| 	* fhandler_tty.cc (fhandler_tty_slave::open): Ditto.
 | |
| 	(fhandler_pty_master::open): Ditto.
 | |
| 	* fhandler_virtual.cc (fhandler_virtual::open): Ditto.
 | |
| 	* fhandler_windows.cc (fhandler_windows::open): Ditto.
 | |
| 	* fhandler_zero.cc (fhandler_dev_zero::open): Ditto.
 | |
| 	* net.cc (fdsock): Ditto.
 | |
| 	* path.cc (path_conv::check): Avoid checking for executable extension
 | |
| 	when directory. (Suggested by Pavel Tsekov)
 | |
| 	(set_flags): Set PATH_TEXT explicitly, when appropriate.
 | |
| 	(mount_info::conv_to_win32_path): Use set_flags() to set path flags.
 | |
| 	* path.h (PATH_TEXT): New enum.
 | |
| 	(path_conv::binmode): Return appropriate constant based on binmode.
 | |
| 	* pipe.cc (make_pipe): Set binmode to O_TEXT xor O_BINARY.
 | |
| 	* syscalls.cc (setmode_helper): Make debugging message a little
 | |
| 	clearer.
 | |
| 	(setmode): Set binmode via set_flags.
 | |
| 
 | |
| 2002-06-04  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler.h (class fhandler_socket): Add private method
 | |
| 	fixup_after_fork (bool, HANDLE).
 | |
| 	* fhandler_socket.cc (fhandler_socket::fixup_after_fork): Move
 | |
| 	functionality to new private method.  Add closing parent socket
 | |
| 	if not called from dup().  Create method new calling private method
 | |
| 	with appropriate parameter.
 | |
| 	(fhandler_socket::fixup_after_exec): Call private method
 | |
| 	fixup_after_fork with appropriate parameter.
 | |
| 	(fhandler_socket::dup): Ditto.
 | |
| 
 | |
| 2002-06-04  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* fhandler_dsp.cc (fhandler_dev_dsp::open): Set errno to EACCES if
 | |
| 	requested mode isn't supported.
 | |
| 
 | |
| 2002-06-03  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler.cc (fhandler_base::open): Don't set binmode if already set.
 | |
| 	Don't check for file.  Files should already be set.  Report on binary
 | |
| 	mode for debugging.
 | |
| 	(fhandler_base::fhandler_base): Don't set default binmode here.  That's
 | |
| 	for later.
 | |
| 	* fhandler_console.cc (fhandler_console::output_tcsetattr): Don't set
 | |
| 	binmode, ever, for console.
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::open): Always set the
 | |
| 	binary mode to the value derived from mount table.
 | |
| 	* path.cc (mount_info::conv_to_win32_path): Default to binmode if path
 | |
| 	does not translate into anything in the mount table.
 | |
| 
 | |
| 2002-06-03  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* external.cc (cygwin_internal): Add CW_EXTRACT_DOMAIN_AND_USER
 | |
| 	handling to call extract_nt_dom_user() from applications.
 | |
| 	* include/sys/cygwin.h (cygwin_getinfo_types): Add
 | |
| 	CW_EXTRACT_DOMAIN_AND_USER.
 | |
| 
 | |
| 2002-06-03  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* syscalls.cc (stat64_to_stat32): Transform st_dev correctly.
 | |
| 	(fstat64): Add evaluating st_ino and st_dev.
 | |
| 	(stat_worker): Evaluate st_dev as 32 bit value.
 | |
| 	* include/cygwin/stat.h: Use new dev_t definition throughout.
 | |
| 	* include/cygwin/types.h: Define __dev16_t and __dev32_t.  Define
 | |
| 	dev_t according to __CYGWIN_USE_BIG_TYPES__ setting.
 | |
| 	* include/sys/sysmacros.h: Define major, minor and makedev
 | |
| 	according to __CYGWIN_USE_BIG_TYPES__ setting.
 | |
| 
 | |
| 2002-06-03  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* syscalls.cc (setegid32): Verify the correctness of the gid
 | |
| 	of the group returned by getgrgid32.
 | |
| 
 | |
| 2002-06-03  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* security.cc (lsa2wchar): Suppressed.
 | |
| 	(get_lsa_srv_inf): Suppressed.
 | |
| 	(get_logon_server_and_user_domain): Suppressed.
 | |
| 	(get_logon_server): Essentially new.
 | |
| 	(get_user_groups): Add "domain" argument. Only lookup the
 | |
| 	designated server and use "domain" in LookupAccountName.
 | |
| 	(is_group_member): Simplify the arguments.
 | |
| 	(get_user_local_groups): Simplify the arguments. Do only a
 | |
| 	local lookup. Use "BUILTIN" and local domain in LookupAccountName.
 | |
| 	(get_user_primary_group). Only lookup the designated server.
 | |
| 	(get_group_sidlist): Remove logonserver argument. Do not lookup
 | |
| 	any server for the SYSTEM account.
 | |
| 	(create_token): Delete logonserver and call to get_logon_server.
 | |
| 	Adjust arguments of get_group_sidlist, see above.
 | |
| 	* security.h: Delete declaration of get_logon_server_and_user_domain
 | |
| 	and add declaration of get_logon_server.
 | |
| 	* uinfo.cc (internal_get_login): Call get_logon_server instead of
 | |
| 	get_logon_server_and_user_domain.
 | |
| 
 | |
| 2002-06-02  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* dtable.cc (handle_to_fn): Use largest match for device.  Correctly
 | |
| 	(?) deal with remote drive weirdness.
 | |
| 
 | |
| 2002-06-02  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::fstat_by_name): Check
 | |
| 	specifically for non-existent file, first.
 | |
| 	(fhandler_disk_file::fstat): Perform fd open on files with funny
 | |
| 	characters.
 | |
| 
 | |
| 2002-06-02  Christopher January <chris@atomice.net>
 | |
| 
 | |
| 	* fhandler_process.cc (fhandler_process::open): Set fileid.
 | |
| 
 | |
| 2002-06-02  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	Remove unneeded sigproc.h includes throughout.
 | |
| 	* fhandler.h (fhandler_proc::fill_filebuf): Take a pinfo argument.
 | |
| 	* fhandler_proc.cc (fhandler_proc::get_proc_fhandler): Simplify search
 | |
| 	for given pid.
 | |
| 	(fhandler_proc::readdir): Assume that pid exists if it shows up in the
 | |
| 	winpid list.
 | |
| 	* fhandler_process.cc (fhandler_process::open): Simplify search for
 | |
| 	given pid.  Call fill_filebuf with pinfo argument.
 | |
| 	(fhandler_process::fill_filebuf): Pass pinfo here and assume that it
 | |
| 	exists.
 | |
| 	* pinfo.h (pinfo::remember): Define differently if sigproc.h is not
 | |
| 	included.
 | |
| 
 | |
| 2002-06-02  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* dll_init.cc (dll_list::detach): Don't run destructor on exit.
 | |
| 
 | |
| 2002-06-01  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler.cc (fhandler_base::fstat): Move dev and ino calculation into
 | |
| 	caller.
 | |
| 	* syscalls.cc (stat_worker): Calculate dev and ino calculation here, if
 | |
| 	zero.
 | |
| 	* fhandler_proc.cc (fhandler_proc::fhandler_proc): Minor reorg for
 | |
| 	debugging.
 | |
| 	* fhandler_process.cc (fhandler_process::exists): Return 0 on
 | |
| 	nonexistence.
 | |
| 	(fhandler_process::fstat): Simplify pid logic.
 | |
| 	* fhandler_tape.cc (fhandler_dev_tape::fstat): Minor reformatting.
 | |
| 
 | |
| 2002-06-01  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* path.cc (chdir): Don't allow cd'ing to a non-directory virtual path.
 | |
| 
 | |
| 2002-05-31  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (readdir): Move inode calculation into caller.
 | |
| 	(fhandler_cygdrive::readdir): Add "." and "..".
 | |
| 	* dir.cc (readdir): Move inode calculation here so that fhandler
 | |
| 	readdirs can benefit.
 | |
| 
 | |
| 2002-05-31  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler_console.cc (fhandler_console::open): Reinstate setting of
 | |
| 	flags.
 | |
| 
 | |
| 	* dtable.cc (dtable::init_std_file_from_handle): Default to using
 | |
| 	binmode derived from path_conv, when required.
 | |
| 	* fhandler.h (fhandler_base::get_w_binary): Default to binmode if
 | |
| 	nothing else is specified.
 | |
| 	* fhandler.h (fhandler_base::get_r_binary): Ditto.
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::fstat_by_handle): Work
 | |
| 	around g++ warning.
 | |
| 
 | |
| 	* path.cc (path_conv::check): Remove a debugging statement.
 | |
| 
 | |
| 2002-05-31  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler_console.cc (fhandler_console::open): Always default to
 | |
| 	binmode.
 | |
| 	(fhandler_console::write_normal): Don't honor binmode setting.  There
 | |
| 	is already a termios setting for this.
 | |
| 	(fhandler_console::init): Correct argument order in init call.
 | |
| 
 | |
| 2002-05-31  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler.cc (fhandler_base::open): Make default open mode == binmode.
 | |
| 	(fhandler_base::init): Set open flags based on derived binmode argument.
 | |
| 
 | |
| 2002-05-31  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* dll_init.cc (dll_list::init): Eliminate unneeded debugging statement.
 | |
| 
 | |
| 2002-05-31  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler_proc.cc (fhandler_proc::readdir): Set errno when no more
 | |
| 	files.
 | |
| 	* fhandler_process.cc (fhandler_process::readdir): Ditto.
 | |
| 	* fhandler_registry.cc (fhandler_registry::readdir): Ditto.
 | |
| 
 | |
| 2002-05-30  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* path.cc (path_conv::check): Set fileattr to INVALID_FILE_ATTRIBUTES
 | |
| 	for nonexistent virtual device path.
 | |
| 	(chdir): Set correct errno when attempt is made to cd to nonexistent
 | |
| 	virtual device path.
 | |
| 
 | |
| 2002-05-30  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::fstat): Always call
 | |
| 	fstat_by_name if fd is not opened to allow fstat_by_name to properly
 | |
| 	set errno.
 | |
| 
 | |
| 2002-05-30  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* autoload.cc: Replace autoload statments for ZwXXX by NtXXX.
 | |
| 	Drop ZwQuerySystemInformation since NtQuerySystemInformation was
 | |
| 	already available.
 | |
| 	* fhandler_proc.cc (format_proc_uptime): Replace call to
 | |
| 	ZwQuerySystemInformation by call to NtQuerySystemInformation.
 | |
| 	(format_proc_stat): Ditto.
 | |
| 	* fhandler_process.cc (format_process_stat): Replace call to
 | |
| 	ZwQueryInformationProcess by call to NtQueryInformationProcess.
 | |
| 	(get_process_state): Ditto.
 | |
| 	(get_mem_values): Ditto.  Replace call to ZwQueryVirtualMemory by
 | |
| 	call to NtQueryVirtualMemory.
 | |
| 	* ntdll.h: Cleanup.  Drop ZwQuerySystemInformation since
 | |
| 	NtQuerySystemInformation was already available.  Replace declarations
 | |
| 	of ZwXXX functions by declarations of NtXXX.
 | |
| 	* pinfo.cc (winpids::enumNT): Replace call to ZwQuerySystemInformation
 | |
| 	by call to NtQuerySystemInformation.
 | |
| 
 | |
| 2002-05-29  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler.cc (binmode): Default to binmode when mode is not known.
 | |
| 
 | |
| 2002-05-29  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* include/sys/cygwin.h (EXTERNAL_PINFO_VERSION): Reinstate.
 | |
| 	* external.cc (fillout_pinfo): Use it.
 | |
| 
 | |
| 2002-05-29  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* external.cc (fillout_pinfo): Use new version define.
 | |
| 	* include/sys/cygwin.h (external_pinfo): Define
 | |
| 	EXTERNAL_PINFO_VERSION_16_BIT and EXTERNAL_PINFO_VERSION_32_BIT
 | |
| 	instead of just EXTERNAL_PINFO_VERSION.
 | |
| 
 | |
| 2002-05-29  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* external.cc (fillout_pinfo): Set new version field in external_pinfo
 | |
| 	structure.
 | |
| 	* include/sys/cygwin.h (external_pinfo): Replace strace_file with
 | |
| 	version field.
 | |
| 
 | |
| 2002-05-29  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	Change internal uid datatype from __uid16_t to __uid32_t
 | |
| 	throughout.
 | |
| 	* cygwin.din: Export new symbols getpwuid32, getpwuid_r32, getuid32,
 | |
| 	geteuid32, setuid32, seteuid32.
 | |
| 	* passwd.cc (getpwuid32): New function.
 | |
| 	(getpwuid_r32): Ditto.
 | |
| 	* syscalls.cc (seteuid32): Ditto.
 | |
| 	(setuid32): Ditto.
 | |
| 	* uinfo.cc (getuid32): Ditto.
 | |
| 	(geteuid32): Ditto.
 | |
| 	* winsup.h (uid16touid32): New macro, correct casting from __uid16_t
 | |
| 	to __uid32_t.
 | |
| 	(gid16togid32): Ditto fir gids.
 | |
| 	(getuid32): Declare.
 | |
| 	(geteuid32): Ditto.
 | |
| 	(getpwuid32): Ditto.
 | |
| 	* include/sys/cygwin.h (struct external_pinfo): Add members uid32 and
 | |
| 	gid32.
 | |
| 
 | |
| 2002-05-29  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* include/cygwin/socket.h: Protect some symbols against multiple
 | |
| 	definition.
 | |
| 	* include/netinet/ip.h: Ditto.
 | |
| 	* include/netinet/tcp.h: Ditto.
 | |
| 
 | |
| 2002-05-29  Wu Yongwei <adah@netstd.com>
 | |
| 
 | |
| 	* include/netinet/ip.h: Replace by BSD derived version of the file.
 | |
| 	* include/netinet/tcp.h: Ditto.
 | |
| 	* include/netinet/udp.h: New file.
 | |
| 	* include/cygwin/ip.h: Remove.
 | |
| 
 | |
| 2002-05-29  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* dtable.cc (dtable::init_std_file_from_handle): Attempt stronger
 | |
| 	detection of invalid handle.
 | |
| 	(handle_to_fn): Detect pathological condition where NT resets the
 | |
| 	buffer pointer to NULL on an invalid handle.
 | |
| 
 | |
| 2002-05-28  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::fstat_helper): Properly
 | |
| 	check for whether we should be opening the file to search for #!
 | |
| 	characters.  Set path_conv structure execability, too, when
 | |
| 	appropriate.
 | |
| 
 | |
| 2002-05-28  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	* security.cc (set_security_attribute): Call getegid32() instead of
 | |
| 	getegid().
 | |
| 	* include/cygwin/grp.h: Declare getegid32().
 | |
| 
 | |
| 2002-05-28  Corinna Vinschen  <corinna@vinschen.de>
 | |
| 
 | |
| 	Change internal gid datatype from __gid16_t to __gid32_t
 | |
| 	throughout.
 | |
| 	* cygwin.din: Export new symbols chown32, fchown32, getegid32,
 | |
| 	getgid32, getgrgid32, getgrnam32, getgroups32, initgroups32, lchown32,
 | |
| 	setgid32, setegid32, getgrent32.
 | |
| 	* grp.cc (grp32togrp16): New static function.
 | |
| 	(getgrgid32): New function.
 | |
| 	(getgrnam32): Ditto.
 | |
| 	(getgrent32): Ditto.
 | |
| 	(getgroups32): Change name of internal function from getgroups.
 | |
| 	(getgroups32): New function.
 | |
| 	(initgroups32): Ditto.
 | |
| 	* syscalls.cc (chown32): Ditto.
 | |
| 	(lchown32): Ditto.
 | |
| 	(fchown32): Ditto.
 | |
| 	(setegid32): Ditto.
 | |
| 	(setgid32): Ditto.
 | |
| 	* uinfo.cc (getgid32): Ditto.
 | |
| 	(getegid32): Ditto.
 | |
| 	* include/cygwin/grp.h: Remove declaration of getgrgid() and getgrnam().
 | |
| 	Declare getgrgid32() and getgrnam32() instead.  Declare getgid32().
 | |
| 
 | |
| 2002-05-27  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* autoload.cc (noload): Properly mask low order word for determining
 | |
| 	number of bytes to pop.
 | |
| 
 | |
| 2002-05-27  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* fhandler_disk_file.cc (fhandler_disk_file::fstat): Minor logic
 | |
| 	cleanup.
 | |
| 
 | |
| 2002-05-27  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* autoload.cc (LoadFuncEx): Define via new LoadFuncEx2 macro.
 | |
| 	(LoadFuncEx2): Adapt from LoadFuncEx.  Provides control of return
 | |
| 	value for nonexistent function.
 | |
| 	(NtQueryObject): Declare.
 | |
| 	(IsDebuggerPresent): Declare via LoadFuncEx2 and always return true if
 | |
| 	not available.
 | |
| 	* debug.h (being_debugged): Just rely on IsDebuggerPresent return
 | |
| 	value.
 | |
| 	* dtable.cc (handle_to_fn): New function.
 | |
| 	(dtable::init_std_file_from_handle): Attempt to derive std handle's
 | |
| 	name via handle_to_fn.
 | |
| 	(dtable::build_fhandler_from_name): Fill in what we can in path_conv
 | |
| 	structure when given a handle and path doesn't exist.
 | |
| 	* fhandler.cc (fhandler_base::open): Don't set the file pointer here.
 | |
| 	Use pc->exists () to determine if file exists rather than calling
 | |
| 	GetFileAttributes again.
 | |
| 	* fhandler.h (fhandler_base::exec_state_isknown): New method.
 | |
| 	(fhandler_base::fstat_helper): Add extra arguments to declaration.
 | |
| 	(fhandler_base::fstat_by_handle): Declare new method.
 | |
| 	(fhandler_base::fstat_by_name): Declare new method.
 | |
| 	* fhandler_disk_file (num_entries): Make __stdcall.
 | |
| 	(fhandler_base::fstat_by_handle): Define new method.
 | |
| 	(fhandler_base::fstat_by_name): Define new method.
 | |
| 	(fhandler_base:fstat): Call fstat_by_{handle,name} as appropriate.
 | |
| 	(fhandler_disk_file::fstat_helper): Accept extra arguments for filling
 | |
| 	out stat structure.  Move handle or name specific stuff to new methods
 | |
| 	above.
 | |
| 	(fhandler_disk_file::open): Use real_path->exists rather than calling
 | |
| 	GetFileAttributes again.
 | |
| 	* ntdll.h (FILE_NAME_INFORMATION): Define new structure.
 | |
| 	(OBJECT_INFORMATION_CLASS): Partially define new enum.
 | |
| 	(OBJECT_NAME_INFORMATION): Define new structure.
 | |
| 	(NtQueryInformationFile): New declaration.
 | |
| 	(NtQueryObject): New declaration.
 | |
| 	* path.cc (path_conv::fillin): Define new method.
 | |
| 	* path.h (path_conv::fillin): Declare new method.
 | |
| 	(path_conv::drive_thpe): Rename from 'get_drive_type'.
 | |
| 	(path_conv::volser): Declare new method.
 | |
| 	(path_conv::volname): Declare new method.
 | |
| 	(path_conv::root_dir): Declare new method.
 | |
| 	* syscalls.cc (fstat64): Send real path_conv to fstat as second
 | |
| 	argument.
 | |
| 
 | |
| 2002-05-24  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* security.cc (lsa2str): New function.
 | |
| 	(get_priv_list): Call lsa2str instead of sys_wcstombs.
 | |
| 
 | |
| 2002-05-22  Pierre Humblet <pierre.humblet@ieee.org>
 | |
| 
 | |
| 	* syscalls.cc (seteuid): Do not take allow_ntsec into account.
 | |
| 	Attempt to use an existing or new token even when the uid
 | |
| 	matches orig_uid, but the gid is not in the process token.
 | |
| 	Major reorganization after several incremental changes.
 | |
| 	(setegid): Do not take allow_ntsec into account. Minor
 | |
| 	reorganization after several incremental changes.
 | |
| 
 | |
| 2002-05-26  Christopher Faylor  <cgf@redhat.com>
 | |
| 
 | |
| 	* debug.h (being_debugged): New macro.
 | |
| 	* dtable.cc (dtable::extend): Use new macro.
 | |
| 	* exceptions.cc (try_to_debug): Ditto.
 | |
| 	* strace.cc (strace::hello): Only output debugging info when we think
 | |
| 	we're being debugged.
 | |
| 
 | |
| 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>
 | |
| 
 | |
| 	* Merge 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): Rename 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.
 |