1158 lines
43 KiB
Plaintext
1158 lines
43 KiB
Plaintext
2005-03-16 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* dir.cc: Rename opendir_* to dirent_* throughout.
|
|
(opendir_states): Move and rename.
|
|
* fhandler.h (dirent_states): to here.
|
|
* fhandler_disk_file.cc (fhandler_disk_file::readdir): Use raw readdir
|
|
when skipping through entries since it is keeping track of "." and
|
|
"..".
|
|
(fhandler_cygdrive::seekdir): Use fhandler_disk_file::readdir to do
|
|
everything.
|
|
* fhandler_virtual.cc (fhandler_virtual::opendir): Set flag indicating
|
|
that we provide . and ..
|
|
(fhandler_virtual::seekdir): Ditto.
|
|
(fhandler_virtual::rewinddir): Ditto.
|
|
* fhandler_registry.cc (fhandler_registry::rewinddir): Ditto.
|
|
|
|
2005-03-16 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* cygtls.cc (free_local): New macro.
|
|
(_cygtls::remove): Use free_local to free known-malloced local
|
|
variables.
|
|
* cygtls.h: Mark some variables as "malloced".
|
|
* net.cc (enum struct_type): Rename from is_* to t_* for clarity.
|
|
(dump_protoent): Delete.
|
|
(dup_ent): New macro.
|
|
(__dup_ent): Renamed from dup_ent. Change arguments for convenience.
|
|
Replace first argument with newly alloced value. Allocate a rounded
|
|
number of bytes in an attempt to try to reuse space. Subsume
|
|
"dump_protent".
|
|
(cygwin_getprotobyname): Simplify using new dup_ent functionality.
|
|
(cygwin_getprotobynumber): Ditto.
|
|
(cygwin_getservbyname): Ditto.
|
|
(cygwin_getservbyport): Ditto.
|
|
(cygwin_gethostname): Ditto.
|
|
(cygwin_gethostbyname): Ditto.
|
|
* tlsoffsets.h: Regenerate.
|
|
|
|
* syslog.cc (openlog): Use NULL rather than 0, for consistency with the
|
|
rest of cygwin.
|
|
(pass_handler::initialize): Use unbuffered I/O in pass one.
|
|
|
|
2005-03-15 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* errno.cc (errmap): Correct typo in previous change.
|
|
|
|
2005-03-15 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* cygtls.cc (_cygtls::remove): Free process_ident, if it exists.
|
|
|
|
* errno.cc (errmap): ERROR_DISK_CORRUPT -> EIO.
|
|
|
|
2005-03-11 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* path.h (pathconv_arg): Define PC_NO_ACCESS_CHECK.
|
|
(path_types): Define PATH_NO_ACCESS_CHECK == PC_NO_ACCESS_CHECK.
|
|
* path.cc (symlink_info::check_sysfile): Move to symlink_info class and
|
|
eliminate arguments that are part of class. Use set_error.
|
|
(symlink_info::check_shortcut): Ditto.
|
|
(symlink_info::set_error): New function.
|
|
(path_conv::check): Pass PC_NO_ACCESS_CHECK to symlink_info::check.
|
|
(symlink_info::check): Preserve PC_NO_ACCESS_CHECK in pflags. Use
|
|
set_error.
|
|
|
|
2005-03-10 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* path.cc (is_floppy): New function.
|
|
(setmntent): Drop floppy drives on A: and B: from logical drive DWORD.
|
|
* syscalls.cc (sync): Don't sync floppies on A: and B:.
|
|
|
|
2005-03-10 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* autoload.cc (LoadDLLprime): Use nocopy segment or forked processes
|
|
will not initialize properly.
|
|
|
|
2005-03-10 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* autoload.cc (LoadDLLprime): Scrap use of .linkonce and just use an
|
|
ifdef guard to load .foo_init into data segment.
|
|
|
|
* dcrt0.cc (initial_env): Allow colon or space as CYGWIN_DEBUG
|
|
separator for consistency.
|
|
|
|
2005-03-09 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* pinfo.h (pinfo::pinfo): Clear more elements in the constructor.
|
|
|
|
2005-03-09 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* net.cc (dup_ent): Revert older stupid test for null. Don't copy name
|
|
if it is NULL.
|
|
|
|
2005-03-09 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_socket.cc (fhandler_socket::eid_pipe_name): Fix format
|
|
string.
|
|
(fhandler_socket::connect): Set sun_path before running eid credential
|
|
transaction. Run transaction only if OS connect was successful.
|
|
(fhandler_socket::accept): Run transaction only if OS accept was
|
|
successful.
|
|
|
|
2005-03-09 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* signal.cc (sigprocmask): Rename first parameter to "how".
|
|
(handle_sigprocmask): Ditto. Check "how" for being a valid "how" value.
|
|
Fix call order in case of wrong "how" value.
|
|
|
|
2005-03-09 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* net.cc (dup_ent): Revert previous stupid change.
|
|
|
|
2005-03-09 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* net.cc (dup_ent): Avoid dereferencing a null pointer in a debug_printf.
|
|
|
|
2005-03-09 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* path.cc (path_conv::check): Treat ENOSHARE similarly to ENOENT when
|
|
determining if there was a problem with a symlink.
|
|
|
|
2005-03-08 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_socket.cc (fhandler_socket::listen): Don't limit the number
|
|
of pipe instances.
|
|
|
|
2005-03-08 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* pinfo.cc (pinfo::exit): Right shift exit value by eight when not
|
|
started in a cygwin environment.
|
|
|
|
2005-03-07 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* mmap.cc (mmap64): Handle MAP_AUTOGROW flag.
|
|
(fhandler_disk_file::mmap): Ditto. Clean conditional for readability.
|
|
* include/sys/mman.h: Add MAP_AUTOGROW flag.
|
|
* include/cygwin/version.h: Bump API minor version.
|
|
|
|
2005-03-08 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* dcrt0.cc (dll_crt0_0): Eliminate muto::init call.
|
|
* sync.h (locker): New, currently unused class.
|
|
(muto::init): Eliminate.
|
|
* sync.cc (muto::init): Ditto.
|
|
(muto::init): Eliminate critical section lock and instead use name as a
|
|
guard to prevent against multiple attempts to initialize the same muto.
|
|
|
|
* pinfo.cc (pinfo::init): Set myself procinfo when not execing and pid
|
|
matches windows pid or cygwin pid.
|
|
|
|
2005-03-06 Pavel Tsekov <ptsekov@gmx.net>
|
|
|
|
* path.cc (mount_info::read_cygdrive_info_from_registry): Use the user
|
|
prefix if it exists.
|
|
|
|
2005-03-06 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* sync.h (sync::init_lock): Declare new static member.
|
|
(sync::init()): Declare new static function.
|
|
* sync.cc (sync::init): Define.
|
|
(sync::init): Lock attempt to initialize a muto to stop multiple
|
|
threads from colliding.
|
|
* dcrt0.cc (dll_crt0_0): Initialize muto environment.
|
|
|
|
2005-03-06 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* path.cc (special_name): Reorganize to always detect the use of
|
|
special names first, before detecting special characters.
|
|
|
|
2005-03-04 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* fhandler_clipboard.cc: Use int for cygnativeformat rather than UINT
|
|
as that is what is returned by GetPriorityClipboardFormat.
|
|
(fhandler_dev_clipboard::read): Ditto for the format variable.
|
|
|
|
2005-03-04 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler.cc (fhandler_base::open_9x): Satisfy query_open values.
|
|
|
|
2005-03-04 Pierre Humblet <pierre.humblet@ieee.org>
|
|
|
|
* fhandler_socket.cc (fhandler_socket::ioctl): Only cancel
|
|
WSAAsyncSelect when async mode is on.
|
|
|
|
2005-03-03 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* cygwin.din (utmpxname): Export.
|
|
* syscalls.cc (utmpxname): Create export alias to utmpname.
|
|
* include/utmpx.h: Define ut_name and ut_xtime if not already defined.
|
|
(utmpxname): Add prototype.
|
|
* include/sys/utmp.h: Only define ut_name if not already defined.
|
|
* include/cygwin/version.h: Bump API minor version.
|
|
|
|
2005-03-03 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* cygthread.cc (cygthread::detach): Use a slightly higher priority when
|
|
waiting for thread signalling.
|
|
|
|
2005-03-02 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* autoload.cc (std_dll_init): Save and restore fpu control register
|
|
around LoadAddress to prevent loaded dlls (like msvcrt.dll) from
|
|
setting unwanted stuff.
|
|
|
|
2005-03-02 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* cygtls.cc (_cygtls::remove): Don't attempt any removal activities if
|
|
exitsock is zero.
|
|
|
|
2005-03-02 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* cygtls.cc (_cygtls::init_thread): Move exitsock setting later. It
|
|
should always be set.
|
|
(_cygtls::remove): Detect zero exitsock. Not quite sure why this is needed.
|
|
|
|
2005-03-02 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* autoload.cc (LoadDLLprime): Mask error code to low-order 16 bits.
|
|
(noload): Preserve sign when returning error code.
|
|
|
|
2005-03-02 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* spawn.cc (do_cleanup): Properly restore SIGINT/SIGQUIT even if they
|
|
had previously been SIG_DFL.
|
|
|
|
2005-03-01 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_disk_file.cc (fhandler_disk_file::touch_ctime): Replace
|
|
GetSystemTime/SystemTimeToFileTime with GetSystemTimeAsFileTime.
|
|
* times.cc (time_as_timestruc_t): Ditto.
|
|
(time): Ditto.
|
|
|
|
2005-03-01 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* include/cygwin/version.h: Bump DLL minor number to 14.
|
|
|
|
2005-03-01 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_clipboard.cc (fhandler_dev_clipboard::write): Never set
|
|
errno to 0.
|
|
(fhandler_dev_clipboard::read): Ditto.
|
|
* fhandler_windows.cc (fhandler_windows::read): Ditto.
|
|
* scandir.cc (scandir): Ditto.
|
|
* syscalls.cc (_fstat64_r): Ditto.
|
|
(_fstat_r): Ditto.
|
|
(_stat64_r): Ditto.
|
|
(_stat_r): Ditto.
|
|
|
|
* mmap.cc (mmap64): Fix /dev/zero mapping.
|
|
|
|
2005-02-28 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler.h (class fhandler_socket): Declare new method
|
|
set_socketpair_eids.
|
|
* fhandler_socket.cc (fhandler_socket::set_socketpair_eids): New method.
|
|
(fhandler_socket::dup): Duplicate sec_pipe if necessary.
|
|
(fhandler_socket::listen): Only create sec_pipe if named pipes are
|
|
available. Initialized sec_peer_pid to 0 as on Linux.
|
|
(fhandler_socket::connect): Only run eid credential transaction if
|
|
named pipes are available. Fake otherwise. Initialized sec_peer_pid
|
|
to 0 as on Linux.
|
|
(fhandler_socket::accept): Ditto.
|
|
(fhandler_socket::close): Move closing sec_pipe handle from here...
|
|
(fhandler_socket::~fhandler_socket): ... to here.
|
|
* net.cc (socketpair): Set eid credentials by calling
|
|
fhandler_socket::set_socketpair_eids() on both socket ends.
|
|
* wincap.h (wincaps::has_named_pipes): New element.
|
|
* wincap.cc: Implement above element throughout.
|
|
|
|
2005-02-26 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* sigproc.cc (_pinfo::set_ctty): Move function
|
|
* pinfo.cc (_pinfo::set_ctty): to here.
|
|
|
|
* fhandler_mem.cc (fhandler_dev_mem::fstat): Don't fill out structure
|
|
if this is an on-disk device rather than an "auto" device.
|
|
* fhandler_raw.cc (fhandler_dev_raw::fstat): Ditto.
|
|
|
|
* path.cc (normalize_posix_path): Don't treat a standalone '//' as
|
|
introducing a UNC path.
|
|
(normalize_win32_path): Ditto.
|
|
|
|
2005-02-26 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* debug.cc (delete_handle): Report on handle value in debugging output.
|
|
|
|
* pinfo.h (_pinfo::exists): Declare "new" function.
|
|
(_pinfo::kill): Ditto.
|
|
* fhandler_termios.cc (tty_min::kill_pgrp): Use _pinfo::exists rather
|
|
than proc_exists.
|
|
* pinfo.cc (pinfo::init): Ditto. Don't do a low_priority_sleep(0) when
|
|
looping to find exec'ed procinfo.
|
|
(pinfo::release): Be more careful about unmapping and closing.
|
|
* signal.cc (_pinfo::kill): Rename from kill_worker. Accommodate entry
|
|
into _pinfo class.
|
|
(kill0): Use _pinfo::kill rather than kill_worker.
|
|
(kill_pgrp): Ditto. Use _pinfo::exists rather than proc_exists.
|
|
* sigproc.cc (_pinfo::exists): Rename from proc_exists.
|
|
(pid_exists): Use _pinfo::exists rather than proc_exists.
|
|
(remove_proc): Ditto.
|
|
* sigproc.h (proc_exists): Delete declaration.
|
|
|
|
2005-02-25 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler.h (class fhandler_base): Declare fixup_mmap_after_fork
|
|
with additional flags parameter. Change offset parameter to _off64_t.
|
|
(class fhandler_disk_file): Ditto.
|
|
(class fhandler_dev_mem): Ditto.
|
|
* fhandler_mem.cc (fhandler_dev_mem::fixup_mmap_after_fork):
|
|
Accomodate new parameters.
|
|
* mmap.cc: Include ntdll.h.
|
|
(class mmap_record): Add flags member.
|
|
(mmap_record::mmap_record): Add flags parameter.
|
|
(mmap_record::get_flags): New method.
|
|
(class map): Add next_anon_addr member to store next anonymous mapping
|
|
address suggestion.
|
|
(map::get_next_anon_addr): New method.
|
|
(map::set_next_anon_addr): New method.
|
|
(mmap64): Don't align offset and length to granularity in case of
|
|
MAP_ANONYMOUS on NT. Check for already existing mapping only on 9x.
|
|
Call mmap_record::mmap_record with additional flags argument.
|
|
(fhandler_base::fixup_mmap_after_fork): Accomodate new parameters.
|
|
(fhandler_disk_file::mmap): Use NtMapViewOfSection with
|
|
AT_ROUND_TO_PAGE flag for anonymous mappings on NT. If addr is NULL,
|
|
try to map adjacent to previous mapping.
|
|
(fhandler_disk_file::fixup_mmap_after_fork): Add flags argument.
|
|
Change offset parameter to _off64_t. Use NtMapViewOfSection to
|
|
re-create anonymous mappings on NT.
|
|
(fixup_mmaps_after_fork): Accomodate new parameters when calling
|
|
fhandler's fixup_mmaps_after_fork function.
|
|
* ntdll.h (AT_ROUND_TO_PAGE): New define.
|
|
|
|
2005-02-25 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* mmap.cc (mmap64): Handle anonymous MAP_FIXED request on
|
|
non-granulation boundary.
|
|
|
|
2005-02-25 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* mmap.cc (class mmap_record): Declare new map_pages method with
|
|
address parameter.
|
|
(mmap_record::map_pages): New method with address parameter.
|
|
(mmap64): Evaluate access mode before checking if already existing
|
|
mapping can be used.
|
|
Only use existing mapping if requested access mode matches the one
|
|
in the existing mapping.
|
|
Add check for existing mapping for anonymous MAP_FIXED case.
|
|
|
|
2005-02-23 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* localtime.cc: Implement setting __tzrule's offset member using
|
|
newlib's __gettzinfo () interface.
|
|
(__tzrule): Remove.
|
|
(timezone): Define as long according to POSIX.
|
|
|
|
2005-02-23 Eric Blake <ebb9@byu.net>
|
|
|
|
* devices.in (parsedisk): Fix typo.
|
|
* devices.cc: Regenerate.
|
|
|
|
2005-02-23 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* cygwin.din (getpeereid): Export.
|
|
* fhandler.h (class fhandler_socket): Add pipe and id members to
|
|
exchange eid credentials for AF_LOCAL sockets.
|
|
(eid_pipe_name): Declare new method.
|
|
(getpeereid): Ditto.
|
|
* fhandler_socket.cc (fhandler_socket::eid_pipe_name): New method.
|
|
(fhandler_socket::fhandler_socket): Initialize sec_pipe.
|
|
(fhandler_socket::connect): Exchange eid credentials with accepting
|
|
socket process.
|
|
(fhandler_socket::listen): Prepare eid credential transaction.
|
|
(fhandler_socket::accept): Exchange eid credentials with connecting
|
|
socket process.
|
|
(fhandler_socket::close): Close eid credentials pipe if open.
|
|
(fhandler_socket::getpeereid): New method.
|
|
* net.cc (cygwin_getsockopt): Add SO_PEERCRED handling.
|
|
(getpeereid): New function.
|
|
* include/asm/socket.h (SO_PEERCRED): Define.
|
|
* include/cygwin/socket.h (struct ucred): Define new type.
|
|
* include/cygwin/version.h: Bump API minor version.
|
|
|
|
2005-02-23 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* include/sys/statvfs.h (ST_RDONLY): Define.
|
|
(ST_NOSUID): Define.
|
|
|
|
2005-02-23 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* cygwin.din (fstatvfs): Export.
|
|
(statvfs): Export.
|
|
* syscalls.cc: Include sys/statvfs.h.
|
|
(statvfs): New function. Move statfs functionality here.
|
|
(fstatvfs): New function.
|
|
(statfs): Just call statvfs and copy structure. Check validity of
|
|
incoming struct statfs pointer.
|
|
* include/cygwin/types.h (fsblkcnt_t): Define.
|
|
(fsfilcnt_t): Define.
|
|
* include/cygwin/version.h: Bump API minor version.
|
|
* include/sys/statvfs.h: New file.
|
|
|
|
2005-02-23 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* devices.h: Switch FH_ZERO and FH_PORT as on Linux. Add FH_FULL.
|
|
* devices.in: Add /dev/full.
|
|
* devices.cc: Regenerate.
|
|
* dtable.cc (build_fh_pc): Add FH_FULL.
|
|
* fhandler.cc (fhandler_base::fstat): Set FH_FULL permission bits
|
|
correctly.
|
|
* fhandler_zero.cc (fhandler_dev_zero::write): Set errno to ENOSPC
|
|
and return -1 if device is FH_FULL.
|
|
|
|
2005-02-22 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* fhandler_disk_file.cc (fhandler_cygdrive::closedir): Return 0 when
|
|
closing cygdrive_root.
|
|
|
|
2005-02-22 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* cygwin.din (basename): Export.
|
|
(dirname): Export.
|
|
* path.cc (basename): New function.
|
|
(dirname): New function.
|
|
* include/libgen.h: New file.
|
|
* include/cygwin/version.h: Bump API minor version.
|
|
|
|
2005-02-22 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* select.cc (peek_pipe): Disable new pipe code until there's
|
|
a working substitute.
|
|
|
|
2005-02-22 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* cygwin.din (fdatasync): Export.
|
|
* fhandler.cc (fhandler_base::fsync): Return with EINVAL if no
|
|
handle is available.
|
|
* syscalls.cc (fdatasync): Create export alias to fsync.
|
|
* include/cygwin/version.h: Bump API minor version.
|
|
|
|
2005-02-20 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler.h (fhandler_base::fstat_helper): Declare with additional
|
|
dwVolumeSerialNumber argument. Drop default values for last three
|
|
arguments.
|
|
* fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Pass
|
|
dwVolumeSerialNumber from GetFileInformationByHandle to fstat_helper.
|
|
(fhandler_base::fstat_by_name): Pass pc.volser () to fstat_helper.
|
|
Accomodate dropping default values for last three arguments of
|
|
fstat_helper.
|
|
(fhandler_base::fstat_helper): Add dwVolumeSerialNumber argument.
|
|
Use for st_dev member unless 0 in which case pc.volser () is used.
|
|
|
|
2005-02-20 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* autoload.cc (FindFirstVolumeA): Add.
|
|
(FindNextVolumeA): Add.
|
|
(FindVolumeClose): Add.
|
|
(GetVolumePathNamesForVolumeNameA): Add.
|
|
* fhandler.h (class fhandler_base): Declare new method fsync.
|
|
* fhandler.cc (fhandler_base::fsync): New method.
|
|
* syscalls.cc (fsync): Move functionality into fhandler method fsync.
|
|
Just call this method from here.
|
|
(sync_worker): New static function.
|
|
(sync): Fill with life for NT systems.
|
|
* wincap.h (wincaps::has_guid_volumes): New element.
|
|
* wincap.cc: Implement above element throughout.
|
|
|
|
2005-02-20 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler.h (enum query_state): Add query_write_attributes state.
|
|
(fhandler_base::status.query_open): Add a bit to make room for more
|
|
states.
|
|
(class fhandler_base): Declare new method utimes.
|
|
(class fhandler_socket): Ditto.
|
|
(class fhandler_disk_file): Ditto.
|
|
(fhandler_disk_file::fhandler_disk_file): Add constructor with
|
|
path_conv parameter.
|
|
* fhandler.cc (fhandler_base::open): Add query_write_attributes
|
|
handling.
|
|
(fhandler_base::utimes): New method.
|
|
* fhandler_disk_file.cc (fhandler_disk_file::link): Simplify.
|
|
Open file with query_write_attributes instead of query_write_control.
|
|
(fhandler_disk_file::utimes): New method.
|
|
(fhandler_disk_file::fhandler_disk_file): Add constructor with
|
|
path_conv parameter setting pc member immediately.
|
|
* fhandler_socket.cc (fhandler_socket::fchmod): Use new
|
|
fhandler_disk_file constructor.
|
|
(fhandler_socket::fchown): Ditto.
|
|
(fhandler_socket::facl): Ditto.
|
|
(fhandler_socket::link): Ditto.
|
|
(fhandler_socket::utimes): New method.
|
|
* times.cc: Include dtable.h.
|
|
(timeval_to_filetime): Make non-static.
|
|
(utimes): Move functionality into fhandler method utimes. Just call
|
|
this method from here.
|
|
* winsup.h: Simplify declarations of time helper functions.
|
|
(timeval_to_filetime): Add extern declaration.
|
|
|
|
2005-02-19 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler.h (class fhandler_base): Declare new method link.
|
|
(class fhandler_socket): Ditto.
|
|
(class fhandler_disk_file): Ditto.
|
|
* fhandler.cc (fhandler_base::open): Add FILE_WRITE_ATTRIBUTES
|
|
to query_write_control access flags.
|
|
(fhandler_base::link): New method.
|
|
* fhandler_disk_file.cc (fhandler_disk_file::fchmod): Don't try to
|
|
open with O_WRONLY since query_write_control includes
|
|
FILE_WRITE_ATTRIBUTES.
|
|
(fhandler_disk_file::fchown): Ditto.
|
|
(fhandler_disk_file::facl): Ditto.
|
|
(fhandler_disk_file::link): New method. Touch st_ctime on successful
|
|
link.
|
|
* fhandler_socket.cc (fhandler_socket::link): New method.
|
|
* syscalls.cc (link): Move functionality into fhandler method link.
|
|
Just call this method from here.
|
|
|
|
2005-02-19 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler.h (class fhandler_socket): Declare new methods fchown,
|
|
fchmod and facl.
|
|
* fhandler_socket.cc (fhandler_socket::fstat): Handle AF_LOCAL
|
|
sockets.
|
|
(fhandler_socket::fchmod): New method.
|
|
(fhandler_socket::fchown): New method.
|
|
(fhandler_socket::facl): New method.
|
|
|
|
2005-02-19 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* localtime.cc: Temporary implementation of setting __tzrule's offset
|
|
member to be used by strftime.
|
|
(__tzrule): New global variable.
|
|
(tzparse): Set __tzrule's offset member appropriately.
|
|
|
|
2005-02-17 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* path.cc (path_conv::check): Set fs flag when a unix-domain socket
|
|
is detected.
|
|
|
|
2005-02-17 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_disk_file.cc (fhandler_disk_file::fstat): Set st_ctime if
|
|
has_changed flag is set.
|
|
(fhandler_disk_file::touch_ctime): Reset has_changed flag on success.
|
|
|
|
2005-02-17 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* times.cc (utimes): Open files with FILE_WRITE_ATTRIBUTES first,
|
|
if that fails, try opeing with GENERIC_WRITE. Fix comments.
|
|
|
|
2005-02-15 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* path.h (path_conv::issocket): Return true if device == FH_UNIX rather
|
|
than expecting path_conv to set a flag.
|
|
|
|
2005-02-11 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler.cc (fhandler_base::raw_write): Mark as changed on
|
|
successful write.
|
|
* fhandler.h (fhandler_base::status_flags): Add 'has_changed' flag.
|
|
* fhandler_disk_file.cc (fhandler_disk_file::fchmod): Call
|
|
fhandler_disk_file's own open and close instead of open_fs and
|
|
close_fs. Mark as changed on success.
|
|
(fhandler_disk_file::fchown): Ditto.
|
|
(fhandler_disk_file::facl): Ditto.
|
|
(fhandler_disk_file::ftruncate): Ditto.
|
|
(fhandler_base::open_fs): Mark as changed when O_TRUNC flag on existing
|
|
file is set.
|
|
(fhandler_disk_file::close): Set st_ctime if has_changed flag is set.
|
|
|
|
2005-02-11 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* cygthread.cc (cygthread::release): Reset ev here if it exists.
|
|
(cygthread::terminate_thread): Eliminate racy code which reset ev and
|
|
thread_sync. Remove a few nonsensical inuse checks. Exit at the
|
|
bottom.
|
|
(cygthread::detach): Rewrite to again try to ensure that we don't say
|
|
we're signalled when we are not signalled.
|
|
* fhandler.cc (fhandler_base::raw_read): Revert to signalling read
|
|
success quickly.
|
|
* pipe.cc (fhandler_pipe::close): Use base method to close handle.
|
|
* sigproc.h (WAIT_SIG_PRIORITY): Just trundle along at normal priority
|
|
to allow the pipe thread to do its thing if possible.
|
|
|
|
* pinfo.h (pinfo::zap_cwd): Declare new function.
|
|
(pinfo::zap_cwd): Move 'cd out of the way code' here.
|
|
(pinfo::exit): Use it here.
|
|
* spawn.cc (spawn_guts): And here.
|
|
|
|
2005-02-11 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* times.cc (utimes): Open files with GENERIC_WRITE on file systems
|
|
not supporting ACLs.
|
|
|
|
2005-02-09 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_disk_file.cc (fhandler_disk_file::ftruncate): Fix checking
|
|
lseek return code.
|
|
|
|
2005-02-08 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* times.cc (timeval_to_filetime): Define first parameter const.
|
|
(utimes): Define second parameter to const according to SUSv3.
|
|
(utime): Ditto.
|
|
* include/sys/utime.h (utime) : Change declaration accordingly.
|
|
|
|
2005-02-08 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* cygthread.cc (cygthread::detach): Just test thread handle after
|
|
signal arrived, don't wait infinitely for it.
|
|
|
|
2005-02-08 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* pipe.cc (fhandler_pipe::read): Remove hold over from old read_state
|
|
implementation.
|
|
|
|
2005-02-06 Yitzchak Scott-Thoennes <sthoenna@efn.org>
|
|
|
|
* net.cc (cygwin_gethostbyname): Be more picky about what's a numeric
|
|
address string, and use tls in that case too.
|
|
|
|
2005-02-07 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* exceptions.cc: Make windows_system_directory non-static.
|
|
* pinfo.cc (pinfo::exit): Change innocuous cd'ed location to one that
|
|
is more likely to exist.
|
|
|
|
2005-02-06 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* path.cc (path_conv::check): Leave symlink expansion loop in case
|
|
a not-ENOENT error happens.
|
|
|
|
* cygheap.h (cygheap_fdmanip::fhandler_pipe *): New cast operator.
|
|
* pinfo.cc (_pinfo::commune_recv): Add PICOM_PIPE_FHANDLER handling.
|
|
(_pinfo::commune_send): Ditto.
|
|
(_pinfo::pipe_fhandler): New method.
|
|
* pinfo.h (enum picom): Add PICOM_PIPE_FHANDLER.
|
|
(_pinfo::pipe_fhandler): Declare.
|
|
* pipe.cc (fhandler_pipe::open): Rewrite. Allow to open foreign
|
|
pipe handles.
|
|
|
|
2005-02-03 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* cygthread.h (cygthread::terminate_thread): Reflect return value.
|
|
* cygthread.cc (cygthread::detach): Be more careful about ensuring that
|
|
sigwait is properly waited for to avoid later missynchronization.
|
|
(cygthread::terminate_thread): Return true if thread was actually
|
|
terminated and all handles were closed.
|
|
* fhandler_base.cc (fhandler_base::raw_read): Use signal_read_state
|
|
rather than raw calls to win32 api.
|
|
(fhandler_base::read): Ditto.
|
|
* fhandler.h (fhandler_pipe::fixup_after_exec): Use method to create
|
|
read_state signalling.
|
|
(fhandler_pipe::create): Ditto.
|
|
|
|
* Makefile.in: Make some more files -fomit-frame-pointer.
|
|
|
|
2005-02-02 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler.h (fhandler_base::ftruncate): Define new virtual method.
|
|
(fhandler_disk_file::ftruncate): Ditto.
|
|
* fhandler.cc (fhandler_base::ftruncate): New method.
|
|
* fhandler_disk_file.cc (fhandler_disk_file::ftruncate): Ditto.
|
|
* syscalls.cc (ftruncate64): Move functionality into fhandlers.
|
|
Call fhandler method from here.
|
|
|
|
2005-02-02 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* pipe.cc (fhandler_pipe::dup): Fix conditionals in case of error.
|
|
|
|
2005-02-02 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* times.cc (utimes): Mark st_ctime for update according to SUSv3.
|
|
|
|
2005-02-01 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* fhandler_proc.cc (format_proc_partitions): Remove PartitionType check
|
|
since it could skip over partitions that are actually interesting.
|
|
|
|
2005-02-01 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* cygthread.cc (cygthread::terminate_thread): Wait briefly for
|
|
notification event in the event that the thread was actually in the
|
|
process of exiting.
|
|
|
|
* pipe.cc (fhandler_pipe::dup): read_state is not supposed to be
|
|
inheritable. Fix that.
|
|
|
|
* path.cc (path_conv::check): Set symlen = 0 to avoid a compiler
|
|
warning.
|
|
|
|
* devices.h (devices::parsedisk): Declare new function.
|
|
* devices.in (devices::parsedisk): Define new function.
|
|
* dtable.cc (dtable::init_std_file_from_handle): Use device numbers
|
|
rather than name.
|
|
* fhandler_proc.cc (format_proc_partitions): Use parsedisk to generate
|
|
disk names from numeric codes. (This was broken on two of my
|
|
systems previously and is still broken now)
|
|
|
|
2005-02-01 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* pipe.cc (fhandler_pipe::open): Allow re-opening of /proc/<pid>/fd
|
|
pipes of the current process.
|
|
|
|
2005-02-01 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler.cc (fhandler_base::get_proc_fd_name): Don't generate
|
|
"device:" entry.
|
|
* fhandler.h (fhandler_socket::open): New method.
|
|
(fhandler_pipe::open): New method.
|
|
* fhandler_proc.cc (fhandler_proc::exists): Return -2 in case of
|
|
/proc/self.
|
|
* fhandler_process.cc (fhandler_process::exists): Return -2 in
|
|
case of symlinks, -3 for pipes and -4 for sockets.
|
|
(fhandler_process::fstat): Handle pipes and sockets.
|
|
(fhandler_process::open): Handle opening /proc/<pid>/fd.
|
|
(fhandler_process::fill_filebuf): Generate empty names for
|
|
non exisiting file descriptors.
|
|
* fhandler_socket.cc (fhandler_socket::get_proc_fd_name): Always
|
|
generate "socket:[number]" strings as on Linux.
|
|
(fhandler_socket::open): New method.
|
|
(fhandler_socket::fstat): Always return socket type.
|
|
* path.cc (symlink_info::set): Remove unused second parameter.
|
|
(path_conv::check): Handle pipes and sockets in /proc.
|
|
Set correct device type for AF_LOCAL sockets.
|
|
* pinfo.cc (_pinfo::commune_recv): Generate empty names for
|
|
non exisiting file descriptors.
|
|
(_pinfo::fd): Ditto.
|
|
* pipe.cc (fhandler_pipe::open): New method.
|
|
|
|
2005-01-31 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* path.h (path_conv::set_name): Declare new function.
|
|
* path.cc (path_conv::set_name): Define new function.
|
|
* fhandler.h (fhandler_dev_null::open): Declare new function.
|
|
* fhandler.cc (fhandler_dev_null::open): Define new function.
|
|
|
|
2005-01-31 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* smallprint.c (rnarg): Use long rather than unsigned long so that we
|
|
get proper sign extension.
|
|
|
|
2005-01-31 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* environ.cc (set_traverse): New function.
|
|
(parse_thing): Add "traverse" option. Sort options alphabetically.
|
|
(environ_init): On NT, switch on traverse checking by default.
|
|
|
|
2005-01-31 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* smallprint.c (__rn): Regparmize.
|
|
|
|
2005-01-31 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* smallprint.c (rnarg): New macro.
|
|
(rnargLL): Ditto.
|
|
(__rn): Rename from 'rn', add a mask argument, and use the mask
|
|
argument to control how many significant digits to care about.
|
|
(__small_vsprintf): Use __rn, rnarg, rnargLL, as appropriate.
|
|
|
|
2005-01-31 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* pinfo.cc (pinfo::exit): Only return low-order 16 bits when exiting.
|
|
|
|
2005-01-31 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_process.cc (format_process_maps): Get destbuf argument by
|
|
reference. Allow resizing of destbuf as necessary. Fix string
|
|
handling.
|
|
|
|
2005-01-31 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* cygheap.h (class cygheap_fdenum): New class to enumerate used
|
|
fhandlers.
|
|
* dtable.h (class dtable): Add cygheap_fdenum as friend class.
|
|
* fhandler.h (fhandler_base::get_proc_fd_name): New virtual method
|
|
to return a name for /proc/<pid>/fd.
|
|
(fhandler_socket::get_proc_fd_name): Ditto.
|
|
(fhandler_pipe::get_proc_fd_name): Ditto.
|
|
(fhandler_virtual::opendir): Make virtual method.
|
|
(fhandler_process::opendir): New method.
|
|
* fhandler.cc (fhandler_base::get_proc_fd_name): New method.
|
|
* fhandler_process.cc: Include ctype.h.
|
|
(PROCESS_FD): Define.
|
|
(process_listing): Add "fd".
|
|
(fhandler_process::exists): Fix comment. Return 1 in case of "fd"
|
|
directory. Handle files below "fd".
|
|
(fhandler_process::fstat): Drop "self" handling. Set correct link
|
|
count for directories.
|
|
(fhandler_process::opendir): New method to handle "fd" directory.
|
|
(fhandler_process::readdir): Add "fd" handling.
|
|
(fhandler_process::open): Drop "self" handling.
|
|
(fhandler_process::fill_filebuf): Ditto. Add "fd" handling. Fix
|
|
"maps" output string.
|
|
* fhandler_registry.cc (fhandler_registry::fstat): Set correct link
|
|
count for directories.
|
|
* fhandler_socket.cc (fhandler_socket::get_proc_fd_name): New method.
|
|
* path.cc (symlink_info::set): Fix thinko.
|
|
* pinfo.cc (_pinfo::commune_recv): Rename pathbuf to path throughout.
|
|
Drop local path variable in PICOM_FIFO case. Fix debug output.
|
|
Close handles as early as possible. Add PICOM_FDS and PICOM_FD
|
|
handling.
|
|
(_pinfo::commune_send): Add PICOM_FDS and PICOM_FD handling.
|
|
(_pinfo::fd): New method.
|
|
(_pinfo::fds): New method.
|
|
* pinfo.h (enum picom): Add PICOM_FDS and PICOM_FD.
|
|
(_pinfo::fd): Declare.
|
|
(_pinfo::fds): Declare.
|
|
* pipe.cc (fhandler_pipe::get_proc_fd_name): New method.
|
|
|
|
2005-01-29 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* smallprint.c (rn): Change uval to unsigned long long to fix 64 bit
|
|
handling.
|
|
* fhandler_process.cc (format_process_maps): Print major, minor and
|
|
inode numbers correctly.
|
|
|
|
2005-01-29 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* autoload.cc (GetModuleFileNameExA): Add.
|
|
(GetModuleInformation): Add.
|
|
(QueryWorkingSet): Add.
|
|
* fhandler.h (fhandler_virtual::get_filebuf): New method.
|
|
* fhandler_proc.cc (PROC_SELF): Define.
|
|
(proc_fhandlers): Change type of self to FH_PROC.
|
|
(fhandler_proc::exists): Return -3 if self.
|
|
(fhandler_proc::fstat): Handle self as symlink.
|
|
(fhandler_proc::fill_filebuf): Handle self.
|
|
* fhandler_process.cc: Include psapi.h.
|
|
(PROCESS_EXENAME): Remove.
|
|
(PROCESS_MAPS): Define.
|
|
(PROCESS_ROOT): Define.
|
|
(PROCESS_EXE): Define.
|
|
(PROCESS_CWD): Define.
|
|
(process_listing): Remove "exename", add "maps, "root", "exe" and
|
|
"cwd" elements.
|
|
(fhandler_process::exists): Return -2 for symlinks.
|
|
(fhandler_process::fstat): Handle symlinks.
|
|
(fill_filebuf): Evaluate pid if pid is 0. Use exename handling for
|
|
exe. Handle maps, root and cwd.
|
|
(format_process_maps): New function evaluating "maps".
|
|
* path.cc (symlink_info::set): New method to fill symlink_info
|
|
with data matching virtual symlinks.
|
|
(path_conv::check): Handle virtual symlinks.
|
|
* pinfo.cc (_pinfo::commune_recv): Add PICOM_CWD and PICOM_ROOT
|
|
handling.
|
|
(_pinfo::commune_send): Ditto.
|
|
(_pinfo::root): New function.
|
|
(_pinfo::cwd): New function.
|
|
* pinfo.h (enum picom): Add PICOM_CWD and PICOM_ROOT.
|
|
(_pinfo::root): Declare.
|
|
(_pinfo::cwd): Declare.
|
|
|
|
2005-01-29 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* cygthread.cc (new): Add a little more debugging.
|
|
* thread.cc (pthread_null::exit): Add a _my_tls.remove() for safety.
|
|
|
|
2005-01-28 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* cygtls.cc (cygtls::call2): Move socket cleanup.
|
|
(cygtls::remove): Move socket cleanup here. Don't use _my_tls to
|
|
reference it.
|
|
|
|
2005-01-26 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* pinfo.cc (pinfo::init): Avoid a compiler warning.
|
|
|
|
2005-01-25 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* syscalls.cc (setpriority): Implement PRIO_PGRP, PRIO_USER and
|
|
setting priority in other Cygwin processes.
|
|
(getpriority): Implement PRIO_PGRP, PRIO_USER and getting nice value
|
|
from other processes.
|
|
|
|
2005-01-26 Pierre Humblet <pierre.humblet@ieee.org>
|
|
|
|
* path.cc (path_conv::check): Return ENOTDIR rather than ENOENT
|
|
when a component is not a directory. Remove unreachable code.
|
|
(digits): Delete.
|
|
|
|
2005-01-25 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* pinfo.h (pinfo::init): Make third parameter non-optional and
|
|
propagate change throughout.
|
|
* pinfo.cc (set_myself): Pass INVALID_HANDLE_POINTER if h is NULL.
|
|
(pinfo::init): Make third parameter non-optional. Eliminate use of
|
|
PID_EXECED as an argument. Put setting of handle back inside loop but
|
|
reorganize to try to open it only when necessary.
|
|
|
|
2005-01-25 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* cygwin.din: Export getpriority and setpriority.
|
|
* fork.cc (fork_parent): Copy parent's nice value into child.
|
|
* spawn.cc (spawn_guts): Ditto.
|
|
* miscfuncs.cc (winprio_to_nice): New function.
|
|
(nice_to_winprio): Ditto.
|
|
* pinfo.cc (pinfo_init): If parent is not a Cygwin process, set
|
|
default nice value according to current Win32 priority class.
|
|
* pinfo.h (class _pinfo): Add nice member.
|
|
* syscalls.cc (setpriority): New function, only implementing
|
|
PRIO_PROCESS for now.
|
|
(getpriority): Ditto.
|
|
(nice): Just call setpriority.
|
|
* wincap.h (wincaps::has_extended_priority_class): New element.
|
|
* wincap.cc: Implement above element throughout.
|
|
* winsup.h: Add prototypes for winprio_to_nice and nice_to_winprio.
|
|
* include/limits.h (NZERO): New define.
|
|
* include/cygwin/types.h (id_t): New datatype.
|
|
* include/cygwin/version.h: Bump API minor version.
|
|
* include/sys/resource.h: Add PRIO_XXX defines and prototypes for
|
|
getpriority and setpriority.
|
|
|
|
2005-01-25 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* path.cc (realpath): Allow to expand with .exe suffix.
|
|
|
|
2005-01-22 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* spawn.cc (spawn_guts): Perform same "cd" as in pinfo::exit below to
|
|
make sure that a stub process does not keep the current working
|
|
directory busy after the "execed" process has exited.
|
|
|
|
2005-01-22 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* pinfo.cc (pinfo::init): Move everything but the MapViewOfFileEx out
|
|
of the loop since trying multiple times to call CreateFileMapping
|
|
doesn't make much sense. Try to structure the loop a little better so
|
|
that exiting with a break does the right thing.
|
|
(pinfo::release): Release shared memory area if it exists and close
|
|
handle if it exists.
|
|
|
|
2005-01-22 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* pinfo.cc (pinfo::maybe_set_exit_code_from_windows): Make sure that
|
|
process has exited before getting an error code.
|
|
(pinfo::exit): "cd" to innocuous location before exiting to make sure
|
|
that process does not keep the current working directory busy while it
|
|
is in the process of really exiting.
|
|
|
|
2005-01-18 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* autoload.cc (CoInitialize): Remove.
|
|
(CoUninitialize): Remove.
|
|
(CoCreateInstance): Remove.
|
|
(CoTaskMemFree): Add.
|
|
(SHGetDesktopFolder): Add.
|
|
* path.cc (shortcut_header): Remove.
|
|
(shortcut_initalized): Remove.
|
|
(GUID_shortcut): New static GUID.
|
|
(struct win_shortcut_hdr): New struct describing Windows shortcut
|
|
header structure.
|
|
(symlink_worker): Rewrite creating Windows shortcuts. Create
|
|
ITEMIDLIST if target exists. Only write once.
|
|
(cmp_shortcut_header): Use win_shortcut_hdr structure for comparison.
|
|
(check_shortcut): Rewrite to read only once from file. Allow skipping
|
|
an ITIMIDLIST in the file.
|
|
|
|
2005-01-16 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* pinfo.h (maybe_set_exit_code_from_windows): Renamed from
|
|
set_exit_state.
|
|
* pinfo.cc (pinfo::exit): Use renamed function.
|
|
(proc_waiter): Ditto. Make a copy of input argument to avoid problems
|
|
when procs array is shuffled. Flag when copy is made so that
|
|
remove_proc knows when it is safe to reshuffle.
|
|
* sigproc.cc (proc_terminate): Don't flag process_state as PID_EXITED.
|
|
(remove_proc): Wait for waiter to finish copying pinfo element before
|
|
moving it (an actual wait should be an extremely rare event).
|
|
|
|
2005-01-15 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* init.cc (dll_entry): Remove unused extern.
|
|
|
|
* include/sys/cygwin.h: Remove PID_ZOMBIE.
|
|
* pinfo.h: Rename EXITCODE_* defines.
|
|
(pinfo::set_exit_state): Remove parameter.
|
|
* pinfo.cc (set_exit_state): Remove parameter. Reverse sense of test
|
|
so that exitcode is checked for having been set rather than not having
|
|
been set. Set flag when exitcode has been established. Don't set
|
|
PID_STATE here.
|
|
(pinfo::init): Remove exitcode initialization.
|
|
(pinfo::exit): Reflect change in EXITCODE_* naming. Set flag when
|
|
exitcode has been established. Reflect change in arguments to
|
|
set_process_state.
|
|
(proc_waiter): Reflect change in arguments to set_process_state. Set
|
|
process_state here and only here.
|
|
* fhandler_process.cc (fhandler_process::fill_filebuf): Reflect removal
|
|
of PID_ZOMBIE define.
|
|
(format_process_stat): Ditto.
|
|
(format_process_status): Ditto.
|
|
* sigproc.cc (pid_exists): Ditto.
|
|
(stopped_or_terminated): Ditto. Make sure that only low-order 16 bits of
|
|
exitcode are used.
|
|
* spawn.cc (spawn_guts): Reflect change in EXITCODE_* naming.
|
|
|
|
2005-01-15 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* sigproc.cc (sig_send): Don't complain if attempt to send signal to
|
|
myself fails after I've "execed".
|
|
|
|
2005-01-14 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_disk_file.cc (fhandler_disk_file::facl): Pretend successful
|
|
SETACL if no acls are available.
|
|
* fhandler.cc (fhandler_base::facl): Implement to return sensible
|
|
values on GETACL and GETACLCNT. Pretend successful SETACL.
|
|
* fhandler_virtual.cc (fhandler_virtual::facl): Ditto.
|
|
|
|
2005-01-13 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler.h (fhandler_disk_file::touch_ctime): Declare.
|
|
* fhandler_disk_file.cc (fhandler_disk_file::touch_ctime): New method
|
|
to set file's ctime.
|
|
(fhandler_disk_file::fchmod): Try opening file for writing first.
|
|
Set file's ctime on success.
|
|
(fhandler_disk_file::fchown): Ditto.
|
|
(fhandler_disk_file::facl): Ditto.
|
|
|
|
2005-01-13 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* pinfo.cc (pinfo::exit): Don't access self after releasing it.
|
|
* path.h (path_conv::path_conv): Fill path with native device
|
|
name in case of device argument.
|
|
|
|
2005-01-13 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_serial.cc (fhandler_serial::dup): Call overlapped_setup
|
|
for child, not for parent.
|
|
|
|
2005-01-13 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* init.cc (dll_entry): Nuke attempt to set exit code since parent will
|
|
use windows exit code if needed.
|
|
* pinfo.cc (pinfo::exit): Move release() here to minimize pid creation
|
|
race (suggested by Pierre Humblet).
|
|
|
|
2005-01-12 Christopher Faylor <cgf@timesys.com>
|
|
|
|
Reorganize header file inclusion throughout so that cygerrno.h comes
|
|
first.
|
|
* fhandler.h (select_record::thread_errno): Save any encountered errno
|
|
here.
|
|
(select_record::set_select_errno): New function.
|
|
(select_record::saw_error): New function.
|
|
(select_record::select_record): Initialize thread_errno to zero.
|
|
* select.cc (set_handle_or_return_if_not_open): Set thread_errno on
|
|
failure.
|
|
(select_stuff::wait): Record errno for later resurrection in calling
|
|
thread.
|
|
(peek_serial): Ditto.
|
|
|
|
2005-01-12 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* syscalls.cc (system): Use "/bin/sh" as per linux and (sorta) SUSv3.
|
|
|
|
2005-01-12 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* pinfo.cc (pinfo::exit): Don't assume that this == myself.
|
|
|
|
2005-01-11 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* pinfo.cc (pinfo::init): Don't close input handle on temporary (?)
|
|
failure.
|
|
|
|
2005-01-11 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* pinfo.h (_pinfo::set_exit_state): Declare new function.
|
|
(pinfo::exit): Move here from _pinfo::exit.
|
|
* sigproc.cc (child_info::sync): Use new function to set exitcode and
|
|
process_state.
|
|
* pinfo.cc (_pinfo::exit): Ditto.
|
|
(proc_waiter): Ditto.
|
|
(_pinfo::set_exit_state): Define new function.
|
|
(_pinfo::dup_proc_pipe): Close handle when there is no parent process
|
|
around to care about the exit value.
|
|
* dcrt0.cc (dll_crt0_0): Move subproc_ready synchronization later to
|
|
make sure that myself is still mapped in parent.
|
|
(do_exit): Reflect movement to pinfo::exit.
|
|
(__api_fatal): Ditto.
|
|
* exceptions.cc (signal_exit): Ditto.
|
|
* errno.cc (errmap): Map PROC_NOT_FOUND.
|
|
* init.cc (dll_entry): Release myself before exiting.
|
|
* sigproc.cc (proc_can_be_signalled): Set errno appropriately.
|
|
(sig_send): Ditto. Also remove ill-advised test for !myself->sendsig
|
|
since this is an indication of a process which is still initializating
|
|
-- it is not an error.
|
|
(child_info::sync): Don't set exitcode here. Assume that will happen
|
|
in proc_waiter, if necessary.
|
|
* spawn.cc (spawn_guts): Delay "wait_for_myself" logic until later.
|
|
Don't wait at all if the process has already exited. Reflect movement
|
|
to pinfo::exit.
|
|
|
|
2005-01-11 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* environ.cc (build_env): Disallow empty strings and strings starting
|
|
with '=' in Win32 environment.
|
|
|
|
2005-01-08 Pierre Humblet <pierre.humblet@ieee.org>
|
|
|
|
* syscalls.cc (seteuid32): Only change the default dacl when
|
|
seteuid succeeds. Do not close HKCU.
|
|
|
|
2005-01-06 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_process.cc: Use strcasematch instead of strcasecmp
|
|
throughout.
|
|
|
|
2005-01-06 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* syscalls.cc (rename): Fix behaviour in case of renaming directories
|
|
according to SUSv3.
|
|
|
|
2005-01-06 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* fhandler_disk_file.cc (fhandler_base::open_fs): Don't allow
|
|
opening directories for writing.
|
|
|
|
2005-01-06 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* timer.cc (timer_thread): Pass sigev pointer value as per SuSv3 rather
|
|
than pointer to sigev.
|
|
|
|
2005-01-05 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* dcrt0.cc (multiple_cygwin_problem): Reorganize error message to not
|
|
always talk about a "version" when it's not a version.
|
|
(dll_crt0_0): Change info passed to multiple_cygwin_problem to be a
|
|
little more precise.
|
|
* shared.cc (user_shared_initialize): Ditto.
|
|
(shared_info::initialize): Ditto.
|
|
|
|
2005-01-03 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* pinfo.cc (_pinfo::dup_proc_pipe): Can't close proc pipe when execing
|
|
or we will suffer an exit code race.
|
|
|
|
2005-01-03 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* signal.cc (abort): Call _GLOBAL_REENT's __cleanup.
|
|
|
|
2005-01-03 Corinna Vinschen <corinna@vinschen.de>
|
|
|
|
* syscalls.cc (setmode): Call _fwalk with _GLOBAL_REENT.
|
|
|
|
2005-01-01 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* cygthread.cc (cygthread::stub): Set inuse to false when exiting.
|
|
(cygthread::cygthread): Actually pass name as argument to debugging
|
|
output to avoid SEGV when strace'ing.
|
|
(cygthread::release): Don't set stack_ptr to NULL, since it is only set
|
|
once on first entry to a stub not on each stub iteration.
|
|
(cygthead::exit_thread): Remove obsolete function.
|
|
* cygthread.h (cygthread::exit_thread): Ditto.
|
|
|
|
2005-01-01 Christopher Faylor <cgf@timesys.com>
|
|
|
|
* shared.cc (open_shared): Don't attempt VirtualAlloc magic if first
|
|
attempt to map memory fails.
|