newlib/winsup/cygwin/ChangeLog

1711 lines
62 KiB
Plaintext

Wed Jul 12 00:01:03 2000 Christopher Faylor <cgf@cygnus.com>
* lib/_cygwin_crt0_common.cc (_cygwin_crt0_common): Don't reset
environ if already set.
Mon Jul 10 19:07:03 2000 Christopher Faylor <cgf@cygnus.com>
* fhandler_console.cc (fhandler_console::read): Unicode interface
to ReadConsoleInput only exists on W2K, so use workaround from
Kazuhiro Fujieda <fujieda@jaist.ac.jp>.
Mon Jul 10 11:30:00 2000 Christopher Faylor <cgf@cygnus.com>
* Makefile.in (install): Install textmode.o as well as binmode.o.
* fhandler_console.cc (fhandler_console::read): Use UNICODE when
reading from the console and translate to ASCII from that.
Sun Jul 9 21:52:00 2000 Corinna Vinschen <corinna@vinschen.de>
* spawn.cc (spawn_guts): Close handle `hToken' only if it's not
copied from myself->token.
* syscalls.cc (seteuid): Replace CopySid by memcpy which is foolproof
here.
Sun Jul 9 01:19:06 2000 Christopher Faylor <cgf@cygnus.com>
* cygwin.din: Export _getmode and getmode to allow querying of binary
state of an fd.
* external.cc (cygwin_internal): Add handling of perfile_table setting.
* fhandler.cc (perfile_table): New global.
(fhandler_base::get_default_fmode): New method to return a file's
default mode based on its name.
(fhandler_base::open): Use get_default_mode method to determine a
file's mode. Record file mode in file flags.
* fhandler.h (fhandler_base): Declare get_default_fmode
* syscalls.cc (getmode): New function.
* sys/cygwin.h (__cygwin_perfile): New structure.
(cygwin_getinfo_types): Move outside of WINVER conditional.
(per_process): Move inside of WINVER conditional.
Sat Jul 8 00:15:01 2000 Christopher Faylor <cgf@cygnus.com>
* external.cc (cygwin_internal): Export __cygwin_user_data.
* include/sys/cygwin.h: Allow definition of per_process even when not
compiling with C++.
(cygwin_getinfo_types): Add CW_USER_DATA.
* lib/_cygwin_crt0_common.cc (_cygwin_crt0_common): Get
__cygwin_user_data pointer from cygwin_internal. If it doesn't exist,
return failure. Use either this pointer or passed in pointer
throughout. Clear forkee.
* lib/crt0.h: Accomodate argument changes to _cygwin_crt0_common.
* lib/cygwin_attach_dll.c (cygwin_attach_dll): Reorganize to allow use
of newer binaries with older DLLs. Detect older DLLs when
_cygwin_crt0_common returns 0 and allocate space for a per_process
structure on the stack.
* lib/cygwin_crt0.c (cygwin_crt0): Ditto.
Fri Jul 7 10:31:00 2000 Corinna Vinschen <corinna@vinschen.de>
* include/sys/cygwin.h: Hide internal data types in per_process
when not __INSIDE_CYGWIN__.
Wed Jul 5 18:56:58 2000 Christopher Faylor <cgf@cygnus.com>
* dcrt0.cc (__cygwin_user_data): Initialize.
(dll_crt0_1): Eliminate user_data initialization.
(dll_crt0): Set up impure_ptr_ptr for older executables.
(cygwin_dll_init): Eliminate user_data initializations.
(__api_fatal): Don't check for user_data initialization.
* dll_init.cc (struct dll): Store entire contents of per_process rather
than just a pointer.
(add): Ditto.
(initOneDll): Don't check for user_data initialization.
(DllList::recordDll): Store contents of per_process argument.
(DllList::detachDll): Pass address of per_process field.
(DllList::initAll): Ditto.
(DllList::doGlobalDestructorsOfDlls): Ditto.
(DllListIterator::operator *): Ditto.
(dll_dllcrt0): Default to __cygwin_user_data if arg is NULL.
* include/sys/cygwin.h: Reorganize per_process to eliminate obsolete
fields and accomodate new way of initializing.
* lib/_cygwin_crt0_common: Initialize _impure_ptr from
__cygwin_user_data.impure_ptr.
2000-07-04 Vadim Egorov <egorovv@mailandnews.com>
* exceptions.cc (try_to_debug): Prevent recursive spawning of JIT
debugger. Treat special event from debugger as command to continue.
Mon Jul 4 19:29:00 2000 Corinna Vinschen <corinna@vinschen.de>
* poll.cc (poll): Zero out `open_fds' as well.
Mon Jul 4 1:22:00 2000 Corinna Vinschen <corinna@vinschen.de>
* include/cygwin/version.h: Bump API minor version to 24.
2000-07-04 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
* security.cc (read_sd): Eliminate OemToChar.
Mon Jul 4 18:57:00 2000 Corinna Vinschen <corinna@vinschen.de>
* poll.cc: New file. Implement `poll' system call.
* include/poll.h: Ditto.
* include/sys/poll.h: Ditto.
* Makefile.in: Add poll.o as dependency.
* cygwin.din: Add poll and _poll symbols.
2000-07-04 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
* dcrt0.cc (dll_crt0_1): Eliminate SetFileApisToOEM and CharToOem.
* (dummy_autoload): Add functions used in fhandler_console.
* fhandler_console.cc (fhandler_console::read): Use ENCHANCED_KEY flag
to distinguish extended keys. Translate an input character from the
OEM code page to the ANSI code page.
* (fhandler_console::write_normal): Translate output characters from
the ANSI code page to the OEM code page.
* syscalls.cc (_link): Use MultiByteToWideChar instead of OemToCharW.
Mon Jul 3 16:09:16 2000 Christopher Faylor <cgf@cygnus.com>
* exceptions.cc (stack_info::walk): Use method to find offset.
(handle_exceptions): Be more assertive in finding ebp for use under
W2K. Create a dummy stack frame for cases where program is dying and a
stack dump is being output.
(sig_handle): Fill out a GetThreadContext for use with a user-generated
"core dump".
Mon Jul 3 10:53:00 2000 Corinna Vinschen <corinna@vinschen.de>
* include/cygwin/socket.h: Remove SOCK_PACKET define since it's
not supported by Windows sockets.
Sun Jul 2 21:50:48 2000 Christopher Faylor <cgf@cygnus.com>
* dcrt0.cc (user32_init): Add primitive guard against concurrent
attempts to call this function. Also add temporary debugging code to
display a message if the function is called multiple times.
(api32_init): Ditto.
Sun Jul 2 10:39:00 2000 Corinna Vinschen <corinna@vinschen.de>
* winsup.h: Define MAX_SID_LEN and new MAX_HOST_NAME.
* fork.cc (fork): Use above defines instead of numerical constants.
* shared.cc (sec_user): Ditto.
* shared.h (class pinfo): Ditto.
* syscall.cc (seteuid): Ditto.
* spawn.cc (_spawnve): Ditto. Eliminate conditional.
(spawn_guts): Set child->uid = USHRT_MAX when user context will be
changed in child process.
* uinfo.cc (uinfo_init): Check for myself->uid instead of myself->psid
to avoid reloading of /etc/passwd on process startup if ntsec is off.
Use above defines instead of numerical constants.
* security.cc: Move define for MAX_SID_LEN to winsup.h.
Sun Jul 2 1:57:00 2000 Corinna Vinschen <corinna@vinschen.de>
* uinfo.cc (uinfo_init): Eliminate calls to read_etc_group()
and read_etc_passwd().
2000-06-28 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
* assert.cc (__assert): Reduce dependency on newlib.
* exec.cc: Eliminate unnecessary inclusion of ctype.h.
* glob.c: Ditto.
* hinfo.cc: Ditto.
* init.cc: Ditto.
* strace.cc: Ditto.
* tty.cc: Ditto.
* grp.cc (parse_grp): Eliminate atoi.
* passwd.cc (grab_int): Ditto.
* grp.cc (getgroups): Eliminate str{n,}casecmp.
* path.cc (get_raw_device_number): Ditto.
* path.cc (sort_by_native_name): Ditto.
* spawn.cc (iscmd): Ditto.
* uinfo.cc (internal_getlogin): Ditto.
Sat Jul 1 11:43:32 2000 Christopher Faylor <cgf@cygnus.com>
* binmode.c (cygwin_premain0): Fix erroneous clearing of bit.
* textmode.c (cygwin_premain0): Ditto.
Sat Jul 1 00:24:04 2000 Christopher Faylor <cgf@cygnus.com>
* dcrt0.cc (_dll_crt0): Renamed from dll_crt0 ().
* winsup.h: Accomodate above change.
* cygwin.din: Ditto.
* lib/cygwin_crt0.c: Ditto.
Fri Jun 30 23:21:40 2000 Christopher Faylor <cgf@cygnus.com>
* Makefile.in: Use variables rather than configure constructs where
appropriate.
(LIBCOS): Find additional stub library stuff in their own subdirectory.
* dcrt0.cc: Convert user_data pointer to static __cygwin_user_data
area.
(do_global_ctors): Check magic_bisquit for initialization.
(dll_crt0_1): First group of premain functions prior to fd
initialization. Run second group before calling main.
(dll_crt0 ()): New function, called from new initialization code.
(dll_crt0 (per_process *uptr)): Call new dll_crt0 () function on
initialization.
* debug.cc (thread_stub): Initialize bottom of stack with per-thread
info.
* environ.cc (parse_thing): Use binmode global to control
CYGWIN=binmode behavior.
* fhandler.cc (fhandler_base::open): Allow explicit setting of __fmode
to O_BINARY or O_TEXT to override disk mount settings.
* libcmain.cc: Move to lib subdirectory.
* libccrt0.cc: Ditto.
* dll_main.cc: Ditto.
* dll_entry.cc: Ditto.
* getopt.c: Ditto.
* thread.cc (thread_init_wrapper): Call ExitThread explicitly rather
than returning, as a preliminary step towards placing per thread info
at the bottom of the stack.
* winsup.h: Move per_process class to include/sys/cygwin.h. Declare
new dll_crt0().
* include/cygwin/version.h: Bump API minor version.
* binmode.c: New file.
* textmode.c: Ditto.
* perthread.h: Ditto.
* lib/_cygwin_crt0_common.cc: Ditto.
* lib/crt0.h: Ditto.
* lib/cygwin_attach_dll.c: Ditto.
* lib/cygwin_crt0.c: Ditto.
* lib/dll_entry.cc: Ditto.
* lib/dll_main.cc: Ditto.
* lib/getopt.c: Ditto.
* lib/libcmain.c: Ditto.
* lib/premain0.c: Ditto.
* lib/premain1.c: Ditto.
* lib/premain2.c: Ditto.
* lib/premain3.c: Ditto.
Wed Jun 28 19:36:00 2000 Corinna Vinschen <corinna@vinschen.de>
* syscalls.cc (seteuid): Initialize pi.token before calling
internal_getlogin().
* uinfo.cc (internal_getlogin): Use impersonation token instead
of process token in case of active impersonation. Add some comments.
(uinfo_init): Initializing myself->token and myself->impersonated
before calling internal_getlogin(). Add some comments.
Mon Jun 26 18:32:41 2000 Christopher Faylor <cgf@cygnus.com>
* windows.cc (setitimer): Round up when < 1000 usecs.
Mon Jun 26 17:34:54 2000 Christopher Faylor <cgf@cygnus.com>
* hinfo.cc (hinfo::dup2): Eliminate compiler warning.
Mon Jun 26 11:25:29 2000 Christopher Faylor <cgf@cygnus.com>
* hinfo.cc (hinfo::dup2): Guard against out of bounds newfd.
Sat Jun 24 23:43:06 2000 Christopher Faylor <cgf@cygnus.com>
* grp.cc (read_etc_group): Open file in text mode.
* pwd.cc (read_etc_passwd): Ditto.
* shared.h: Bump PROC_MAGIC.
Sat Jun 24 19:30:00 2000 Corinna Vinschen <corinna@vinschen.de>
* fork.cc (fork): Fix error in copying SID pointer.
* spawn.cc (_spawnve): Ditto.
* passwd.cc: Remove static from `passwd_in_memory_p'.
(read_etc_passwd): Remove static.
* uinfo.cc: Move global declaration of `read_etc_group' and
`group_in_memory_p' into `uinfo_init'.
(internal_getlogin): Try to get SID from current process first.
(uinfo_init): Don't set uid and gid if `myself' has a valid SID.
Only load /etc/passwd and /etc/group in that case.
Sat Jun 24 12:29:59 2000 Christopher Faylor <cgf@cygnus.com>
* shared.cc (shared_info::initialize): Improve error message clarity.
* mkvers.sh: Eliminate debugging output.
Thu Jun 22 17:50:59 2000 Christopher Faylor <cgf@cygnus.com>
* Makefile.in: Autogenerate cygwin.def when appropriate.
* include/sys/cygwin.h: Correct prototype.
Thu Jun 22 17:05:04 2000 Christopher Faylor <cgf@cygnus.com>
* include/sys/cygwin.h: Don't define parts of this file that rely on
Windows headers unless the Windows header was previously included.
Thu Jun 22 20:45:00 2000 Corinna Vinschen <corinna@vinschen.de>
* registry.cc (load_registry_hive): Use HKEY_USERS when checking
for existing user hive.
Use MAX_PATH instead of numerical constant for array size.
Use return code of RegLoadKeyA instead of GetLastError for error output.
Thu Jun 22 14:27:04 2000 Christopher Faylor <cgf@cygnus.com>
* Makefile.in: Add new-libcygwin.a back to all_host target.
Wed Jun 21 14:32:42 2000 Christopher Faylor <cgf@cygnus.com>
* Makefile.in: Add *.def to clean operation.
Wed Jun 21 13:18:23 2000 Christopher Faylor <cgf@cygnus.com>
* Makefile.in: Add *.exe to clean operation.
Wed Jun 21 01:02:38 2000 Christopher Faylor <cgf@cygnus.com>
* mkvers.sh: Fix sed usage for older seds.
Tue Jun 20 20:46:28 2000 Christopher Faylor <cgf@cygnus.com>
* Makefile.in: Don't touch winver_stamp if mkvers.sh was unsuccessful.
Tue Jun 20 17:41:30 2000 Christopher Faylor <cgf@cygnus.com>
* mkvers.sh: Fix problem with handling of CVS tags causing .rc syntax
errors.
Tue Jun 20 13:38:12 2000 Christopher Faylor <cgf@cygnus.com>
* Makefile.in: Change to build the DLL during a cross-compiler build.
Mon Jun 19 20:46:33 2000 Christopher Faylor <cgf@cygnus.com>
* select.cc (socket_cleanup): Shutdown I/O on dummy sockets prior to
closing them.
Mon Jun 19 19:35:00 2000 Corinna Vinschen <corinna@vinschen.de>
* dcrt0.cc: Add load statements for `GetSidIdentifierAuthority'
and `RegLoadKeyA'.
* registry.cc (get_registry_hive_path): New function.
(load_registry_hive): Ditto.
* security.cc (convert_sid_to_string_sid): New function.
(get_ssid): Renamed to `convert_string_sid_to_sid'.
(get_pw_sid): Call `convert_string_sid_to_sid' instead of `get_ssid'.
(get_gr_sid): Ditto.
(get_admin_sid): Ditto.
(get_system_sid): Ditto.
(get_creator_owner_sid): Ditto.
(get_world_sid): Ditto.
* shared.h: New prototypes for `get_registry_hive_path' and
`load_registry_hive'.
* spawn.cc (spawn_guts): Set child->psid to NULL to force calling
`internal_getlogin' from child process in case of changing user context.
Call `load_registry_hive' in case of changing user context.
(_spawnve): Copy user infos only if user context remains the same.
* uinfo.cc: Add load statement for `NetUserGetInfo'.
Remove load statement for `NetGetDCName'.
(internal_getlogin): Rewrite to speed up process startup
and to correct user environment in case user context changes.
(uinfo_init): Call internal_getlogin only if myself->psid is NULL,
that is user context changes.
* winsup.h: Add prototypes for `convert_sid_to_string_sid',
`convert_string_sid_to_sid' and `get_pw_sid'.
Sun Jun 18 13:42:50 2000 Christopher Faylor <cgf@cygnus.com>
* fhandler.h (set_name): Don't use 'unix' as name since this is defined
by gcc now.
* fhandler.cc (set_name): Ditto.
2000-06-17 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
* winsup.h (isabspath): Don't report `C:foo' as an absolute path.
Sat Jun 17 13:51:48 2000 Christopher Faylor <cgf@cygnus.com>
* configure.in: Detect "cross-hosting" situation and set appropriate
variables in Makefile to avoid building excess stuff.
* configure: Regenerate.
* Makefile.in: Accomodate above change.
Sat Jun 17 19:52:00 2000 Corinna Vinschen <corinna@vinschen.de>
* pinfo.cc (pinfo_init): Revert previous patch.
Sat Jun 17 13:29:00 2000 Corinna Vinschen <corinna@vinschen.de>
* pinfo.cc (pinfo_init): Add missing initializers.
* uinfo.cc (internal_getlogin): Request domain infos only
when ntsec is ON.
Fri Jun 16 19:27:27 2000 Christopher Faylor <cgf@cygnus.com>
* Makefile.in: Just use library files from this tree when building
cygrun.exe.
* path.cc (chdir): Don't set cache to offending chdir. Change comment
to reflect current reality.
Fri Jun 16 20:55:00 2000 Corinna Vinschen <corinna@vinschen.de>
* cygwin.din: Define symbols for `cygwin_logon_user' and
`cygwin_set_impersonation_token'.
* dcrt0.cc (dll_crt0_1): Eliminate superfluous conditional
statements.
Add load statements for `ImpersonateLoggedOnUser', `LogonUserA'
and `RevertToSelf'.
* fork.cc (fork): Care for correct impersonation of parent
and child process.
* security.cc (cygwin_set_impersonation_token): New function.
(cygwin_logon_user): Ditto.
shared.h (class pinfo): New members `orig_uid', `orig_gid',
`real_uid' nad `real_gid'.
spawn.cc (spawn_guts): Care for impersonation when starting
child process in a different user context.
* syscalls.cc (setgid): Call `setegid' now. Set real_gid.
(setuid): Call `seteuid' now. Set real_uid.
(seteuid): Functionality moved from setuid to here. Care for
correct impersonation.
(setegid): Functionality moved from setgid to here.
* uinfo.cc (uinfo_init): Initialization of additional pinfo
members.
(getuid): Return real uid.
(getgid): Return real gid.
(geteuid): Return effective uid.
(getegid): Return effective gid.
include/sys/cygwin.h: Add prototypes for `cygwin_logon_user' and
`cygwin_set_impersonation_token'.
include/cygwin/version.h: Bump API minor version to 22.
Thu Jun 15 15:43:50 2000 Christopher Faylor <cgf@cygnus.com>
* path.cc (normalize_posix_path): Convert path to POSIX if it seems to
be a Windows path.
2000-06-15 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
* path.cc (mount_info::add_item): Eliminate a trailing backslash
included in a native path starting with '//[A-Za-z]/...'.
* path.cc (mount_info::del_item): Accept a native path as its target.
Wed Jun 14 23:47:19 2000 Christopher Faylor <cgf@cygnus.com>
* environ.cc (conv_envvars): Detect and convert all environment
variables used by libiberty's choose-temp.c
Tue Jun 13 12:41:41 2000 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
* path.cc (mount_info::add_item): The previous patch can't handle
the case of overwriting a mount entry.
Tue Jun 13 00:17:04 2000 Christopher Faylor <cgf@cygnus.com>
* thread.h: Shorten "current_directory" variables to "cwd_*"
throughout.
* path.cc: Ditto.
(normalize_posix_path): Add some extra debugging info.
(chdir): Ditto. Store chdir'ed posix and MS-DOS directory names in
"cache" here rather than trying to derive them later.
Sun Jun 11 15:57:00 2000 Corinna Vinschen <corinna@vinschen.de>
* fhandler_random.cc (read): Call CryptAquireContext with
CRYPT_VERIFYCONTEXT.
Thu Jun 8 22:49:00 2000 Corinna Vinschen <corinna@vinschen.de>
* path.cc (path_conv::check): Erase two lines checked in
by mistake.
Thu Jun 8 15:53:00 2000 Corinna Vinschen <corinna@vinschen.de>
* fhandler.cc (fhandler_disk_file::open): Check for directory
to set O_DIROPEN on directories anyway.
2000-06-07 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
* path.cc (mount_info::init): Eliminate the mount_slash feature.
(mount_slash): Eliminated.
(mount_info::read_mounts): Eliminate looking up existing entries. The
loop for deleting cygpath entries is done only when such entries exist.
(mount_info::from_registry): Eliminate sorting.
(mount_info::add_item): Call add_reg_mount if necessary. Check nmounts
more precisely. Use strcasematch in looking up existing entries.
(mount_info::del_item): Call del_reg_mount if necessary. Use
strcasematch. Use memmove instead of memcpy.
(mount_info::import_v1_registry): Everything is done in this method.
(mount_info::to_registry): Eliminated.
(mount_info::from_v1_registry): Eliminated.
(cygwin_umount): Simply call del_item.
* shared.h: Modify the declaration of add_item and del_item. Remove the
declaration of from_v1_registry.
Wed Jun 7 23:56:10 2000 Christopher Faylor <cgf@cygnus.com>
* include/cygwin/version.h: Bump DLL minor version number to 3.
2000-06-07 DJ Delorie <dj@cygnus.com>
* cygwin.din: add cygwin_dll_init
* dcrt0.cc (cygwin_dll_init): new
(dll_crt0_1): short circuit if manually loaded
* path.cc (mount_info::init): don't init if manually loaded
Wed Jun 7 13:47:00 2000 Corinna Vinschen <corinna@vinschen.de>
* include/netinet/in_systm.h: New file.
* include/cygwin/in_systm.h: Ditto.
Thu Jun 1 01:55:45 2000 Christopher Faylor <cgf@cygnus.com>
* exceptions.cc: Remove unneeded include.
* dcrt0.cc: Wrap LoadDLLfunc stuff in dummy function.
* init.cc: Ditto.
* uinfo.cc: Ditto.
2000-05-31 DJ Delorie <dj@cygnus.com>
* include/cygwin/version.h: use decimal, NOT octal
Wed May 31 16:40:00 2000 Corinna Vinschen <corinna@vinschen.de>
* fhandler.cc (fhandler_disk_file::open): Check for executable
even if ntsec is on if filesystem doesn't support ACLs.
Wed May 31 15:57:00 2000 Corinna Vinschen <corinna@vinschen.de>
* dcrt0.cc: Use LoadDLLfuncEx for loading Crypto API functions
with parameter `notimp' set to 1.
Tue May 30 16:58:33 2000 Christopher Faylor <cgf@cygnus.com>
* path.cc (mount_info::conv_to_win32_path): Previous patch was too
aggressive in adding a trailing slash.
Mon May 29 20:31:01 2000 Christopher Faylor <cgf@cygnus.com>
* Makefile.in: Remove libadvapi32.a.
* autoload.h: Add additional field to autoload block for handling
unimplemented functions.
(LoadDLLfuncEx): New function which accepts additional parameter for
controlling unimplemented function behavior.
(LoadDLLfunc): Use LoadDLLfuncEx.
* dcrt0.cc: Use new arguments for LoadDLLfunc. Add advapi32 routines.
(noload): Rewrite in assembler. Handle new unimplemented function
type.
* exceptions.cc: Eliminate another vestige of StackWalk stuff.
* net.cc: Use new arguments for LoadDLLfunc.
* uinfo.cc: Ditto.
Mon May 29 20:18:47 2000 Christopher Faylor <cgf@cygnus.com>
* config.h.in: Remove obsolete define.
* path.h (isdrive): New macro.
* dcrt0.cc (globify): Use new macro to determine if a string refers to
an MS-DOS drive.
* environ.cc (winenv): Ditto.
* spawn.cc (find_exec): Ditto.
* path.cc (get_raw_device_number): Ditto.
(mount_info::conv_to_posix_path): Ditto.
(chdir): Ditto.
(cygwin_posix_path_list_p): Ditto.
(cygwin_split_path): Ditto.
(path_conv::check): Move tmp_buf to beginning of function since it can
be used earlier in the loop. Use tmp_buf rather than 'root' to hold
root information.
(mount_info::conv_to_win32_path): Add trailing slash to end of mount
path when it translates to a drive. Add defensive code to avoid
writing beyond the end of 'dst'.
Sat May 27 15:57:00 2000 Corinna Vinschen <corinna@vinschen.de>
* fhandler_random.cc (read): Use CRYPT_MACHINE_KEYSET in
call to CryptAcquireContext() to serve users that did not
log in interactively.
Fri May 26 11:16:00 2000 Corinna Vinschen <corinna@vinschen.de>
* errno.cc (errmap): Map ERROR_BAD_NET_NAME to errno ENOSHARE.
Fri May 26 02:23:35 2000 Christopher Faylor <cgf@cygnus.com>
* sigproc.h (sigframe::set): Accept a default frame pointer.
* sigproc.cc (sig_send): Use passed in frame pointer, if appropriate.
Thu May 25 17:44:25 2000 Christopher Faylor <cgf@cygnus.com>
* dir.cc (rmdir): Use file attributes that have already been discovered
by path_conv.
2000-05-25 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
* dir.cc (rmdir): Correct the manner in checking the target directory.
Wed May 24 21:59:00 2000 Corinna Vinschen <corinna@vinschen.de>
* dir.cc (writable_directory): Comment out previous code,
return always 1 for now.
(mkdir): Call set_file_attribute explicitely with S_IFDIR mode bit.
* syscalls.cc (chown_worker): Ditto.
(chmod): Ditto.
* security.cc (get_nt_attribute): Fix error in debug output.
Never set FILE_DELETE_CHILD for files.
Construct appropriate inherit attribute according to file type.
2000-05-23 DJ Delorie <dj@cygnus.com>
* syscalls.cc (_cygwin_istext_for_stdio): New, for newlib
* include/cygwin/version.h: Bump API number for detect old
programs using old getc/putc macros
2000-05-23 DJ Delorie <dj@cygnus.com>
* dir.cc (writable_directory): handle root directories
Tue May 23 10:09:26 2000 Christopher Faylor <cgf@cygnus.com>
* uname.cc (uname): Use a "s" to denote a snapshot to avoid confusion
with the number "5".
Tue May 23 10:01:07 2000 Christopher Faylor <cgf@cygnus.com>
* path.cc (mount_info::conv_to_posix_path): Avoid putting a trailing
slash on a directory name when the ms-dos path spec is a root directory
of a device.
* registry.cc (reg_key::build_reg): Set 'key_is_invalid' flag rather
than using an INVALID_HANDLE_KEY.
(reg_key::get_int): Test for key validity before performing registry
operations.
(reg_key::set_int): Ditto.
(reg_key::get_string): Ditto.
(reg_key::set_string): Ditto.
(reg_key::kill): Ditto.
(reg_key::~reg_key): Ditto.
Tue May 23 01:13:33 2000 Christopher Faylor <cgf@cygnus.com>
* mkvers.sh: Use snapshot date as build date since it is more
interesting.
* uname.cc (uname): Detect if this is a snapshot build and add an "S"
to the version number. Report the snapshot date as the release date.
Mon May 22 17:11:25 2000 Christopher Faylor <cgf@cygnus.com>
* environ.cc (regopt): Scan HKLM if HKCU scan fails.
Mon May 16 23:39:00 2000 Corinna Vinschen <corinna@vinschen.de>
* dir.cc (rmdir): Care for misleading error messages
when trying to remove a directory on a samba share.
Eliminate superfluous else branch.
* syscalls.cc (_rename): Additional check for ERROR_FILE_EXISTS
if MoveFile fails.
Sun May 21 20:51:44 2000 Christopher Faylor <cgf@cygnus.com>
* dcrt0.cc (dll_crt0_1): Move uinfo_init call to before sigproc_init to
avoid a race.
(noload): Add an extra argument for debugging.
* uinfo.cc (uinfo_init): Eliminate test for multiple calls.
(getlogin): Assume that uinfo_init has already been called.
Sat May 20 01:34:57 2000 Christopher Faylor <cgf@cygnus.com>
* exceptions.cc (interruptible): Add an argument to control whether
function just checks for validity. Flag module handle == 0 as
noninterrupible.
(call_handler): Always acquire and release ebp lock. Loop for only a
fixed amount of time attempting to grab mutos and find an interruptible
PC.
2000-05-19 DJ Delorie <dj@cygnus.com>
* syscalls.cc (setmode): change mode of any matching FILE* also.
Thu May 18 17:28:19 2000 Christopher Faylor <cgf@cygnus.com>
* Makefile.in: Remove external.h dependency.
* dcrt0.cc (sigthread::init): Move here from sigproc.h.
* sigproc.h (sigthread): Move init to dcrt0.cc.
Thu May 18 01:28:02 2000 Christopher Faylor <cgf@cygnus.com>
* select.cc (thread_pipe): Add paranoid check to ensure thread
termination.
* external.cc: Eliminate obsolete include.
* getopt.c (getopt_long): Fix compiler warning.
* shared.h: Moved PID_ definitions to include/sys/cygwin so that they
can be used by external programs.
* include/sys/cygwin.h: Move external definitions here. Include
sys/resource.h to avoid having to do this everywhere.
Thu May 18 01:04:02 2000 Christopher Faylor <cgf@cygnus.com>
* sigproc.h (sigframe): Don't set frame info unless tid matches this
thread id.
Wed May 17 23:13:32 2000 Christopher Faylor <cgf@cygnus.com>
* dcrt0.cc (dll_crt0_1): Initialize mainthread stuff here before
anything needs it.
* sigproc.cc (sigproc_init): Move mainthread initialization out of
here.
* sigproc.h (sigthread): Add init() method.
(sigframe): Don't try to initialize muto.
* sync.cc: Undef WaitForSingleObject to avoid recursion.
2000-05-17 DJ Delorie <dj@cygnus.com>
* testsuite/winsup.api/crlf.c: New
* testsuite/winsup.api/iospeed.c: New
Wed May 17 01:05:52 2000 Christopher Faylor <cgf@cygnus.com>
* path.cc (mount_info::cygdrive_posix_path): Don't add trailing slash
if referring to something like c:\.
* dcrt0.cc (dll_crt0_1): Move uinfo initialization prior to sig_send
initialization to give signal thread a chance to finish.
* debug.cc (WFSO): Move to sigproc.cc
(WFMO): Ditto.
* exceptions.cc (interruptible): Allocate slightly more space for
directory just for paranoia's sake.
(call_handler): Eliminate nonmain argument. Determine if main thread
has set a frame pointer and use it if so.
(sig_handle): Eliminate nonmain argument.
* net.cc: Record frame information in appropriate routines throughout.
* select.cc (select): Ditto.
* sigproc.cc: Use sigthread structure to record mainthread id
throughout.
(sig_send): Record frame information for signal handler.
(wait_sig): Reflect argument change in sig_handle.
(WFSO): Move here and record frame information for signal handler.
(WFMO): Ditto.
* sigproc.h: Implement new "sigthread" class. Implement "sigframe"
class for manipulating signal frame info.
* thread.cc (__pthread_kill): Use standard _kill() function rather than
calling sig_send directly.
* winsup.h: Eliminate ebp element from signal_dispatch class.
Tue May 16 23:39:00 2000 Corinna Vinschen <corinna@vinschen.de>
Patch suggested by John Rowley <wjr@bgs.ac.uk>
* fhandler_tape.cc (fhandler_dev_tape::ioctl): Check
for filemark feature on MTWEOF operation.
Tue May 16 11:49:13 2000 Christopher Faylor <cgf@cygnus.com>
* include/cygwin/in.h (AF_INET6): Use correct in6_addr struct.
Mon May 15 00:35:35 2000 Christopher Faylor <cgf@cygnus.com>
* include/cygwin/version.h: Bump DLL minor version number to 2.
Sun May 14 23:41:24 2000 Christopher Faylor <cgf@cygnus.com>
* shared.h: Bump PROC_MAGIC.
* include/cygwin/version.h: Bump API minor to accomodate two recent
exports.
2000-05-13 Mumit Khan <khan@xraylith.wisc.edu>
* include/cygwin/socket.h (AF_INET6): Use same value as winsock2.
2000-05-12 Mumit Khan <khan@xraylith.wisc.edu>
* include/cygwin/in.h (struct in6_addr): Fix spelling.
* include/cygwin/socket.h (AF_INET6, PF_INET6): Define macros.
(AF_MAX, PF_MAX): Bump to 32 to leave room for future expansion.
Fri May 12 21:35:54 2000 Christopher Faylor <cgf@cygnus.com>
* dcrt0.cc (build_argv): Remove unneeded variable.
* select.cc (peek_pipe): Don't check for "ready" if it's already set.
(peek_console): Ditto.
(peek_serial): Ditto.
(peek_socket): Ditto.
(peek_windows): Ditto.
Fri May 12 20:31:00 2000 Corinna Vinschen <corinna@vinschen.de>
* fhandler_raw.cc (write_file, read_file): New wrapper functions
for WriteFile and ReadFile to get rid of ERROR_MEDIA_CHANGED
and ERROR_BUS_RESET in case of first access to tape.
(fhandler_dev_raw::raw_write): Use write_file instead of WriteFile.
(fhandler_dev_raw::raw_read): Use read_file instead of ReadFile.
Fri May 12 01:04:57 2000 Christopher Faylor <cgf@cygnus.com>
* Makefile.in (DLL_OFILES): Sort.
* fhandler_tty.cc (fhandler_tty_slave::send_ioctl_request): Eliminate.
(fhandler_tty_slave::ioctl): Rewrite to avoid races.
2000-05-11 Mumit Khan <khan@xraylith.wisc.edu>
* mmap.cc (list::erase): Increment loop counter.
(map::erase): Likewise.
Thu May 11 00:54:00 2000 Charles Wilson <cwilson@ece.gatech.edu>
* cygwin.din: insure that regsub() is included in
cygwin1.dll
Tue May 9 18:59:41 2000 Christopher Faylor <cgf@cygnus.com>
* Makefile.in: Use appropriate VARIABLE to refer to cygwin.def in load
line.
Thu May 9 23:53:00 2000 Corinna Vinschen <corinna@vinschen.de>
* fhandler.cc (fhandler_base::puts_readahead): Change
while condition to disallow wild runs.
Thu May 9 15:24:00 2000 Corinna Vinschen <corinna@vinschen.de>
Patch suggested by <lha@stacken.kth.se>
* window.cc (setitimer): Check for overflow condition
in tv_sec.
Thu May 9 0:47:00 2000 Corinna Vinschen <corinna@vinschen.de>
Patch suggested by Eric Fifer <EFifer@sanwaint.com>
* errno.cc: Change mapping of ERROR_BAD_PATHNAME to ENOENT.
Thu May 9 0:47:00 2000 Corinna Vinschen <corinna@vinschen.de>
* path.cc (symlink::info): Treat non readable files
as normal non symlink files.
2000-05-08 Paul K. Fisher <pfisher@plexware.com>
* include/pthread.h (pthread_detach): Add missing prototype.
(pthread_join): same.
2000-05-08 DJ Delorie <dj@cygnus.com>
* fhandler.cc (lock): use signed math to allow checking ranges
properly.
Sat May 6 23:22:25 2000 Christopher Faylor <cgf@cygnus.com>
* dcrt0.cc (insert_file): Eliminate unused parameter.
(build_argv): Ditto.
* exceptions.cc (stack): Eliminate unused parameters.
(stackdump): Ditto.
(cygwin_stackdump): Reflect above changes.
(sig_handle): Ditto.
* fhandler.cc (fhandler_base::set_inheritance): Use kludge to avoid
unused parameter warning.
2000-05-06 Mumit Khan <khan@xraylith.wisc.edu>
* include/wchar.h (wcscmp, wcslen): Fix prototypes.
* syscalls.cc (wcslen, wcscmp): Adjust.
Fri May 5 23:32:07 2000 Christopher Faylor <cgf@cygnus.com>
* errno.cc (errmap): Correct DIRECTORY mapping to ENOTDIR.
2000-05-04 Mumit Khan <khan@xraylith.wisc.edu>
* Makefile.in (install): Install profile startup and library.
Wed May 3 21:54:11 2000 Christopher Faylor <cgf@cygnus.com>
* configure.in: Use -gstabs+ as compile debug option. This seems to
promote better handling of symbols.
* configure: Regenerate.
* delqueue.cc (delqueue_list::process_queue): Allow ERROR_ACCESS_DENIED
to indicate that a file is being shared under Windows 95.
* syscalls.cc (_unlink): Use full path name. Take special action for
Windows 95. Assume that an ERROR_ACCESS_DENIED indicates a sharing
violation unless it's on a remote drive. Punt if there is an
ERROR_ACCESS_DENIED on a remote drive.
Wed May 3 18:07:00 2000 Corinna Vinschen <corinna@vinschen.de>
* errno.cc (errmap): Map ERROR_BAD_NETPATH to new errno ENOSHARE.
(_sys_errlist): Add entry for ENOSHARE.
(strerror): Add case for ENOSHARE.
* syscalls.cc (stat_worker): Check for errno ENOSHARE.
Wed May 3 17:28:00 2000 Corinna Vinschen <corinna@vinschen.de>
* Makefile.in: Add dependencies for fhandler_random.o
* fhandler.h: Add device type FH_RANDOM. Add class
fhandler_dev_random.
* fhandler_random.cc: New file. Implementation of
fhandler_dev_random.
* hinfo.cc (build_fhandler): Add case for FH_RANDOM.
* path.cc: Add device names for random devices to
windows_device_names.
(get_device_number): Add if branch for random devices.
(win32_device_name): Add device name generation for
random devices.
winsup.h: Include <wincrypt.h>.
2000-05-02 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
* path.cc (mount_info::conv_to_win32_path): Previous patch
failed to set flags on a win32 path.
Tue May 2 11:34:00 2000 Corinna Vinschen <corinna@vinschen.de>
* security.cc (read_sd): Return 1 on success because we
can't rely on the returned SD size from GetFileSecurity.
Tue May 2 2:22:00 2000 Corinna Vinschen <corinna@vinschen.de>
* dcrt0.cc: Add dynamic load code for `OemToCharA' from user32.dll.
* security.cc (read_sd): Call `OemToCharA' to make
`GetFileSecurity' happy on filenames with umlauts.
Wed Apr 26 23:23:23 2000 Christopher Faylor <cgf@cygnus.com>
* path.cc (normalize_win32_path): Don't add a trailing slash when one
already exists.
(mount_info::conv_to_win32_path): Use existing code for dealing with
relative path names when input is already a win32 path.
2000-04-26 DJ Delorie <dj@cygnus.com>
* Makefile.in (install): install regexp.h
Wed Apr 26 16:20:00 2000 Corinna Vinschen <corinna@vinschen.de>
* syscalls.cc (stat_worker): Previous patch could succeed
in stating a non-existant file.
Wed Apr 26 01:07:16 2000 Christopher Faylor <cgf@cygnus.com>
* exceptions.cc (interruptible): Allocate slightly more space for
directory name check. Windows 95 seems to null-terminate the directory
otherwise.
(interrupt_on_return): Issue a fatal error if we can't find the
caller's stack.
Tue Apr 25 16:50:54 2000 Christopher Faylor <cgf@cygnus.com>
* spawn.cc (find_exec): Accept a path_conv argument rather than a
buffer so that the caller can find things out about a translated path.
(perhaps_suffix): Ditto.
(spawn_guts): Allocate path_conv stuff here so that we can find out
stuff about the translated path (this is work in progress).
* environ.cc (environ_init): Accept an as-yet unused argument
indicating whether we were invoked from a cygwin parent or not.
(winenv): Ditto.
(posify): Accept an argument indicating whether the path has already
been translated.
* dlfcn.cc (check_access): Provide a path_conv buffer to find_exec.
* exec.cc (sexecvpe): Ditto.
* path.cc (path_conv::check): Rename from path_conv::path_conv.
(mount_item::getmntent): Recognize "Cygwin executable" bit.
(symlink_info::check): Remove debugging statements.
* path.h (class path_conv): Add iscygexec method. Rewrite constructor
to call "check" method to allow multiple operations on a path_conv
variable.
* pinfo.cc (pinfo_init): Pass argument to environ_init.
* shared.h: Bump PROC_MAGIC.
* winsup.h: Reflect above changes to function arguments.
* include/sys/mount.h: Add MOUNT_CYGWIN_EXEC type.
Thu Apr 25 21:35:00 2000 Corinna Vinschen <corinna@vinschen.de>
* syscalls.cc (stat_worker): Previous patch failed to stat
each drives root dir on 9X.
Thu Apr 25 16:37:00 2000 Corinna Vinschen <corinna@vinschen.de>
* fhandler.cc (fhandler_disk_file::open): Check for allow_ntsec
when determining exec flag.
* path.cc (symlink_info::check): Remove call to get_file_attribute().
* security.cc (read_sd): Rename, ditto for variables to conform
to common naming convention. Use GetFileSecurity() instead of
BackupRead() to avoid permission problems when reading ACLs.
(write_sd): Same renaming as for read_sd().
(alloc_sd): Change default permissions according to Linux permissions
for group and world when write permission is set.
* syscalls.cc (stat_worker): Avoid different permission problems
when requesting file informations.
Thu Apr 25 10:50:00 2000 Corinna Vinschen <corinna@vinschen.de>
* net.cc: Avoid a warning in declaration inet_network.
Mon Apr 24 17:38:25 2000 Thorsten Otto <t.otto@germanynet.de>
* fhandler_console.cc (fhandler_console::read): Detect extended keycode
information for Windows 9x so that function keys will work correctly.
2000-04-24 Vadim Egorov <egorovv@mailandnews.com>
* net.cc (cygwin_inet_network): new function.
* cygwin.din (inet_network): new export
Fri Apr 21 10:37:08 2000 Christopher Faylor <cgf@cygnus.com>
* path.cc (normalize_posix_path): Previous two patches were still
incorrect so rewrite this function to deal with trailing dots.
(mount_info::conv_to_win32_path): Just check for '/' where appropriate.
Eliminate nofinalslash call since it is handled in normalize_posix_path
now.
Thu Apr 20 17:32:42 2000 Christopher Faylor <cgf@cygnus.com>
* exceptions.cc (handle_exceptions): Search further for stack info to
accomodate Windows 95.
Thu Apr 20 16:39:18 2000 Christopher Faylor <cgf@cygnus.com>
* path.cc (normalize_posix_path): Previous change failed to take root
access into account.
Thu Apr 20 11:26:00 2000 Corinna Vinschen <corinna@vinschen.de>
* syscalls.cc (_link): Check new link path for trailing dot.
Thu Apr 20 00:32:03 2000 Christopher Faylor <cgf@cygnus.com>
* fhandler.h (fhandler_base::hclose): New virtual method.
(fhandler_base::set_inheritance): Make this a method so that we can use
the appropriate close methods.
* fhandler.cc (fhandler_base::set_inheritance): Ditto.
* path.cc (normalize_posix_path): Eliminate /. trailing path
component.
Wed Apr 20 0:19:00 2000 Corinna Vinschen <corinna@vinschen.de>
* syscalls.cc (setuid): Allow switching user context after
successful call to ImpersonateLogedOnUser (NT only).
(setgid): Ditto.
(seteuid): Call setuid.
(setegid): Call setgid.
Wed Apr 19 22:00:00 2000 Corinna Vinschen <corinna@vinschen.de>
* uinfo.cc (internal_getlogin): Use NetGetDCName() instead
of NetGetAnyDCName().
Mon Apr 17 12:08:47 2000 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
* syscalls.cc (_rename): Try MoveFile() at first before
MoveFileEx(..., MOVEFILE_REPLACE_EXISTING).
Tue Apr 18 19:15:29 2000 Christopher Faylor <cgf@cygnus.com>
* dcrt0.cc (globify): Don't use \ quoting when apparently quoting a DOS
path spec, even within a quoted string.
Sun Apr 16 18:54:21 2000 Christopher Faylor <cgf@cygnus.com>
* init.cc (dll_entry): Use better check for determining when to set
thread specific stuff.
* syscalls.cc (_unlink): Continue with chmod'ing file even if
DELETE_ON_CLOSE succeeds, if file still exists.
Fri Apr 14 23:51:15 2000 Christopher Faylor <cgf@cygnus.com>
* fhandler_console.cc (keytable): Add support for keypad 5 key, which
MS seems to think is equivalent to VK_CLEAR.
* debug.cc (thread_stub): Eliminate initialization of reent stuff.
* init.cc (dll_entry): Move it here.
Thu Apr 13 18:32:26 2000 Christopher Faylor <cgf@cygnus.com>
* dcrt0.cc (insert_file): Avoid freeing previously allocated argument
list.
* path.cc (symlink_info::check): Rename from symlink_check_one. Use
new symlink_info struct for communication.
(path_conv::path_conv): Use symlink_info structure for communication
with symlink_info::check. Fix typo which resulted in symbolic links
always being resolved.
(readlink): Use stat_suffixes array when resolving a link.
* syscalls.cc (stat_suffixes): Make global.
Thu Apr 13 20:50:00 2000 Corinna Vinschen <corinna@vinschen.de>
* include/cygwin/version.h: Bump minor api to reflect export change.
Thu Apr 13 8:48:00 2000 Corinna Vinschen <corinna@vinschen.de>
* path.cc (conv_to_win32_path): Detect a win32 path
if path contains backslashes.
* cygwin.din: Add symbol for `lacl'.
* security.cc (ReadSD): Add debug output.
(acl_worker): New static function.
(acl): Call acl_worker now.
(lacl): New function.
(facl): Call acl_worker now.
* include/cygwin/acl.h: Add prototype for `lacl'.
Wed Apr 12 18:48:33 2000 Christopher Faylor <cgf@cygnus.com>
* path.cc (path_conv::path_conv): Ensure that suffix is correctly
copied to path when we've found a symlink but aren't following
symlinks.
Sat Apr 8 00:46:14 2000 Christopher Faylor <cgf@cygnus.com>
* fhandler.cc (fhandler_disk_file::fstat): Allocate enough space for
root dir determination or overflow an array.
Sat Apr 8 00:08:53 2000 Christopher Faylor <cgf@cygnus.com>
* exceptions.cc (sigsave): Copy on fork so that we can restore correct
behavior in forked process.
(interruptible): Flag as interruptible when running in main process
module.
(interrupt_setup): Save return address and address of return address.
(signal_fixup_after_fork): New function. Uses above two values to
restore proper behavior to forked process.
(interrupt_on_return): Pass return address address to interupt_setup.
(interrupt_now): Pass NULL for return address address to
interrupt_setup.
* fork.cc (fork): Call signal_fixup_after_fork.
* shared.h: Lint cleanups.
* winsup.h: Ditto.
Mon Apr 3 14:10:44 2000 Christopher Faylor <cgf@cygnus.com>
* fhandler.h (select_stuff): Eliminate use of 'total'.
* select.cc (cygwin_select): Ditto.
(select_stuff::wait): Use maximum size for w4 rather than calculating
what will fit.
Mon Apr 03 13:58:00 2000 Corinna Vinschen <corinna@vinschen.de>
* grp.cc (parse_grp): Save empty array instead of
NULL in gr_mem if no supplementary group is given.
Sun Apr 02 16:02:00 2000 Corinna Vinschen <corinna@vinschen.de>
* syscalls.cc (chown_worker): Use previous uid/gid if
new uid/gid is -1.
Fry Mar 31 22:55:00 2000 Corinna Vinschen <corinna@vinschen.de>
* syscalls.cc (chown_worker): New static function with
chown functionality.
(chown): Call chown_worker with SYMLINK_FOLLOW.
(fchown): New function. Call chown_worker with SYMLINK_FOLLOW.
(lchown): New function. Call chown_worker with SYMLINK_IGNORE.
* cygwin.din: Add symbols for fchown, lchown.
Fry Mar 31 11:18:00 2000 Corinna Vinschen <corinna@vinschen.de>
* path.cc (symlink): Call `set_file_attribute()' and
`SetFileAttributeA()' instead of `chmod()' to set
uid/gid correct.
Wed Mar 29 22:49:56 2000 Christopher Faylor <cgf@cygnus.com>
* fhandler.h (select_record): Explicitly zero elements of this class.
(select_stuff): Ditto.
* select.cc (cygwin_select): Eliminate memset zero of sel.
Tue Mar 28 16:45:42 2000 Christopher Faylor <cgf@cygnus.com>
* Makefile.in: Use default rules when compiling cygrun.o.
* dcrt0.cc (host_dependent_constants::init): Limit non-NT platforms to
32K chunks when copying regions during a fork.
* path.cc (symlink_check_one): Add temporary debugging output.
Simplify PATH_EXEC test.
* syscalls.cc (stat_suffixes): Null terminate this list.
Sat Mar 25 20:46:39 2000 Christopher Faylor <cgf@cygnus.com>
* path.cc (symlink_check_one): Recognize symlink settings from the
mount table.
* path.h: Make PATH_SYMLINK an alias for MOUNT_SYMLINK.
* syscalls.cc (stat_worker): Use extension search mechanism in
path_conv to look for .exe rather than trying to special case it here.
* mount.h: Make MOUNT_SYMLINK a real option.
Sat Mar 25 00:22:32 2000 Christopher Faylor <cgf@cygnus.com>
* environ.cc: Add TMPDIR to the list of environment variables which are
converted to POSIX format.
* sigproc.cc (proc_terminate): Don't attempt to delete when a muto
pointer is NULL.
Sun Mar 19 12:01:00 2000 Corinna Vinschen <corinna@vinschen.de>
* syscalls.cc (stat_worker): Set st_nlink to 1 on remote drives.
Sat Mar 18 23:04:27 2000 Christopher Faylor <cgf@cygnus.com>
* times.cc: Fix extern declarations for variables that are exported but
used by this modules.
Sat Mar 18 01:32:04 2000 Christopher Faylor <cgf@cygnus.com>
* dcrt0.cc (host_dependent_constants::init): Eliminate DELETE flag
from shared constant.
Sat Mar 18 01:24:25 2000 Christopher Faylor <cgf@cygnus.com>
* delqueue.cc (delqueue_list::queue_file): Add some debugging.
* path.h (class path_conv): Add a char * operator for the most common
case.
* syscalls.cc (_unlink): Rewrite to use FILE_FLAG_DELETE_ON_CLOSE when
possible (i.e., on NT).
Fri Mar 17 18:16:00 2000 Corinna Vinschen <corinna@vinschen.de>
Patch suggested by Eric Fifer <EFifer@sanwaint.com>
* fhandler.cc (fhandler_base::open): Call set_file_attribute()
only if a file is really created.
Thu Mar 16 14:15:00 2000 Corinna Vinschen <corinna@vinschen.de>
* security.cc (set_process_privileges): Remove `static'.
(get_nt_attribute): Returns uid and gid additionally. Remove call
to set_process_privileges().
(get_file_attribute): Returns uid and gid additionally. Don't
call ntea if ntsec is ON.
(set_nt_attribute): Remove call to set_process_privileges().
Don't call ntea if ntsec is ON.
(acl): Remove call to set_process_privileges().
* dcrt0.cc (dll_crt0_1): Call set_process_privileges().
* winsup.h: New prototype for set_process_privileges(),
changed prototype for get_file_attribute().
* fhandler.cc (get_file_owner): Discard function.
(get_file_group): Ditto.
(fhandler_disk_file::fstat): Discard calls to get_file_owner() and
get_file_group().
* path.cc (path_conv::path_conv): New debugging output for result
of GetVolumeInformation().
(mount_info::conv_to_win32_path): Call backslashify() with pathbuf
instead of src_path.
* syscalls.cc (chown): Reformat slightly.
(chmod): Replace get_file_owner() and get_file_group() calls
by a call to get_file_attribute(). Discard local variable has_acls.
Reformat slightly.
(stat_worker): Root dir check now done by a call to rootdir().
Don't call num_entries() on remote drives.
Discard local variable has_acls.
Wed Mar 15 20:38:06 2000 Corinna Vinschen <corinna@vinschen.de>
* errno.cc: Map ERROR_NOACCESS to EFAULT.
Wed Mar 15 14:25:38 2000 Christopher Faylor <cgf@cygnus.com>
* spawn.cc (spawn_guts): Restore dependency on signal_arrived. It's
needed to wake up the WaitForSingleObject.
Tue Mar 14 23:41:16 2000 Christopher Faylor <cgf@cygnus.com>
Pipe changes throughout suggested by Eric Fifer <EFifer@sanwaint.com>
* debug.cc (threadname_init): Pass name of lock as arg 2 of new_muto.
* malloc.cc (malloc_init): Ditto.
* sigproc.cc (sigproc_init): Ditto.
* exceptions.cc (events_init): Ditto.
(call_handler): Eliminate special case for hExeced. Report locked
thread in debugging output.
* fhandler.cc (fhandker_pipe::fhandler_pipe): Propagate device type to
base class.
* fhandler.h (fhandler_pipe): Ditto.
* hinfo.cc (hinfo::build_fhandler): Pass specific type of pipe to
constructor.
* spawn.cc (spawn_guts): Eliminate dependency on signal when waiting
for subprocess.
* strace.cc: Remove obsolete #ifdef.
* sync.cc (muto::muto): Save the name of the muto.
(muto:~muto): Also release the muto.
* sync.h: Add a muto name field.
* select.cc (peek_pipe): Avoid doing a PeekNamedPipe on the write end
of a pipe.
Sun Mar 12 01:14:33 2000 Christopher Faylor <cgf@cygnus.com>
* fhandler.cc (fhandler_base::get_readahead_into_buffer): New function.
* fhandler.h: Declare new function. Add extra argument to
process_slave_output.
* fhandler_console.cc (fhandler_console::read): Move read ahead code to
new function.
* fhandler_tty.cc (fhandler_pty_master::process_slave_output): Move
common code here.
(fhandler_tty_slave::read): Understand readahead.
(fhandler_pty_master::read): Move code to process_slave_output.
* select.cc (peek_pipe): Avoid performing certain checks when non-read
and on inappropriate fh types.
Sat Mar 11 22:47:43 2000 Christopher Faylor <cgf@cygnus.com>
* fhandler_console.cc (fhandler_console::read): Don't even think about
breaking on interrupt if executing in a "cygwin" thread.
* fhandler_tty.cc (fhandler_pty_master::process_slave_output):
Streamline, simplify code.
* sigproc.cc (sig_send): Remove debugging statement.
Fri Mar 10 13:20:50 2000 Christopher Faylor <cgf@cygnus.com>
* sigproc.cc: Set wait_sig priority to normal.
Fri Mar 10 13:03:06 2000 Christopher Faylor <cgf@cygnus.com>
* sigproc.cc (wait_sig): Add addtional debugging output.
Thu Mar 9 15:25:01 2000 Christopher Faylor <cgf@cygnus.com>
* environ.cc: Eliminate oldstack CYGWIN option.
* exceptions.cc (sfta): Eliminate obsolete function.
(sgmb): Eliminate obsolete function.
(class stack_info): Remove MS method for walking the stack.
(stack_info::init): Just initialize required fields.
(stack_info::brute_force): Rename to stack_info::walk.
(handle_exceptions): Pass derived frame pointer to sig_send.
(interrupt_setup): Clear saved frame pointer here.
(interrupt_on_return): thestack is no longer a pointer.
(call_handler): Accept a flag to indicate when a signal was sent from
other than the main thread. Use saved frame pointer for determining
where to place signal handler call.
(sig_handle): Accept "nonmain" argument. Pass it to call_handler.
* fhandler_tty.cc (fhandler_tty_common::__acquire_output_mutex): Change
debugging output slightly.
* (fhandler_tty_common::__release_output_mutex): Ditto.
(fhandler_tty_slave::read): Fix a comment, remove a goto.
* sigproc.cc (sig_send): Accept an optional frame pointer argument for
use when suspending the main process. sigcomplete_main is an autoreset
event now. Save frame pointer for non-main operation.
(wait_sig): Make sigcomplete_main an autoreset event. Eliminate
NOSIGQUEUE. Pass rc to sig_handle to signify if this was a nonmain
process.
* sigproc.h: Reflect change to sig_send argument.
* syscalls.cc (swab): Eliminate swab function since it is now available
in newlib.
* winsup.h (signal_dispatch): Change CONTEXT cx to DWORD ebp.
Tue Mar 7 13:31:10 2000 Christopher Faylor <cgf@cygnus.com>
* sigproc.cc (sig_send): Eliminate sync_sig_send synchronization since
it didn't seem to affect the "bash hangs" problem.
Tue Mar 7 13:17:56 2000 Christopher Faylor <cgf@cygnus.com>
* mcount.c: Remove strace.h include.
Tue Mar 7 00:29:34 2000 Christopher Faylor <cgf@cygnus.com>
Throughout use strace class in place of individual functions and
variables.
* cygwin.din: Eliminate _strace_wm.
* sigproc.cc (wait_sig): Temporarily add more debugging output.
* include/cygwin/version.h: Bump minor api to reflect export change.
Sun Mar 5 01:17:05 2000 Christopher Faylor <cgf@cygnus.com>
* exceptions.cc (call_handler): Streamline to use only one call to
ResumeThread.
* sigproc.cc (sig_send): Use a muto around the ReleaseSemaphore.
Remove priority setting since it didn't solve anything.
Tue Feb 29 00:46:09 2000 Christopher Faylor <cgf@cygnus.com>
* sigproc.cc (sig_send): Temporarily set priority to highest while
sending a signal.
Mon Feb 28 11:23:29 2000 Christopher Faylor <cgf@cygnus.com>
* pinfo.cc (set_myself): Add build date to strace output.
Mon Feb 28 11:17:30 2000 Eric Fifer <EFifer@sanwaint.com>
* sigproc.cc (proc_subproc): Only clear wait event when not attending
to a signal.
Mon Feb 28 00:08:09 2000 Christopher Faylor <cgf@cygnus.com>
* configure.in: Remove --enable-strace-hhmmss option.
* configure: Regenerate.
Sun Feb 27 23:11:57 2000 Christopher Faylor <cgf@cygnus.com>
* dcrt0.cc (set_os_type): Record OS name string.
(getprogname): Eliminate obsolete function.
(dll_crt0_1): Move initial strace initialization output to set_myself.
* exceptions.cc (interruptible): Add debugging output.
(interrupt_setup): New function.
(interrupt_now): Use interrupt_setup to set up common interrupt handler
stuff.
(interrupt_on_return): Ditto.
(call_handler): Move signal_arrived arm and clear threads to region
where signalled thread is suspended or suffer races.
* pinfo.cc (set_myself): Output interesting information when strace is
first initialized. Initialize progname here.
* sigproc.cc (sig_dispatch_pending): Modify to ensure that flush signal
are sent synchronously.
* strace.cc (strace_vsprintf): Move code into strace program.
* uname.cc (uname): Use 'osname' global to construct cygwin name +
Windows type + version.
Fri Feb 25 19:26:42 2000 Christopher Faylor <cgf@cygnus.com>
* exceptions.cc (interruptible): Make a little more structured.
(call_handler): Allow signals to be sent even if signalled thread is
stopped. Change order of signal_arrived arming/waiting threads
clearing to eliminate a race.
(reset_signal_arrived): New helper function.
* malloc.cc (malloc_init): Use mutos so that signal handler can keep
track of who owns the lock.
(__malloc_lock): Ditto.
(__malloc_unlock): Ditto.
* sync.h (new_muto): Actually use a muto for the "buffer".
* Makefile.in: Fix a dependency.
2000-02-25 DJ Delorie <dj@cygnus.com>
* Makefile.in: fix "make check" support and cygrun.
Thu Feb 24 15:56:00 2000 Christopher Faylor <cgf@cygnus.com>
* syscalls.c (_read): Clear errno before doing any read operation.
Thu Feb 24 14:45:06 2000 Christopher Faylor <cgf@cygnus.com>
* exceptions.cc (call_handler): Use new muto linked list to look for
all potential mutos owned by suspended thread. Clear waiting threads
while thread is stopped.
(proc_subproc): Clarify debugging output.
* sync.h (class muto): Add 'next' field.
(new_muto): Keep linked list alive.
Thu Feb 24 00:59:15 2000 Christopher Faylor <cgf@cygnus.com>
Fix final round of gcc warnings relating to unused parameters.
* debug.cc (iscygthread): New function.
* debug.h: Declare it.
* exceptions.cc (set_process_mask): Flush pending signals.
(handle_sigsuspend): No need to flush pending signals.
(call_handler): Refine previous tests of muto ownership. Only clear
wait()'s when we have definitely responded to a signal.
* fhandler_console.cc (fhandler_console::read): Don't set EINTR if
executing in a "cygwin" thread.
* sigproc.cc (proc_subproc): Use second argument to control whether
CLEARWAIT actually sets "signalled" flag.
* sync.h (muto): Add 'unstable' method.
Wed Feb 23 21:59:44 2000 Christopher Faylor <cgf@cygnus.com>
* hinfo.cc (hinfo::extend): Clean up debugging output.
Wed Feb 23 21:34:58 2000 Christopher Faylor <cgf@cygnus.com>
* exceptions.cc (interruptible): Change method for determining if
something is interruptible.
(call_handler): Avoid suspending a thread if it owns a muto. Only set
signal_arrived if the thread was actually interrupted.
(events_init): Initialize module information needed by interruptible().
* init.cc (dll_entry): Record module handle of main for use by
interruptible().
(proc_subproc): Reorganize handling of terminated child so that the
bulk of the processing comes from the signal thread.
(wait_sig): Force processing of waiting threads if SIGCHLD is not
processed.
Tue Feb 22 23:06:01 2000 Christopher Faylor <cgf@cygnus.com>
Respond to more g++ warnings relating to initializing structures.
Mon Feb 21 18:36:37 2000 Christopher Faylor <cgf@cygnus.com>
* fhandler.cc (set_inheritance): Revert previous patch which got rid of
'name' parameter.
Mon Feb 21 00:19:40 2000 Christopher Faylor <cgf@cygnus.com>
Respond to a multitude of new g++ warnings.
Sun Feb 20 22:10:21 2000 Christopher Faylor <cgf@cygnus.com>
* environ.cc (getwinenv): Make __stdcall.
(winenv): Ditto.
* malloc.cc (strdup): New function. Occludes newlib version.
(_strdup_r): Ditto.
* winsup.h: Reflect above __stdcall changes.
Sun Feb 20 21:31:00 2000 Corinna Vinschen <corinna@vinschen.de>
* fhandler.cc (fhandler_disk_file::fstat): Modify get_file_attribute
return value if FILE_ATTRIBUTE_READONLY is set.
Thu Feb 17 11:00:23 2000 Christopher Faylor <cgf@cygnus.com>
* environ.cc (environ_init): Cosmetic change.
Mon Feb 7 16:50:44 2000 Christopher Faylor <cgf@cygnus.com>
* Makefile.in: cygrun needs libshell32.a.
Sun Feb 6 22:17:58 2000 Christopher Faylor <cgf@cygnus.com>
* sigproc.cc (proc_subproc): Simplify case for when a child process is
stopped since new signal handler ensures the desired behavior.
Sun Feb 6 21:52:33 2000 Christopher Faylor <cgf@cygnus.com>
* Makefile.in: Fix install target so that directories will be created
when necessary.
Sun Feb 6 18:12:17 2000 Christopher Faylor <cgf@cygnus.com>
* Makefile.in: exceptions.cc should depend on autoload.h.
* exceptions.cc: Undef DECLSPEC_IMPORT prior to including imagehlp.h to
avoid defining StackWalk as "import".
(call_handler): Minor optimizations.
(sig_handle_tty_stop): Fix typo in previous checkin.
* sigproc.cc (sigproc_init): Ditto, for signal_arrived initialization.
Sat Feb 5 15:37:37 2000 Christopher Faylor <cgf@cygnus.com>
* dcrt0.cc (isquote): Convert to inline function.
Sat Feb 5 00:26:01 2000 Christopher Faylor <cgf@cygnus.com>
Throughout, rename global_signal_arrived to signal_arrived.
Throughout, eliminate use of arm_signals and __signal_arrived.
Throughout, revert to use of simple call to WaitForSingleObject or
WaitForMultipleObjects.
* debug.h: Eliminate obsolete function declaration.
* exceptions.cc (sigWaitForSingleObject): Eliminate obsolete function
definition.
* fhandler.h: Reflect change to select_stuff wait method.
* fhandler_tape.cc (get_ll): Accomodate new w32api LARGE_INTEGER
definition.
* ntea.c (NTReadEARaw): Ditto.
(NTWriteEA): Ditto.
* security.cc (ReadSD): Ditto.
(WriteSD): Ditto.
* syscalls.cc (_link): Ditto.
* uname.cc (uname): Eliminate PPC switch.
2000-02-01 Salvador Eduardo Tropea <salvador@inti.gov.ar>
* include/io.h: add return type to setmode()
2000-01-27 DJ Delorie <dj@cygnus.com>
* include/netdb.h (h_errno): change __imp_ to dllimport
* cygwin.din (reent_data): add DATA
Thu Jan 27 01:07:14 2000 Christopher Faylor <cgf@cygnus.com>
* exceptions.cc (call_handler): Add debugging output.
* select.cc (MAKEready): Arm signals earlier.
* sigproc.cc (__signal_arrived:arm): Move debugging version of this
method here.
(__signal_arrived::release): Ditto.
* sigproc.h: Recognize debugging versions of above two methods.
(arm_signals::WaitForMultipleObjects): Don't release signal lock unless
signal arrived.
(arm_signals::WaitForMultipleSingleObject): Ditto.
(arm_signals::MsgWaitForMultipleObjects): Ditto.
Thu Jan 27 00:19:26 2000 Christopher Faylor <cgf@cygnus.com>
* sync.h (new_muto): Workaround change in gcc behavior.
Wed Jan 26 12:57:13 2000 Christopher Faylor <cgf@cygnus.com>
* Makefile.in: Ensure that all required libraries are built prior
to linking cygrun.exe.
Tue Jan 25 21:26:57 2000 Christopher Faylor <cgf@cygnus.com>
* exceptions.cc (sig_handle): Crudely work around potential problem
when main thread has a lock but is killed by a fatal signal.
* fhandler_tty.cc (fhandler_pty_master::write): Don't perform line
editing on the pty master (so why do we need the second argument to
line_edit, then?)
* thread.cc: Reformat to GNU standards.
2000-01-11 DJ Delorie <dj@cygnus.com>
* ROADMAP: new
2000-01-11 DJ Delorie <dj@cygnus.com>
* fhandler_zero.cc: new, emulate /dev/zero
* testsuite/winsup.api/devzero.c: new, test /dev/zero
* Makefile.in: build fhandler_zero.o
* fhandler.h: add support for /dev/zero
* hinfo.cc: ditto
* path.cc: ditto
2000-01-11 DJ Delorie <dj@cygnus.com>
* mmap.cc (mmap): MSDN says *one* of FILE_MAP_*, fix flags for
MAP_PRIVATE.
Mon Jan 10 01:11:00 2000 Corinna Vinschen <corinna@vinschen.de>
* security.cc (acl_access): New function.
* syscalls.cc (access): Call acl_access if ntsec is on.
Mon Jan 10 01:11:00 2000 Corinna Vinschen <corinna@vinschen.de>
* fhandler.cc (get_file_owner): Use of ReadSD() instead of
GetFileSecurity().
(get_file_group): Ditto.
Sun Jan 9 15:43:07 2000 Christopher Faylor <cgf@cygnus.com>
* debug.cc (struct thread_start): Add a flag to determine whether a
field is in use. Eliminate thread_start_ix since it was not
thread-safe.
(thread_stub): Use notavail flag to control whether the entry in
start_buf can be reused.
(makethread): Ditto.
Sun Jan 9 20:18:00 2000 Corinna Vinschen <corinna@vinschen.de>
* security.cc (alloc_sd): Rearrange order of ACE creation.
(setacl): Optimize creation of ACEs related to inheritance. Code
cleanup.
(aclcheck): Disable check for existance of DEF_)CLASS_OBJ.
Sat Jan 8 18:42:32 2000 Christopher Faylor <cgf@cygnus.com>
* mkvers.h: Reorg fix.
Sat Jan 8 20:00:00 2000 Corinna Vinschen <corinna@vinschen.de>
* cygwin.din: Add new acl API calls.
* grp.cc (getgroups): Change to work for any username.
* security.cc (get_id_from_sid): Change to work with acl API.
(is_grp_member): New function.
(get_nt_attribute): Rewritten.
(add_access_allowed_ace): New function.
(add_access_denied_ace): Ditto.
(alloc_sd): Rewritten.
(setacl): New function.
(getace): Ditto.
(searchace): Ditto.
(getacl): Ditto.
(acl): Ditto.
(facl): Ditto.
(aclcheck): Ditto.
(acecmp): Ditto.
(aclsort): Ditto.
(acltomode): Ditto.
(aclfrommode): Ditto.
(acltopbits): Ditto.
(aclfrompbits): Ditto.
(permtostr): Ditto.
(acltotext): Ditto.
(permfromstr): Ditto.
(aclfromtext): Ditto.
* syscalls.cc (access): Set errno again when needed.
* include/cygwin/acl.h: New file.
* include/sys/acl.h: Ditto.
Sat Jan 8 14:46:19 2000 Christopher Faylor <cgf@cygnus.com>
* Makefile.in: Add cygwin DLL specific CFLAGS define.
Fri Jan 7 21:01:57 2000 Christopher Faylor <cgf@cygnus.com>
* exceptions.cc (interrupt_on_return): Properly coerce assignment of
sigsave.func.
2000-01-07 Mumit Khan <khan@xraylith.wisc.edu>
* acconfig.h: New file.
* configure.in Add check for memset builtin.
(AC_CONFIG_HEADER): Use.
(STRACE_HHMMSS): Define instead of substituting.
(_MT_SAFE): Likewise.
(_CYG_THREAD_FAILSAFE): Likewise.
(DEBUGGING): Likewise.
(MT_SAFE): Substitute as a yes/no variable.
* Makefile.in: Remove DEBUGGING, STRACE_HHMMSS, and THREAD_FAILSAFE
variables and add DEFS. Update usage of MT_SAFE to reflect yes/no
values. Add config.h to winsup.h dependency.
(CFLAGS_CONFIG): Update.
(INCLUDES): Prepend `-I.'.
* utils/Makefile.in (INCLUDES): Likewise.
* winsup.h: Conditionally include config.h.
* thread.cc: Likewise.
* config.h.in: Generate new file.
* configure: Regenerate.
Fri Jan 7 16:21:01 2000 Christopher Faylor <cgf@cygnus.com>
* dcrt0.cc (dll_crt0): Allow signal handling for dynamically loaded
case.
Thu Jan 6 00:30:12 2000 Corinna Vinschen <corinna@vinschen.de>
* path.cc (symlink_check_one): Initialize local variable `unixattr'
before calling `get_file_attribute'.
* syscalls.cc (chown): Ditto.
* security.cc (get_nt_attribute): Eliminate attribute copying from
world to user/group in case of missing ACEs.
(alloc_sd): Set special rights for administrators group only if it's
neither owner nor group.
* utils/mkpasswd.c: Create entry for local group administrators (SID
544).
Thu Jan 6 00:21:31 2000 Christopher Faylor <cgf@cygnus.com>
Change function calls to __stdcall throughout.
* exceptions.cc (handle_exceptions): Probe stack for return address to
use with new signal method. Fill out sigsave.cx with this information.
(call_handler): Use sigsave.cx if it is available, rather than trying
to find the context of the main thread.
(interrupt_on_return): Use address of context rather than
pass-by-reference.
(interrupt_now): Ditto.
Thu Jan 6 00:21:31 2000 Corinna Vinschen <corinna@vinschen.de>
* grp.cc (getgroups): Return supplementary groups now.
* include/limits.h: Define NGROUP_MAX as 16 now.