2770 lines
105 KiB
Plaintext
2770 lines
105 KiB
Plaintext
|
2007-12-30 Dave Korn <dave.korn@artimi.com>
|
||
|
|
||
|
* cygwin.din (_f_llrint, _f_llrintf, _f_llrintl, _f_lrint, _f_lrintf,
|
||
|
_f_lrintl, _f_rint, _f_rintf, _f_rintl): Export fast *rint* functions.
|
||
|
(lrint, lrintf, rint, rintf): Redirect exports to alias _f_ versions.
|
||
|
(llrint, llrintf, llrintl, lrintl, rintl): Add exports aliasing _f_*
|
||
|
versions likewise.
|
||
|
* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
|
||
|
|
||
|
2007-12-22 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler.h (class fhandler_dev_random): Add dummy_offset member.
|
||
|
* fhandler_random.cc (fhandler_dev_random::lseek): Fake seeking
|
||
|
capability as on Linux.
|
||
|
|
||
|
2007-12-20 Eric Blake <ebb9@byu.net>
|
||
|
|
||
|
* libc/memmem.cc (memmem): Fix bug when searching for empty string.
|
||
|
|
||
|
2007-12-19 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* cygwin.din: Export wcpcpy, wcpncpy.
|
||
|
* include/cygwin/version.h: Bump API minor number.
|
||
|
|
||
|
2007-12-16 Christopher Faylor <me+cygwin@cgf.cx>
|
||
|
|
||
|
* dtable.cc (POSIX_NAMED_PIPE): New define.
|
||
|
(POSIX_NAMED_PIPE_LEN): Ditto.
|
||
|
(dtable::add_archetype): Use crealloc_abort.
|
||
|
(dtable::init_std_file_from_handle): Specifically detect pipe
|
||
|
stdin/stdout. Pass name to build_fh_dev so that proper name is
|
||
|
recorded. Use binmode of fh if it is set before using
|
||
|
get_default_mode. Set proper read/write access when calling init().
|
||
|
(handle_to_fn): Handle pipes.
|
||
|
* fhandler.cc (fhandler_base::wait_overlapped): Add some debugging.
|
||
|
* fhandler.h (fhandler_base::set_name): Default to just setting the
|
||
|
path_conv name.
|
||
|
(fhandler_pipe::init): Declare.
|
||
|
* pipe.cc (struct pipesync): New struct.
|
||
|
(getov_result): New function. Blocks and retrieves the result of an
|
||
|
overlay I/O operation.
|
||
|
(pipe_handler): New function.
|
||
|
(pipesync::pipesync): New function. Initializer for pipesync struct.
|
||
|
(handler_pipe::init): Define. Detects attempts to set up a "native"
|
||
|
pipe fhandler and creates a thread which accepts input from or output
|
||
|
to the non-cygwin pipe, creating a cygwin pipe wrapper around the
|
||
|
non-cygwin pipe.
|
||
|
(fhandler_pipe::create): Add pipe-specific flags to call to init().
|
||
|
|
||
|
* exceptions.cc (ctrl_c_handler): Lock process while we determine what
|
||
|
to do.
|
||
|
|
||
|
2007-12-14 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* include/cygwin/socket.h: Include sys/uio.h instead of cygwin/uio.h.
|
||
|
* include/cygwin/uio.h: Remove.
|
||
|
|
||
|
2007-12-14 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* dtable.cc (dtable::set_file_pointers_for_exec): Reenable. Fix
|
||
|
comment.
|
||
|
* spawn.cc (spawn_guts): Call cygheap->fdtab.set_file_pointers_for_exec
|
||
|
only for non-Cygwin processes.
|
||
|
|
||
|
2007-12-13 Craig MacGregor <cmacgreg@gmail.com>
|
||
|
Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* poll.cc (poll): Return count of fds with events instead of total
|
||
|
event count.
|
||
|
|
||
|
2007-12-13 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* string.h: Guard cygwin internal string function definitions with
|
||
|
__INSIDE_CYGWIN__.
|
||
|
|
||
|
2007-12-12 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* dcrt0.cc: Include string.h.
|
||
|
(initial_env): Use small_printf's %P specifier.
|
||
|
* dll_init.cc (dll_list::alloc): Use PATH_MAX instead of CYG_MAX_PATH
|
||
|
for path name buffer size.
|
||
|
* dll_init.h (struct dll): Ditto.
|
||
|
* environ.cc: Include string.h.
|
||
|
(win_env::add_cache): Use temporary local buffer for path conversion.
|
||
|
(posify): Ditto.
|
||
|
* exceptions.cc (try_to_debug): Use CreateProcessW to allow long path
|
||
|
names.
|
||
|
* miscfuncs.cc: Drop unused implementations of strcasematch and
|
||
|
strncasematch.
|
||
|
(ch_case_eq): Drop.
|
||
|
(strcasestr): Drop.
|
||
|
(cygwin_wcscasecmp): New function.
|
||
|
(cygwin_wcsncasecmp): New function.
|
||
|
(cygwin_strcasecmp): New function.
|
||
|
(cygwin_strncasecmp): New function.
|
||
|
(cygwin_wcslwr): New function.
|
||
|
(cygwin_wcsupr): New function.
|
||
|
(cygwin_strlwr): New function.
|
||
|
(cygwin_strupr): New function.
|
||
|
* ntdll.h (RtlDowncaseUnicodeString): Declare.
|
||
|
(RtlUpcaseUnicodeString): Declare.
|
||
|
(RtlInt64ToHexUnicodeString): Fix typo in comment.
|
||
|
* string.h: Disable not NLS aware implementations of strcasematch
|
||
|
and strncasematch.
|
||
|
(cygwin_strcasecmp): Declare.
|
||
|
(strcasecmp): Define as cygwin_strcasecmp.
|
||
|
(cygwin_strncasecmp): Declare.
|
||
|
(strncasecmp): Define as cygwin_strncasecmp.
|
||
|
(strcasematch):Define using cygwin_strcasecmp.
|
||
|
(strncasematch):Define using cygwin_strncasecmp.
|
||
|
(cygwin_strlwr): Declare.
|
||
|
(strlwr): Define as cygwin_strlwr.
|
||
|
(cygwin_strupr): Declare.
|
||
|
(strupr): Define as cygwin_strupr.
|
||
|
* wchar.h: New file.
|
||
|
* wincap.cc (wincapc::init): Use "NT" as fix OS string.
|
||
|
* winsup.h (strcasematch): Drop declaration.
|
||
|
(strncasematch): Ditto.
|
||
|
(strcasestr): Ditto.
|
||
|
|
||
|
2007-12-11 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_disk_file.cc (fhandler_base::fstat_helper): Fix R/O bit
|
||
|
handling on filesystems without ACL support.
|
||
|
|
||
|
2007-12-11 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* localtime.cc (tzset): Guard by a muto for thread safety.
|
||
|
|
||
|
2007-12-11 Dave Korn <dave.korn@artimi.com>
|
||
|
|
||
|
* cygheap.cc (_csbrk): Don't request zero bytes from VirtualAlloc,
|
||
|
as windows treats that as an invalid parameter and returns an error.
|
||
|
|
||
|
2007-12-11 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* localtime.cc (tzset): Call tzsetwall only if it hasn't been
|
||
|
called before.
|
||
|
|
||
|
2007-12-07 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* include/sys/cygwin.h: Include limits.h.
|
||
|
|
||
|
2007-12-06 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* dcrt0.cc (initial_env): Use PATH_MAX instead of CYG_MAX_PATH for path
|
||
|
name buffer size.
|
||
|
(dll_crt0_1): Allocate new_argv0 with PATH_MAX size.
|
||
|
* exceptions.cc (debugger_command): Set size to 2 * PATH_MAX + 20;
|
||
|
(error_start_init): Use PATH_MAX instead of CYG_MAX_PATH for path
|
||
|
name buffer size.
|
||
|
* external.cc (fillout_pinfo): Always fill out ep.progname 0-terminated.
|
||
|
Fill out ep.progname_long.
|
||
|
* fhandler_process.cc (fhandler_process::fill_filebuf): Allocate
|
||
|
buffer for executable filename with PATH_MAX size.
|
||
|
* pinfo.cc: Throughout use PATH_MAX instead of CYG_MAX_PATH.
|
||
|
* pinfo.h (class _pinfo): Set progname size to PATH_MAX.
|
||
|
* smallprint.cc: Include limits.h. Use PATH_MAX instead of CYG_MAX_PATH
|
||
|
for path name buffer size.
|
||
|
* strace.cc (strace::vsprntf): Ditto.
|
||
|
* include/sys/cygwin.h (EXTERNAL_PINFO_VERSION_32_LP): Define.
|
||
|
(EXTERNAL_PINFO_VERSION): Set to EXTERNAL_PINFO_VERSION_32_LP.
|
||
|
(struct external_pinfo): Add progname_long member.
|
||
|
* include/sys/dirent.h: Correctly include limits.h instead of
|
||
|
sys/limits.h.
|
||
|
|
||
|
2007-12-05 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_tty.cc (fhandler_tty_slave::open): Use MAX_PATH instead of
|
||
|
CYG_MAX_PATH for event name buffer size.
|
||
|
(fhandler_pty_master::setup): Use MAX_PATH instead of CYG_MAX_PATH for
|
||
|
mutex name buffer size.
|
||
|
* netdb.cc: Drop old comment.
|
||
|
(open_system_file): Set path buffer size to MAX_PATH instead of
|
||
|
CYG_MAX_PATH. Drop conversion to posix path. Open file using win32
|
||
|
path.
|
||
|
|
||
|
2007-12-05 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_registry.cc: Use NAME_MAX + 1 instead of CYG_MAX_PATH
|
||
|
throughout for subkey name buffer size.
|
||
|
* fhandler_socket.cc (search_wsa_event_slot): Use MAX_PATH instead of
|
||
|
CYG_MAX_PATH for mutex name buffer size.
|
||
|
(fhandler_socket::init_events): Ditto.
|
||
|
* fhandler_virtual.cc (fhandler_virtual::opendir): Check path length
|
||
|
against PATH_MAX instead of against CYG_MAX_PATH.
|
||
|
* registry.cc (get_registry_hive_path): Use PATH_MAX instead of
|
||
|
CYG_MAX_PATH for registry value path buffer size.
|
||
|
* shared.cc (open_shared): Use MAX_PATH instead of CYG_MAX_PATH
|
||
|
for shared memory name buffer size.
|
||
|
* thread.cc (semaphore::semaphore): Use MAX_PATH instead of CYG_MAX_PATH
|
||
|
for semaphore name buffer size.
|
||
|
* uinfo.cc (cygheap_user::env_userprofile): Use PATH_MAX instead of
|
||
|
CYG_MAX_PATH for temporary path name buffer size.
|
||
|
* winf.h (LINE_BUF_CHUNK): Define as MAX_PATH * 2.
|
||
|
* include/sys/dirent.h: Include sys/limits.h. Define name buffer sizes
|
||
|
using NAME_MAX.
|
||
|
|
||
|
2007-12-04 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_fifo.cc (fhandler_fifo::open): Use MAX_NAME for pipe name
|
||
|
buffer size.
|
||
|
(fhandler_fifo::fstatvfs): Use same technique as in fhandler_socket.
|
||
|
* fhandler_proc.cc (format_proc_partitions): Use NAME_MAX+1 for
|
||
|
device name buffer size. Use MAX_PATH for device path buffer size.
|
||
|
|
||
|
2007-12-03 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* autoload.cc (GetModuleFileNameExW): Replace definition of
|
||
|
GetModuleFileNameExA.
|
||
|
* fhandler_process.cc (format_process_maps): Change modname type to
|
||
|
WCHAR. Set buffer sizes to PATH_MAX. Call GetModuleFileNameExW
|
||
|
instead of GetModuleFileNameExA. Call mount_info::conv_to_posix_path
|
||
|
instead of cygwin_conv_to_full_posix_path. Set posix_modname to
|
||
|
modname if that call fails.
|
||
|
(format_process_stat): Set cmd buffer size to NAME_MAX + 1. Simplify
|
||
|
setting cmd to process name.
|
||
|
(format_process_status): Ditto.
|
||
|
* path.cc (mount_info::conv_to_posix_path): Call sys_wcstombs
|
||
|
correctly.
|
||
|
|
||
|
2007-12-03 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* include/cygwin/time.h: Remove redundant #endif.
|
||
|
|
||
|
2007-12-01 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* include/cygwin/time.h (daylight): Declare as extern symbol referring
|
||
|
_daylight variable.
|
||
|
(timezone): Only define if __timezonefunc__ is undefined.
|
||
|
|
||
|
2007-12-01 Corinna Vinschen <corinna@vinschen.de>
|
||
|
Brian Dessent <brian@dessent.net>
|
||
|
|
||
|
* Makefile.in (OBSOLETE_FUNCTIONS): Add timezone.
|
||
|
* include/cygwin/time.h: Drop conditional timezone definitions.
|
||
|
(timezone): Declare as extern symbol referring _timezone variable.
|
||
|
|
||
|
2007-11-28 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_tape.cc (mtinfo::initialize): Use MAX_PATH instead of
|
||
|
CYG_MAX_PATH.
|
||
|
* fhandler_tty.cc (fhandler_pty_master::ptsname): Set buffer size to
|
||
|
TTY_NAME_MAX.
|
||
|
* syscalls.cc (ttyname): Eliminate the `+ 1' from the name buffer size
|
||
|
since TTY_NAME_MAX already counts the trailing NUL.
|
||
|
* libc/bsdlib.cc (openpty): Set pts buffer size to TTY_NAME_MAX.
|
||
|
|
||
|
2007-11-28 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_socket.cc (fhandler_socket::recv_internal): Add MSG_WAITALL
|
||
|
handling. Use explicit flag values instead of MSG_WINMASK.
|
||
|
(fhandler_socket::send_internal): Use explicit flag values instead of
|
||
|
MSG_WINMASK.
|
||
|
* include/cygwin/socket.h (MSG_WINMASK): Remove definition.
|
||
|
(MSG_WAITALL): Define.
|
||
|
|
||
|
2007-11-27 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* posix_ipc.cc (ipc_names): Rename max_len to prefix_len. Store
|
||
|
the prefix len in it.
|
||
|
(check_path): Take length parameter. Use this length insetad of
|
||
|
calling strlen. Allow PATH_MAX length paths.
|
||
|
(ipc_mutex_init): Use MAX_PATH instead of CYG_MAX_PATH.
|
||
|
(ipc_cond_init): Ditto.
|
||
|
(shm_open): Allocate local name buffer not bigger than necessary. Call
|
||
|
check_path with additional length argument.
|
||
|
(shm_unlink): Ditto.
|
||
|
(mq_open): Ditto.
|
||
|
(mq_unlink): Ditto.
|
||
|
(sem_open): Ditto.
|
||
|
(sem_unlink): Ditto.
|
||
|
|
||
|
2007-11-27 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
Drop old SetResourceLock stuff in favor of mutos.
|
||
|
* dcrt0.cc (_reslock): Remove.
|
||
|
(__cygwin_user_data): Accommodate removal of resourcelocks member.
|
||
|
(dll_crt0_0): Don't initialize resourcelocks.
|
||
|
* exceptions.cc (_cygtls::signal_exit): Drop resourcelocks handling.
|
||
|
* mmap.cc (mmap_guard): New muto.
|
||
|
(LIST_LOCK): Define.
|
||
|
(LIST_UNLOCK): Define.
|
||
|
(mmap_list::search_record): Remove.
|
||
|
(mmap_list::try_map): Include code for anonymous case from
|
||
|
mmap_list::search_record.
|
||
|
(mmap_is_attached_or_noreserve): Access bookkeeping lists in a thread
|
||
|
safe way.
|
||
|
(mmap64): Replace SetResourceLock/ReleaseResourceLock by
|
||
|
LIST_LOCK/LIST_UNLOCK. Lock at the latest possible point.
|
||
|
(munmap): Replace SetResourceLock/ReleaseResourceLock by
|
||
|
LIST_LOCK/LIST_UNLOCK.
|
||
|
(msync): Ditto.
|
||
|
(mprotect): Ditto.
|
||
|
* thread.cc (ResourceLocks::Lock): Remove.
|
||
|
(SetResourceLock): Remove.
|
||
|
(ReleaseResourceLock): Remove.
|
||
|
(ResourceLocks::Init): Remove.
|
||
|
(ResourceLocks::Delete): Remove.
|
||
|
* thread.h (SetResourceLock): Drop declaration.
|
||
|
(ReleaseResourceLock): Ditto.
|
||
|
(class ResourceLocks): Drop definition.
|
||
|
* include/sys/cygwin.h (class ResourceLocks): Drop forward declaration.
|
||
|
(struct per_process): Replace resourcelocks with additional unused2
|
||
|
element.
|
||
|
(per_process_overwrite): Accommodate above change.
|
||
|
|
||
|
2007-11-27 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* mmap.cc: Convert usage of dynamically growing cmalloced arrays to
|
||
|
cmalloced linked lists throughout.
|
||
|
(class mmap_record): Add LIST_ENTRY element.
|
||
|
(mmap_record::match): New method, taking over match algorithm from
|
||
|
list::search_record.
|
||
|
(class mmap_list): Rename from class list. Add LIST_ENTRY. Convert
|
||
|
recs to a LIST_HEAD. Drop nrecs and maxrecs members.
|
||
|
(mmap_list::get_record): Drop entirely.
|
||
|
(mmap_list::free_recs): Drop entirely.
|
||
|
(mmap_list::del_record): Take mmap_record to delete as parameter.
|
||
|
(mmap_list::search_record): Convert to mmap_record::match.
|
||
|
(class mmap_areas): Rename from class map. Convert lists to LIST_HEAD.
|
||
|
(mmap_areas::get_list): Drop entirely.
|
||
|
(mmap_areas::del_list): Take mmap_list to delete as parameter.
|
||
|
(mprotect): Fix indentation.
|
||
|
|
||
|
2007-11-26 Christopher Faylor <me+cygwin@cgf.cx>
|
||
|
|
||
|
Change many cygheap allocation routines to their *_abort analogs.
|
||
|
* cygheap.cc (cmalloc_abort): New function.
|
||
|
(crealloc_abort): Ditto.
|
||
|
(ccalloc_abort): Ditto.
|
||
|
|
||
|
2007-11-23 Christopher Faylor <me+cygwin@cgf.cx>
|
||
|
|
||
|
* cygheap.cc (_crealloc): Avoid memcpy when _cmalloc returns NULL.
|
||
|
|
||
|
2007-11-08 Christopher Faylor <me+cygwin@cgf.cx>
|
||
|
|
||
|
* dllfixdbg: Eliminate extra objcopy step.
|
||
|
|
||
|
2007-11-07 Pedro Alves <pedro_alves@portugalmail.pt>
|
||
|
|
||
|
* dllfixdbg: Pass --only-keep-debug to objcopy, instead of
|
||
|
selecting the sections manually.
|
||
|
|
||
|
2007-11-06 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* thread.cc (pthread_key_create): Drop check for incoming valid object.
|
||
|
|
||
|
2007-11-06 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* shm.cc: Include sync.h
|
||
|
(struct shm_shmid_list): Add ref_count member.
|
||
|
(struct shm_attached_list): Remove hdl and size members. Add a parent
|
||
|
member pointing to referenced shm_shmid_list entry.
|
||
|
(shm_guard): New muto.
|
||
|
(SLIST_LOCK): Define.
|
||
|
(SLIST_UNLOCK): Define.
|
||
|
(fixup_shms_after_fork): Use hdl and size members of parent
|
||
|
shm_shmid_list entry.
|
||
|
(shmat): Access sequential bookkeeping lists in a thread safe way.
|
||
|
Accommodate change in list element layout. Align comments.
|
||
|
(shmctl): Ditto.
|
||
|
(shmdt): Ditto.
|
||
|
(shmget): Ditto.
|
||
|
|
||
|
2007-11-05 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* shm.cc (shmctl): On IPC_RMID don't unmap views and don't close handle
|
||
|
if the map is still referenced to emulate Linux and BSD behaviour.
|
||
|
|
||
|
2007-11-05 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* shm.cc (shmctl): On IPC_RMID also unmap all views on shared mem
|
||
|
as well as connected shm_attached_list entry.
|
||
|
|
||
|
2007-10-31 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* net.cc (load_ipv6_funcs): Use MAX_PATH instead of CYG_MAX_PATH.
|
||
|
(cygwin_getaddrinfo): Simplify formatting.
|
||
|
(cygwin_getnameinfo): Ditto.
|
||
|
|
||
|
2007-10-31 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* external.cc (get_cygdrive_info): Make inline.
|
||
|
(get_cygdrive_prefixes): Remove.
|
||
|
(cygwin_internal): Call get_cygdrive_info with NULL flag parameters
|
||
|
instead of get_cygdrive_prefixes.
|
||
|
* path.cc (mount_info::get_cygdrive_info): Allow NULL flag parameters.
|
||
|
|
||
|
2007-10-30 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_disk_file.cc (fhandler_base::fstat_helper): Don't remove
|
||
|
write bits for directories with R/O attribute.
|
||
|
(fhandler_base::fhaccess): Don't shortcircuit R/O attribute with W_OK
|
||
|
scenarios for directories.
|
||
|
|
||
|
2007-10-22 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* cygheap.h (struct cwdstuff): Drop hash member. Drop get_hash,
|
||
|
get_initial, and fixup_after_exec declarations.
|
||
|
Convert win32 to UNICODE_STRING.
|
||
|
(cwdstuff::get_drive): Convert win32 path in current codepage.
|
||
|
(cwdstuff::set): Take native NT path.
|
||
|
* ntdll.h (struct _TEB): Typedef.
|
||
|
* path.cc (mount_info::conv_to_posix_path): Add variant taking
|
||
|
wide char DOS paths.
|
||
|
(symlink_info::posixify): Simplify concatenating cwd and relative path.
|
||
|
(hash_path_name): Drop special relative path handling.
|
||
|
(chdir): Drop special "drive only" handling. Call cwdstuff::set with
|
||
|
native path.
|
||
|
(cwdstuff::get_hash): Remove.
|
||
|
(windows_system_directory): Remove.
|
||
|
(_upp): Remove.
|
||
|
(get_user_proc_parms): Make inline. Get PEB pointer by calling
|
||
|
NtCurrentTeb.
|
||
|
(cwdstuff::init): Simplify.
|
||
|
(cwdstuff::set): Rework to handle incoming native NT path. Workaround
|
||
|
a Vista problem with CWD handle in the user process parameter block.
|
||
|
(cwdstuff::get): Simplify locking. Accommodate type change of win32.
|
||
|
* shared_info.h (mount_info): Add declaration for new conv_to_posix_path
|
||
|
method.
|
||
|
* strfuncs.cc (sys_wcstombs): Return correct length of created
|
||
|
multi-byte string.
|
||
|
|
||
|
2007-10-19 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_disk_file.cc (__DIR_mounts::eval_ino): Make fname big enough
|
||
|
to allow multibyte chars.
|
||
|
|
||
|
2007-10-18 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler.cc (fhandler_base::open): Open native symlinks with
|
||
|
FILE_OPEN_REPARSE_POINT flag. Fix typo in comment.
|
||
|
|
||
|
2007-10-18 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* include/sys/param.h (MAXPATHLEN): Define as PATH_MAX.
|
||
|
|
||
|
2007-10-14 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler.cc (is_at_eof): Rewrite using NT functions.
|
||
|
(off_current): New static variable.
|
||
|
(off_append): Ditto.
|
||
|
(fhandler_base::raw_write): Use NtWriteFile. Accommodate O_APPEND here.
|
||
|
(fhandler_base::write): Drop O_APPEND hack. Use NT functions.
|
||
|
(fhandler_base::lseek): Rewrite using NT functions.
|
||
|
* fhandler_disk_file.cc (fhandler_disk_file::fstatvfs): Add space in
|
||
|
debug output.
|
||
|
(fhandler_disk_file::ftruncate): Ditto.
|
||
|
* ntdll.h (STATUS_DISK_FULL): Define.
|
||
|
(FILE_USE_FILE_POINTER_POSITION): Define.
|
||
|
(FILE_WRITE_TO_END_OF_FILE): Define.
|
||
|
|
||
|
2007-10-13 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* ntdll.h (STATUS_END_OF_FILE): Define.
|
||
|
* path.cc (symlink_info::check_shortcut): Use NT function to get file
|
||
|
size. Reintroduce checking file size before reading it. Eliminiate
|
||
|
close_it label.
|
||
|
(symlink_info::check_sysfile): Check for EOF condition.
|
||
|
|
||
|
2007-10-11 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* path.cc (basename): Return pointer into the path argument itself.
|
||
|
Shrink buf to 4 bytes. Use buf only for border cases.
|
||
|
(dirname): Ditto.
|
||
|
|
||
|
2007-10-10 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* path.cc (struct symlink_info): Change size of contents member to
|
||
|
be able to keep SYMLINK_MAX sized strings.
|
||
|
(symlink_worker): Rework for long path names. When writing windows
|
||
|
shortcuts, store pathname additionally "hidden" after the actual
|
||
|
shortcut data to workaround size limitations of the description field.
|
||
|
(symlink_info::check_shortcut): Drop file name parameter. Drop max
|
||
|
file size check. Use NT functions. Use appended full path if
|
||
|
available, description otherwise. Check symlink string length for
|
||
|
not exceeding SYMLINK_MAX. Don't close file here.
|
||
|
(symlink_info::check_sysfile): Drop file name parameter. Use NT
|
||
|
functions. Check symlink string length for not exceeding SYMLINK_MAX.
|
||
|
Don't close file here.
|
||
|
(symlink_info::check_reparse_point): Drop file name parameter. Drop
|
||
|
useless length checks. Allow SYMLINK_MAX length symlink strings.
|
||
|
Don't close file here.
|
||
|
(symlink_info::posixify): Allow SYMLINK_MAX length symlink strings.
|
||
|
(symlink_info::check): Turn around checking for symlink file attributes.
|
||
|
Use NT functions. Close symlink file here.
|
||
|
* include/limits.h (PATH_MAX): Define as 32760. Change comment.
|
||
|
(SYMLINK_MAX): Define as PATH_MAX - 1.
|
||
|
|
||
|
2007-10-10 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_socket.cc (fhandler_socket::bind): Open file for deletion,
|
||
|
too. Don't write to file and especially don't close handle if file
|
||
|
couldn't be created. Set delete disposition if writing failed,
|
||
|
instead of calling unlink_nt.
|
||
|
|
||
|
2007-09-27 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* ntdll.h (struct _FILE_COMPRESSION_INFORMATION): Align with definition
|
||
|
in w32api / MSDN.
|
||
|
* fhandler_disk_file.cc (fhandler_base::fstat_helper): Accommodate
|
||
|
change to struct _FILE_COMPRESSION_INFORMATION.
|
||
|
|
||
|
2007-09-26 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* termios.cc (setspeed): Support new baud rates introduced 2007-02-05.
|
||
|
|
||
|
2007-09-20 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* ntdll.h (STATUS_OBJECT_NAME_INVALID): Define.
|
||
|
|
||
|
2007-09-18 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* mmap.cc (fh_disk_file): Delete as global static variable and...
|
||
|
(mmap64): ...define as local pointer to make mmap thread-safe.
|
||
|
Accommodate throughout. Only initialize fh_disk_file after file could
|
||
|
be opened with GENERIC_EXECUTE access. Call fstat_by_handle instead of
|
||
|
fstat to avoid overhead.
|
||
|
|
||
|
2007-09-18 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* security.cc (set_file_sd): Open file with FILE_OPEN_FOR_BACKUP_INTENT
|
||
|
too.
|
||
|
|
||
|
2007-09-17 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* path.cc (symlink_info::check): Check for STATUS_OBJECT_NAME_INVALID.
|
||
|
Add comment.
|
||
|
|
||
|
2007-09-17 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler.cc (fhandler_base::open): Partly revert change from
|
||
|
2007-08-24: Call has_acls to avoid permission problems getting
|
||
|
a handle to a file on a remote share. Add comment.
|
||
|
|
||
|
2007-09-08 Brian Dessent <brian@dessent.net>
|
||
|
|
||
|
* include/cygwin/config.h: Conditionalize inline __getreent()
|
||
|
definition on _COMPILING_NEWLIB.
|
||
|
|
||
|
2007-09-06 Brian Dessent <brian@dessent.net>
|
||
|
|
||
|
* include/cygwin/config.h (__getreent): Define inline version.
|
||
|
|
||
|
2007-09-06 Brian Dessent <brian@dessent.net>
|
||
|
|
||
|
* include/sys/stdio.h (_flockfile): Don't try to lock a FILE
|
||
|
that has the __SSTR flag set.
|
||
|
(_ftrylockfile): Likewise.
|
||
|
(_funlockfile): Likewise.
|
||
|
|
||
|
2007-08-24 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* syscalls.cc (open): Don't follow symlinks if O_EXCL is given.
|
||
|
|
||
|
2007-08-23 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* ntdll.h (STATUS_NO_SUCH_FILE): Define.
|
||
|
* path.cc (get_nt_native_path): Reset upath.Length to 0 on each
|
||
|
invocation.
|
||
|
(symlink_info::check): Use NT native functions.
|
||
|
|
||
|
2007-08-21 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* uinfo.cc (pwdgrp::load): Use NT native functions.
|
||
|
|
||
|
2007-08-21 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_disk_file.cc (fhandler_base::fstat_helper): Rewrite checking
|
||
|
for executable file magic using a thread safe method and re-enable this
|
||
|
code.
|
||
|
|
||
|
2007-08-21 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* syscalls.cc (unlink_nt): Drop one local FILE_BASIC_INFORMATION struct.
|
||
|
|
||
|
2007-08-21 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* ntdll.h (NtNotifyChangeDirectoryFile): Declare.
|
||
|
(NtQueryAttributesFile): Move to maintain alphabetical order of
|
||
|
declarations. Add comment to note that timestamp information returned
|
||
|
by NtQueryAttributesFile is unreliable.
|
||
|
* path.h (etc::changed_h): Move here.
|
||
|
(etc::fn): Change type to OBJECT_ATTRIBUTES.
|
||
|
(etc::last_modified): Change type to LARGE_INTEGER.
|
||
|
(etc::init): Take PUNICODE_STRING as second argument.
|
||
|
* path.cc: Accomodate above changes.
|
||
|
(etc::test_file_change): Use NT native functions.
|
||
|
(etc::dir_changed): Ditto.
|
||
|
* uinfo.cc (pwdgrp::load): Call etc::init with NT native path.
|
||
|
|
||
|
2007-08-21 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_disk_file.cc: Change debugging output througout to print
|
||
|
the NT status consistently. Use UNICODE path information if available.
|
||
|
|
||
|
2007-08-20 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* hookapi.cc (ld_preload): Call LoadLibraryW.
|
||
|
* path.h (path_conv::get_wide_win32_path_len): Define.
|
||
|
|
||
|
2007-08-20 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler.cc (rootdir): Delete.
|
||
|
* winsup.h (rootdir): Drop declaration.
|
||
|
|
||
|
2007-08-19 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* path.cc (fillout_mntent): Append backslash to drive-only paths before
|
||
|
calling fs_info::update.
|
||
|
* path.h (fs_info::clear): Simplify.
|
||
|
(fs_info::fs_info): Add constructor.
|
||
|
|
||
|
2007-08-17 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* spawn.cc (spawn_guts): Fix typo in comment.
|
||
|
|
||
|
2007-08-17 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* autoload.cc (CloseDesktop): Define.
|
||
|
(CreateDesktopA): Define.
|
||
|
(SetThreadDesktop): Define.
|
||
|
* spawn.cc (spawn_guts): When starting a process under another user
|
||
|
account, don't open up permissions on current window station and
|
||
|
desktop. Instead, if not in interactive session, create a new per-user
|
||
|
window station plus default desktop and use that for the child process.
|
||
|
|
||
|
2007-08-16 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_disk_file.cc (fhandler_disk_file::fchmod): Handle S_IFSOCK
|
||
|
mode bit by setting the SYSTEM attribute.
|
||
|
* fhandler_socket.cc (fhandler_socket::fchmod): Add S_IFSOCK mode bit
|
||
|
when calling fhandler_disk_file::fchmod. Don't set attributes here.
|
||
|
|
||
|
2007-08-16 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* path.h (path_conv::operator char *): Delete.
|
||
|
(path_conv::operator const char *): Delete.
|
||
|
* dlfcn.cc: Throughout, replace path_conv::operator char * and
|
||
|
path_conv::operator const char * by call to path_conv::get_win32
|
||
|
for easier transition to UNICODE_PATHs.
|
||
|
* fhandler_socket.cc: Ditto.
|
||
|
* hookapi.cc: Ditto.
|
||
|
* path.cc: Ditto.
|
||
|
* spawn.cc: Ditto.
|
||
|
* syscalls.cc: Ditto.
|
||
|
* uinfo.cc: Ditto.
|
||
|
|
||
|
2007-08-16 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* dir.cc (readdir_worker): Convert w32name to PUNICODE_STRING.
|
||
|
* sec_acl.cc (getacl): Convert debug output to print native NT path.
|
||
|
* security.cc (set_file_attribute): Ditto.
|
||
|
* syscalls.cc (try_to_bin): Ditto and fix buggy debug statement.
|
||
|
|
||
|
2007-08-16 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* ntdll.h (RtlAcquirePebLock): Declare.
|
||
|
(RtlReleasePebLock): Declare.
|
||
|
* path.cc (cwdstuff::set): Change PEB only while it's locked.
|
||
|
|
||
|
2007-08-16 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler.h (fhandler_base::get_namehash): Use NT native path.
|
||
|
* fhandler_disk_file.cc (readdir_get_ino): Ditto in call to
|
||
|
hash_path_name.
|
||
|
|
||
|
2007-08-16 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* ntdll.h (RtlCreateUnicodeStringFromAsciiz): Fix declaration.
|
||
|
(RtlUpcaseUnicodeChar): Declare.
|
||
|
* path.cc (hash_path_name): Split into three functions, taking
|
||
|
the path as char *, PWCSTR, or PUNICODE_STRING. Move implementation
|
||
|
into PUNICODE_STRING-based function. Drop old drive-relative path
|
||
|
consideration.
|
||
|
* winsup.h (iswdirsep): Like isdirsep but for WCHARs.
|
||
|
(isabspath_u): Like isabspath, for PUNICODE_STRINGs.
|
||
|
(iswabspath): Like isabspath, for PWCHARs.
|
||
|
(hash_path_name): Add new declarations.
|
||
|
|
||
|
2007-08-15 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* path.cc (get_nt_native_path): Allow to convert special paths which
|
||
|
have no native NT path representation for simplified debug output.
|
||
|
* syscalls.cc: Convert debug output to print native NT path.
|
||
|
(unlink): Drop redundant debug output.
|
||
|
|
||
|
2007-08-15 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_disk_file.cc (fhandler_disk_file::link): Drop superfluous
|
||
|
test for trailing dot.
|
||
|
* path.h (path_conv::operator []): Remove.
|
||
|
|
||
|
2007-08-15 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_socket.cc (get_inet_addr): Use NT native functions for
|
||
|
accessing the file representing the local socket.
|
||
|
(fhandler_socket::bind): Ditto.
|
||
|
* ntdll.h: Declare NtReadFile.
|
||
|
|
||
|
2007-08-14 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* path.cc (symlink_info::check): In case of ERROR_SHARING_VIOLATION and
|
||
|
ERROR_ACCESS_DENIED, try to get file attributes by using directory
|
||
|
functions.
|
||
|
|
||
|
2007-08-14 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* path.cc (fs_info::update): Correctly handle the volume root directory.
|
||
|
|
||
|
2007-08-14 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler.h (fhandler_base::pc): Make public.
|
||
|
* fhandler_disk_file.cc (fhandler_disk_file::link): Drop extern
|
||
|
declaration of stat_suffixes. Use NT native path in debug output.
|
||
|
(fhandler_base::utimes_fs): Simplify closeit case. Use close_fs
|
||
|
to close newly opened file handle.
|
||
|
(fhandler_base::open_fs): Use NT native path in debug output.
|
||
|
* path.cc: Throughout drop extern declaration of stat_suffixes.
|
||
|
* path.h (stat_suffixes): Declare.
|
||
|
* sec_acl.cc (acl_worker): Drop extern declaration of stat_suffixes.
|
||
|
* times.cc (utimes_worker): Take path_conv as parameter instead of
|
||
|
single-byte pathnam, drop nofollow argument, accommodate throughout.
|
||
|
Compare UNICODE paths when enumerating file descriptors. Fix
|
||
|
formatting. Use NT native path in debug output.
|
||
|
|
||
|
2007-08-13 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* mmap.cc: Call NtClose instead of CloseHandle throughout.
|
||
|
(CreateMapping): Drop unused last argument. Accommodate throughout.
|
||
|
(mmap64): Re-open file with execute permissions using NtOpenFile.
|
||
|
|
||
|
2007-08-13 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler.h (fhandler_base::close_fs): Reintroduce (as inline function)
|
||
|
for clearness.
|
||
|
* fhandler_disk_file.cc (fhandler_base::fstat_fs): Revert previous
|
||
|
change.
|
||
|
(fhandler_base::open_fs): Ditto.
|
||
|
* fhandler_socket.cc (fhandler_socket::close): Ditto.
|
||
|
|
||
|
2007-08-13 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* Makefile.in (DLL_OFILES): Remove delqueue.o.
|
||
|
* delqueue.cc: Delete.
|
||
|
* fhandler.h (fhandler_base::close_fs): Drop declaration.
|
||
|
(fhandler_disk_file::close): Drop declaration.
|
||
|
* fhandler_disk_file.cc (fhandler_base::fstat_fs): Call close instead of
|
||
|
close_fs.
|
||
|
(fhandler_base::fstat_helper): Use open FH_UNIX handle in call to
|
||
|
get_file_attribute.
|
||
|
(fhandler_base::open_fs): Call close instead of get_file_attribute.
|
||
|
(fhandler_disk_file::close): Remove.
|
||
|
(fhandler_base::close_fs): Remove.
|
||
|
* fhandler_socket.cc (fhandler_socket::close): Just call
|
||
|
fhandler_base::close for FH_UNIX sockets.
|
||
|
* shared.cc (user_shared_initialize): Drop call to
|
||
|
user_shared->delqueue.init.
|
||
|
* shared_info.h (CURR_USER_MAGIC): Change according to below change.
|
||
|
(MAX_DELQUEUES_PENDING): Remove.
|
||
|
(class delqueue_list): Remove.
|
||
|
(class user_info): Remove delqueue.
|
||
|
* syscalls.cc (close_all_files): Drop call to
|
||
|
user_shared->delqueue.process_queue.
|
||
|
(unlink): Drop delqueue handling.
|
||
|
|
||
|
2007-08-13 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* devices.in (dev_storage): Use native NT device name for kmsg mailslot.
|
||
|
* devices.cc: Regenerate.
|
||
|
* fhandler.cc (fhandler_base::operator =): Use path_conv assignment
|
||
|
operator.
|
||
|
(fhandler_base::set_name): Ditto.
|
||
|
(fhandler_base::open): Use NT native path in debug output.
|
||
|
* fhandler_mailslot.cc: Convert to NT native function calls.
|
||
|
* ntdll.h (struct _FILE_MAILSLOT_SET_INFORMATION): Define.
|
||
|
(NtCreateMailslotFile): Declare.
|
||
|
* path.cc (path_conv::set_normalized_path): Don't set wide_path to NULL.
|
||
|
(path_conv::set_name): Remove unused function.
|
||
|
* path.h (path_conv::set_name): Drop declaration.
|
||
|
(path_conv::operator =): Define.
|
||
|
|
||
|
2007-08-12 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler.cc (fhandler_base::open): Remove HIDDEN_DOT_FILES code.
|
||
|
* fhandler_disk_file.cc (fhandler_disk_file::mkdir): Ditto.
|
||
|
* path.cc (symlink_worker): Ditto.
|
||
|
|
||
|
2007-08-12 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* syscalls.cc (getw): Remove redundant implementation.
|
||
|
(putw): Ditto.
|
||
|
(wcscmp): Ditto.
|
||
|
(wcslen): Ditto.
|
||
|
(memccpy): Ditto.
|
||
|
|
||
|
2007-08-12 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* ntdll.h: Add descriptive comments to special Rtl functions.
|
||
|
(STATUS_OBJECT_PATH_NOT_FOUND): Define.
|
||
|
(STATUS_BUFFER_OVERFLOW): Define.
|
||
|
(FILE_SUPERSEDED): Define.
|
||
|
(FILE_OPENED): Define.
|
||
|
(FILE_CREATED): Define.
|
||
|
(FILE_OVERWRITTEN): Define.
|
||
|
(FILE_EXISTS): Define.
|
||
|
(FILE_DOES_NOT_EXIST): Define.
|
||
|
(PIO_APC_ROUTINE): Typedef.
|
||
|
(NtFsControlFile): Fix parameter types to use PIO_APC_ROUTINE.
|
||
|
(NtWriteFile): Declare.
|
||
|
(RtlInt64ToHexUnicodeString): Declare.
|
||
|
* strfuncs.cc: Include ntdll.h.
|
||
|
(RtlInt64ToHexUnicodeString): New function.
|
||
|
* syscalls.cc (try_to_bin): Rewrite using native NT functions.
|
||
|
Only try to create recycle bin after unsuccessfully trying to move
|
||
|
file. Also try to create special files in recycle bin so that Windows
|
||
|
Explorer isn't unnecessarily stampeded.
|
||
|
|
||
|
2007-08-10 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* path.cc (fillout_mntent): Fix calculation of unicode buffer size.
|
||
|
|
||
|
2007-08-10 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* syscalls.cc (rename): Check oldpath and newpath for trailing dir
|
||
|
separators, require them to be existing directories if so. Check
|
||
|
for a request to change only the case of the filename. Check paths
|
||
|
for case insensitve equality only once. Handle renaming a directory
|
||
|
to another, existing directory by unlinking the destination directory
|
||
|
first. If newpath points to an existing file with R/O attribute set,
|
||
|
try to unset R/O attribute first. Augment hardlink test by not
|
||
|
checking directories. If renaming fails with STATUS_ACCESS_DENIED,
|
||
|
try to unlink existing destination filename and try renaming again.
|
||
|
Drop useless test for non-empty directory. Always close fh at the
|
||
|
end of the function.
|
||
|
|
||
|
2007-08-09 Ernie Coskrey <Ernie.Coskrey@steeleye.com>
|
||
|
|
||
|
* gendef (sigbe): Reset "incyg" while the stack lock is active to avoid
|
||
|
a potential race.
|
||
|
|
||
|
2007-08-09 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* syscalls.cc (rename): Close oldpath file handle immediately after
|
||
|
trying to rename it. Use nfh handle when checking for non-empty
|
||
|
newpath directory. Only change status if check_dir_not_empty really
|
||
|
returns STATUS_DIRECTORY_NOT_EMPTY.
|
||
|
|
||
|
2007-08-02 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_disk_file.cc (readdir_get_ino): Accommodate native symlinks.
|
||
|
* syscalls.cc (rename): Ditto.
|
||
|
|
||
|
2007-08-02 Christopher Faylor <me+cygwin@cgf.cx>
|
||
|
|
||
|
* lib/Makefile: Add missed file to accommodate below changes.
|
||
|
|
||
|
2007-08-02 Christopher Faylor <me+cygwin@cgf.cx>
|
||
|
|
||
|
* lib/cygwin_attach_dll.c: Fix compiler warning.
|
||
|
* lib/cygwin_crt0.c: Ditto.
|
||
|
|
||
|
2007-08-02 Christopher Faylor <me+cygwin@cgf.cx>
|
||
|
|
||
|
* dcrt0.cc (codepage_type): Remove definition.
|
||
|
* strfuncs.cc: Move it here. New file with bits of miscfuncs.cc.
|
||
|
* miscfuncs.cc: Remove wide character stuff.
|
||
|
|
||
|
2007-08-02 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* syscalls.cc (rename): Move and add text to comment about testing
|
||
|
oldpath and newpath referring to the same file. Test if oldpath
|
||
|
has more than one hardlink before opening oldpath (idea by Eric Blake).
|
||
|
Reorder test so that file id is tested before volume serial number.
|
||
|
|
||
|
2007-08-02 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* path.h (struct fs_info): Drop root_len and name_hash members.
|
||
|
(fsinfo::length): Remove.
|
||
|
(path_conv::rootdir): Remove.
|
||
|
* syscalls.cc (try_to_bin): Use rootdir function instead of
|
||
|
path_conv::rootdir method.
|
||
|
|
||
|
2007-08-02 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_disk_file.cc (path_conv::ndisk_links): Fix typo in call to
|
||
|
NtClose.
|
||
|
|
||
|
2007-08-01 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* syscalls.cc (rename): Check if oldpath and newpath refer to the
|
||
|
same file. If so, return successfully and perform no other action,
|
||
|
as per SUSv3.
|
||
|
|
||
|
2007-08-01 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* ntdll.h (STATUS_ACCESS_DENIED): Define.
|
||
|
* syscalls.cc (check_dir_not_empty): New static function.
|
||
|
(unlink_nt): Move code checking for non-empty dir to check_dir_not_empty
|
||
|
and call check_dir_not_empty instead.
|
||
|
(rename): Add fault handler. Check oldpath and newpath for trailing
|
||
|
. and .. path components and return EINVAL if so. Check oldpath
|
||
|
for being on a vrtual file system. If renaming a dir fails with
|
||
|
STATUS_ACCESS_DENIED, check if the target dir is non-empty and return
|
||
|
ENOTEMPTY if so.
|
||
|
|
||
|
2007-08-01 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* localtime.cc (tzsetwall): Don't set TZ.
|
||
|
|
||
|
2007-08-01 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Drop
|
||
|
usage of path_conv::volser().
|
||
|
(fhandler_base::fstat_by_name): Ditto.
|
||
|
* ntdll.h (STATUS_NO_MEDIA_IN_DEVICE): Define.
|
||
|
(STATUS_OBJECT_NAME_NOT_FOUND): Define.
|
||
|
(FILE_REMOVABLE_MEDIA, FILE_READ_ONLY_DEVICE, FILE_FLOPPY_DISKETTE)
|
||
|
(FILE_WRITE_ONCE_MEDIA, FILE_REMOTE_DEVICE, FILE_DEVICE_IS_MOUNTED)
|
||
|
(FILE_VIRTUAL_VOLUME, FILE_AUTOGENERATED_DEVICE_NAME)
|
||
|
FILE_DEVICE_SECURE_OPEN): Define Device Characteristics.
|
||
|
(struct _FILE_FS_DEVICE_INFORMATION): Define.
|
||
|
* path.cc (MAX_FS_INFO_CNT): Remove.
|
||
|
(fsinfo): Remove.
|
||
|
(fsinfo_cnt): Remove.
|
||
|
(fs_info::update): Rewrite using native NT functions. Drop fs_info
|
||
|
cashing since it's incorrect.
|
||
|
(path_conv::fillin): Use NtQueryInformationFile. Drop setting serial
|
||
|
number.
|
||
|
(path_conv::check): Accommodate new fs_info::update parameters.
|
||
|
(fillout_mntent): Ditto.
|
||
|
* path.h (fs_info): Drop serial, has_ea and drive_type status
|
||
|
flags.
|
||
|
(fs_info::update): Declare with new parameters.
|
||
|
(path_conf::drive_type): Remove.
|
||
|
(path_conf::fs_has_ea): Remove.
|
||
|
(path_conf::volser): Remove.
|
||
|
|
||
|
2007-08-01 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler.cc (check_posix_perms): Remove.
|
||
|
(fhandler_base::fpathconf): Return value of pc.has_acls () instead
|
||
|
of calling check_posix_perms.
|
||
|
|
||
|
2007-08-01 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* syscalls.cc (rename): Use unchanged path_conv in condition.
|
||
|
|
||
|
2007-08-01 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* smallprint.cc (__small_vsprintf): Add format specifier 'W' for
|
||
|
PWCHAR arguments. Move wide char handling after char handling.
|
||
|
|
||
|
2007-07-31 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* ntdll.h (RtlFreeAnsiString): Declare.
|
||
|
* ntdll.h (RtlFreeOemString): Declare.
|
||
|
* ntdll.h (RtlUnicodeStringToAnsiString): Declare.
|
||
|
* ntdll.h (RtlUnicodeStringToOemString): Declare.
|
||
|
* smallprint.cc: Renamed from smallprint.c. Drop unnecessary
|
||
|
forward declarations.
|
||
|
(__small_vsprintf): Add format specifiers 'C' for WCHAR arguments
|
||
|
and 'S' for PUNICODE_STRING arguments.
|
||
|
|
||
|
2007-07-31 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_disk_file.cc (fhandler_disk_file::link): Revert to checking
|
||
|
for binary in case of .exe files.
|
||
|
* ntdll.h (RtlPrefixUnicodeString): Declare.
|
||
|
* path.cc (path_conv::is_binary): New method.
|
||
|
* path.h (path_conv::is_binary): Declare.
|
||
|
* syscalls.cc (rename_append_suffix): New static helper function for
|
||
|
rename.
|
||
|
(rename): Rewrite. New suffix tests. Use native NT functions.
|
||
|
|
||
|
2007-07-30 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_disk_file.cc (fhandler_disk_file::facl): If file can't be
|
||
|
opened for reading the ACLs, fall back to faking them.
|
||
|
* sec_acl.cc (acl_worker): Handle non-existing files.
|
||
|
* security.cc (get_file_attribute): Return ILLEGAL_UID/ILLEGAL_GID
|
||
|
as owner/group for non-readable ACLs on file systems supporting them.
|
||
|
|
||
|
2007-07-30 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* syscalls.cc (stat_worker): Don't call build_fh_pc with invalid pc.
|
||
|
|
||
|
2007-07-29 Christopher Faylor <me+cygwin@cgf.cx>
|
||
|
|
||
|
* fhandler.cc (fhandler_base::wait_overlapped): Handle read EOF better
|
||
|
and issue a SIGPIPE when we get ERROR_NO_DATA.
|
||
|
|
||
|
2007-07-29 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_disk_file.cc (fhandler_disk_file::fchmod): Don't allow
|
||
|
FileAttributes set to 0 when calling NtSetInformationFile since it has
|
||
|
a special meaning.
|
||
|
(fhandler_disk_file::facl): Ditto.
|
||
|
(fhandler_disk_file::link): Only set attributes after copying files.
|
||
|
Use SetFileAttributesW.
|
||
|
* syscalls.cc (unlink_nt): Only care for actual FILE_ATTRIBUTE_READONLY.
|
||
|
Don't allow FileAttributes set to 0 when calling NtSetInformationFile.
|
||
|
After marking for deletion, restore R/O attribute on files to
|
||
|
accommodate hardlinks.
|
||
|
|
||
|
2007-07-29 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_disk_file.cc (fhandler_disk_file::link): Use FILE_ANY_ACCESS.
|
||
|
(fhandler_base::utimes_fs): Fix white space.
|
||
|
(fhandler_disk_file::lock): Remove 9x blurb from comment.
|
||
|
(fhandler_disk_file::mkdir): Use NtCreateFile/NtClose instead of
|
||
|
CreateDirectoryA.
|
||
|
(fhandler_disk_file::rmdir): Accommodate changes to unlink_nt.
|
||
|
Simplify post-delete SMB-related tests. Use NtQueryAttributesFile
|
||
|
instead of GetFileAttributes.
|
||
|
* ntdll.h (STATUS_DIRECTORY_NOT_EMPTY): Define.
|
||
|
(NtQueryAttributesFile): Declare.
|
||
|
* syscalls.cc (unlink_nt): Return NTSTATUS. Drop setattrs parameter.
|
||
|
Never use FILE_DELETE_ON_CLOSE, always use
|
||
|
NtSetInformationFile(FileDispositionInformation) instead.
|
||
|
Check for R/O attributes and open file with FILE_WRITE_ATTRIBUTES
|
||
|
access if any of them are set. Remove R/O attributes before
|
||
|
marking for delete if necessary. Revert them afterwards if necessary.
|
||
|
(unlink): Accommodate changes to unlink_nt.
|
||
|
|
||
|
2007-07-29 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_disk_file.cc: Use get_handle throughout.
|
||
|
(fhandler_disk_file::fchmod): Always try to open file with required
|
||
|
access rights. Use NtSetInformationFile instead of SetFileAttributes.
|
||
|
(fhandler_disk_file::facl): Use NtSetInformationFile instead of
|
||
|
SetFileAttributes.
|
||
|
(fhandler_base::utimes_fs): Change lastaccess and lastwrite to
|
||
|
LARGE_INTEGER. Drop 9x directory case. Use NtSetInformationFile
|
||
|
instead of SetFileAttributes. Drop temporarily changing R/O attribute
|
||
|
since NtSetInformationFile(FileBasicInformation) also works on R/O
|
||
|
files.
|
||
|
* ntdll.h (STATUS_NOT_SUPPORTED): Define.
|
||
|
|
||
|
2007-07-29 Christopher Faylor <me+cygwin@cgf.cx>
|
||
|
|
||
|
* cygtls.h (_cygtls::inside_kernel): Move function declaration into
|
||
|
_cygtls class.
|
||
|
* exceptions.cc (_cygtls::inside_kernel): Move function definition into
|
||
|
_cygtls class.
|
||
|
|
||
|
* fhandler.cc (fhandler_base::wait_overlapped): Make return tri-state
|
||
|
to detect when there is a EINTR situation. Add a pointer to a length
|
||
|
parameter. Move GetOverlappedResult into this function.
|
||
|
(fhandler_base::read_overlapped): Accommodate above changes and loop if
|
||
|
we receive a restartable signal.
|
||
|
(fhandler_base::write_overlapped): Ditto.
|
||
|
* fhandler.h (fhandler_base::wait_overlapped): Reflect above changes.
|
||
|
* fhandler_fifo.cc (fhandler_fifo::wait): Ditto.
|
||
|
|
||
|
2007-07-28 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* ntdll.h (RtlEqualUnicodePathPrefix): Rename from RtlEqualPathPrefix.
|
||
|
(RtlEqualUnicodePathSuffix): Rename from RtlEqualPathSuffix.
|
||
|
* fhandler_disk_file.cc (fhandler_disk_file::link): Accommodate above
|
||
|
change.
|
||
|
|
||
|
2007-07-28 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* ntdll.h (RtlInitCountedUnicodeString): Swap order of string and length
|
||
|
parameters to be the same as for RtlInitEmptyUnicodeString.
|
||
|
(RtlEqualPathPrefix): New inline function.
|
||
|
(RtlEqualPathSuffix): New inline function.
|
||
|
* fhandler_disk_file.cc: Accommodate parameter order change of
|
||
|
RtlInitEmptyUnicodeString throughout.
|
||
|
(fhandler_disk_file::link): Do path checking in unicode. Call
|
||
|
CopyFileW instead of CopyFileA.
|
||
|
|
||
|
2007-07-27 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* autoload.cc (CreateHardLinkA): Remove.
|
||
|
* fhandler_disk_file.cc (fhandler_disk_file::link): Drop GetBinaryType
|
||
|
test. Just check exe suffix instead. Tune creating new file name.
|
||
|
Implement creating hard link using native NT functions which works
|
||
|
on all platforms.
|
||
|
* ntdll.h (STATUS_INVALID_DEVICE_REQUEST): Define.
|
||
|
(struct _FILE_LINK_INFORMATION): Define.
|
||
|
|
||
|
2007-07-27 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_disk_file.cc (fhandler_disk_file::ftruncate): Use
|
||
|
NtQueryInformationFile instead of GetFileSize, NtFsControlFile instead
|
||
|
of DeviceIoControl.
|
||
|
|
||
|
2007-07-27 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_disk_file.cc (fhandler_base::fstat_by_name): Use
|
||
|
RtlSplitUnicodePath.
|
||
|
(fhandler_disk_file::fstat): Rename oret to opened. Open file using NT
|
||
|
functions right here. Try to open parent dir instead of root directory
|
||
|
to avoid call to rootdir. Use NtFsControlFile.
|
||
|
* ntdll.h (RtlSplitUnicodePath): Define.
|
||
|
|
||
|
2007-07-27 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_disk_file.cc (is_volume_mountpoint): New static inline
|
||
|
function.
|
||
|
(path_conv::ndisk_links): Call is_volume_mountpoint.
|
||
|
(fhandler_disk_file::readdir_helper): Ditto.
|
||
|
|
||
|
2007-07-27 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler.h (enum query_state): Drop redundant query_stat_control.
|
||
|
* fhandler.cc (fhandler_base::open): Ditto. Add READ_CONTROL to
|
||
|
access and FILE_OPEN_FOR_BACKUP_INTENT to create_options when opening
|
||
|
for writing. Always set security attributes to avoid calling
|
||
|
has_acls.
|
||
|
* fhandler_disk_file.cc (fhandler_base::fstat_fs): Don't try to
|
||
|
open file twice.
|
||
|
|
||
|
2007-07-26 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* dir.cc (readdir_worker): Drop dir parameter from call to
|
||
|
readdir_get_ino.
|
||
|
* fhandler.h (fhandler_disk_file::readdir_helper): Switch file name
|
||
|
parameter to PUNICODE_STRING.
|
||
|
* fhandler_disk_file.cc: Drop including ntdef.h.
|
||
|
(class __DIR_mounts): Store mount points in UNICODE. Additionally
|
||
|
store cygdrive prefix in unicode here. Change methods accordingly.
|
||
|
(__DIR_mounts::eval_ino): Call new stat_worker instead of lstat64.
|
||
|
(__DIR_mounts::~__DIR_mounts): New destructor to free UNICODE buffers.
|
||
|
(path_conv::ndisk_links): Rewrite using native NT functions.
|
||
|
(fhandler_base::fstat_by_handle): Use NAME_MAX instead of CYG_MAX_PATH.
|
||
|
Always set pfvi->VolumeSerialNumber to non-0. Remove last resort
|
||
|
code.
|
||
|
(fhandler_base::fstat_by_name): Rewrite using native NT functions.
|
||
|
(fhandler_base::fstat_fs): Always call fstat_by_name if fstat_by_handle
|
||
|
fails.
|
||
|
(fhandler_base::fstat_helper): Rely on dwVolumeSerialNumber.
|
||
|
(fhandler_disk_file::facl): Call fstat_by_name if fstat_by_handle fails.
|
||
|
(DIR_BUF_SIZE): Define using NAME_MAX instead of CYG_MAX_PATH.
|
||
|
(__DIR_cache): Remove __name.
|
||
|
(d_dirname): Remove.
|
||
|
(fhandler_disk_file::opendir): Drop pathname length check.
|
||
|
Remove outdated comment. Use get_name method instead of accessing
|
||
|
pc.normalized_path directly.
|
||
|
(readdir_get_ino): Drop unused dir parameter. Accomodate throughout.
|
||
|
Allocate fname dynamically. Call new stat_worker instead of lstat64.
|
||
|
Call NtOpenFile instead of CreateFile. Call NtClose instead of
|
||
|
CloseHandle.
|
||
|
(fhandler_disk_file::readdir_helper): Use native NT functions.
|
||
|
Check for volume mount points and use correct inode number.
|
||
|
(fhandler_disk_file::readdir): Simplify slightly.
|
||
|
Use get_name instead of pc.normalized_path.
|
||
|
(fhandler_disk_file::rewinddir): Use RtlInitUnicodeString.
|
||
|
(fhandler_cygdrive::fstat): Ignore floppy drives. Set st_nlink
|
||
|
correctly.
|
||
|
(fhandler_cygdrive::readdir): Ignore floppy drives.
|
||
|
* fhandler_netdrive.cc (fhandler_netdrive::readdir): Accommodate
|
||
|
change to readdir_get_ino.
|
||
|
* fhandler_proc.cc (PROC_DIR_COUNT): Define.
|
||
|
(fhandler_proc::fstat): Evaluate correct link count for /proc.
|
||
|
* ntdll.h (struct _FILE_DIRECTORY_INFORMATION): Define.
|
||
|
(NtFsControlFile): Declare.
|
||
|
(RtlAppendUnicodeToString): Declare.
|
||
|
(RtlAppendUnicodeStringToString): Declare.
|
||
|
(RtlCompareUnicodeString): Declare.
|
||
|
(RtlCopyUnicodeString): Declare.
|
||
|
(RtlCreateUnicodeStringFromAsciiz): Declare.
|
||
|
(RtlEqualUnicodeString): Declare.
|
||
|
(RtlFreeUnicodeString): Declare.
|
||
|
(RtlInitEmptyUnicodeString): Declare.
|
||
|
(RtlSecondsSince1970ToTime): Declare.
|
||
|
(RtlInitEmptyUnicodeString): Define as inline function.
|
||
|
(RtlInitCountedUnicodeString): Define as inline function.
|
||
|
* path.cc (path_conv::check): New method with PUNICODE_STRING as path,
|
||
|
preliminary implementation.
|
||
|
(mount_info::get_mounts_here): Change to create UNICODE_STRINGs.
|
||
|
Also copy cygpath prefix into UNICODE_STRING.
|
||
|
(is_floppy): Drop 9x consideration.
|
||
|
* path.h: Drop including ntdef.h.
|
||
|
(path_conv::check): Add declaration.
|
||
|
(path_conv::path_conv): Add constructor for UNICODE_STRING paths.
|
||
|
* shared_info.h (mount_info::get_mounts_here): Change declaration.
|
||
|
* syscalls.cc: Drop forward declaration of stat_worker.
|
||
|
(stat_worke): Take path_conv as parameter. Drop nofollow flag.
|
||
|
(stat64): Create matching path_conv and call stat_worker with it.
|
||
|
(lstat64): Ditto.
|
||
|
* winsup.h: Include ntdef.h.
|
||
|
(stat_worker): Declare.
|
||
|
(readdir_get_ino): Change declaration.
|
||
|
|
||
|
2007-07-25 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* autoload.cc (CreateToolhelp32Snapshot): Remove.
|
||
|
|
||
|
2007-07-25 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* autoload.cc (Process32First): Remove.
|
||
|
(Process32Next): Remove.
|
||
|
|
||
|
2007-07-25 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* autoload.cc (NetWkstaUserGetInfo): Remove.
|
||
|
(CharToOemBuffA): Remove.
|
||
|
(KillTimer): Remove.
|
||
|
(OemToCharBuffA): Remove.
|
||
|
(SetTimer): Remove.
|
||
|
|
||
|
2007-07-20 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* Makefile.in (DLL_OFILES): Add sec_auth.o.
|
||
|
* fhandler.cc (fhandler_base::fhaccess): Accommodate interface changes
|
||
|
of access control functions throughout.
|
||
|
* fhandler_disk_file.cc: Ditto.
|
||
|
* fhandler_registry.cc: Ditto.
|
||
|
* sec_acl.cc: Drop unnecessary includes.
|
||
|
(setacl): Take path_conv instead of file name as parameter.
|
||
|
Accommodate interface changes of access control functions.
|
||
|
(getacl): Ditto.
|
||
|
* sec_auth.cc: New file, taking over all authentication related
|
||
|
functions from security.cc.
|
||
|
* sec_helper.cc: Drop unnecessary includes.
|
||
|
* security.cc: Ditto. Move all authentication related functions to
|
||
|
sec_auth.cc.
|
||
|
(ALL_SECURITY_INFORMATION): New define. Use throughout.
|
||
|
(set_file_sd): New function, replacing read_sd and the file related
|
||
|
part of get_nt_object_security.
|
||
|
(get_reg_sd): Rename from get_reg_security. Drop type parameter.
|
||
|
(get_reg_attribute): New function, replacing the registry related part
|
||
|
of get_nt_object_security.
|
||
|
(get_file_attribute): Take path_conv instead of file name as parameter.
|
||
|
Use new get_file_sd call.
|
||
|
(set_file_attribute): Ditto plus new set_file_sd. Drop unnecessary
|
||
|
implementation without uid/gid parameters.
|
||
|
(check_file_access): Take path_conv instead of file name as parameter.
|
||
|
Use new get_file_sd call.
|
||
|
(check_registry_access): Use new get_reg_sd call.
|
||
|
* security.h: Accommodate above interface changes.
|
||
|
|
||
|
2007-07-19 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* security.cc (set_nt_attribute): Remove.
|
||
|
(set_file_attribute): Do it yourself instead of calling
|
||
|
set_nt_attribute.
|
||
|
|
||
|
2007-07-19 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_disk_file.cc (fhandler_base::fstat_by_name): Use
|
||
|
NtQueryFullAttributesFile instead of FindFirstFile.
|
||
|
(fhandler_base::fstat_fs): Drop check for exec_state. Drop check for
|
||
|
invalid characters.
|
||
|
* ntdll.h (struct _FILE_NETWORK_OPEN_INFORMATION): Define.
|
||
|
(NtQueryFullAttributesFile): Declare.
|
||
|
|
||
|
2007-07-19 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler.cc (fhandler_base::open): Drop local wpath and upath
|
||
|
variables. Call pc.get_object_attr to create object attributes.
|
||
|
* fhandler_disk_file.cc (fhandler_disk_file::opendir): Ditto.
|
||
|
* syscalls.cc (unlink_nt): Ditto.
|
||
|
* path.cc (path_conv::set_normalized_path): Set wide_path to NULL.
|
||
|
(path_conv::get_nt_native_path): Drop parameter. Create path in
|
||
|
wide_path/uni_path members.
|
||
|
(path_conv::get_object_attr): New method to create object attributes.
|
||
|
(path_conv::get_wide_win32_path): New method to create Win32 wide path.
|
||
|
(path_conv::check): Initialize wide_path to NULL.
|
||
|
(path_conv::~path_conv): cfree wide_path.
|
||
|
* path.h (class path_conv): New members wide_path and uni_path.
|
||
|
Add declarations of get_object_attr and get_wide_win32_path.
|
||
|
(path_conv::path_conv): Initialize wide_path to NULL.
|
||
|
(path_conv::get_nt_native_path): Drop parameter.
|
||
|
|
||
|
2007-07-19 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* sec_helper.cc: Remove unused code.
|
||
|
|
||
|
2007-07-19 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* autoload.cc (SetSecurityDescriptorControl): Drop.
|
||
|
* security.cc (alloc_sd): Set security descriptor control flag without
|
||
|
calling SetSecurityDescriptorControl function.
|
||
|
* wincap.h (wincapc::has_dacl_protect): Rename from
|
||
|
has_security_descriptor_control.
|
||
|
* wincap.cc: Ditto throughout.
|
||
|
|
||
|
2007-07-19 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* autoload.cc (SetUserObjectSecurity): Drop.
|
||
|
* pinfo.cc (pinfo::set_acl): Use NtSetSecurityObject instead of
|
||
|
SetKernelObjectSecurity.
|
||
|
* spawn.cc (spawn_guts): Use NtSetSecurityObject instead of
|
||
|
SetUserObjectSecurity.
|
||
|
* uinfo.cc (cygheap_user::init): Ditto.
|
||
|
|
||
|
2007-07-19 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* cygheap.h (init_cygheap::luid): Remove.
|
||
|
* mmap.cc (mlock): Accommodate parameter change in call to
|
||
|
push_thread_privilege.
|
||
|
(munlock): Ditto.
|
||
|
* ntdll.h (STATUS_NOT_ALL_ASSIGNED): Define.
|
||
|
(NtAdjustPrivilegesToken): Declare.
|
||
|
* sec_helper.cc (cygpriv): Reorder to match numerical privilege order.
|
||
|
(privilege_luid): Take job of privilege_luid_by_name, using new
|
||
|
cygpriv.
|
||
|
(privilege_luid_by_name): Remove.
|
||
|
(privilege_name): Accommodate new cygpriv array.
|
||
|
(set_privilege): Call NtAdjustPrivilegesToken to avoid using advapi32.
|
||
|
Accommodate changes to privilege_name.
|
||
|
(set_cygwin_privileges): Simplify. Don't try to set
|
||
|
SE_CREATE_GLOBAL_PRIVILEGE on systems not supporting it.
|
||
|
* security.cc (sys_privs): Reorder to match numerical privilege order.
|
||
|
Use real privilege values as defined in security.h.
|
||
|
(get_system_priv_list): Drop unused grp_list argument. Create
|
||
|
list of privileges according to new wincapc::max_sys_priv value.
|
||
|
(get_priv_list): Call privilege_luid instead of privilege_luid_by_name.
|
||
|
Make priv a local value instead of a pointer.
|
||
|
(create_token): Accommodate parameter change in call to
|
||
|
push_self_privilege.
|
||
|
(lsaauth): Ditto.
|
||
|
(check_access): Use privilege values directly instead of calling
|
||
|
privilege_luid.
|
||
|
* security.h: Define real privilege values.
|
||
|
(cygpriv_idx): Remove.
|
||
|
(privilege_luid): Change declaration.
|
||
|
(privilege_luid_by_name): Drop declaration.
|
||
|
(set_privilege): Change declaration.
|
||
|
(set_process_privilege): Drop definition.
|
||
|
(_push_thread_privilege): Accomodate new set_privilege parameters.
|
||
|
* wincap.h (wincapc::max_sys_priv): New element.
|
||
|
* wincap.cc: Implement above element throughout.
|
||
|
(wincap_2000sp4): New wincaps structure.
|
||
|
(wincap_xpsp1): Ditto.
|
||
|
(wincap_xpsp2): Ditto.
|
||
|
(wincapc::init): Use new wincaps.
|
||
|
(wincapc::max_sys_priv): New element.
|
||
|
|
||
|
2007-07-19 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* dcrt0.cc (dll_crt0_0): Call set_cygwin_privileges here, after
|
||
|
initializing hProcToken.
|
||
|
* sec_helper.cc (init_global_security): Don't call set_cygwin_privileges here.
|
||
|
|
||
|
2007-07-18 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* cygheap.h (shared_prefix): De-const.
|
||
|
(shared_prefix_buf): Add static buffer for shared prefix to avoid
|
||
|
additional allocation.
|
||
|
* cygheap.cc (cygheap_init): Set cygheap->shared_prefix to
|
||
|
cygheap->shared_prefix_buf and strcpy.
|
||
|
|
||
|
2007-07-17 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler.cc (fhandler_base::fhaccess): Add check for R/O file system.
|
||
|
* security.cc (check_registry_access): Set errno to EROFS when checking
|
||
|
for W_OK.
|
||
|
|
||
|
2007-07-17 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_disk_file.cc (fhandler_disk_file::opendir): Move setting
|
||
|
cfd->nohandle where it won't crash.
|
||
|
|
||
|
2007-07-16 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* cygheap.h (cygheap_user::curr_imp_token): Rename from current_token.
|
||
|
Accommodate change throughout Cygwin.
|
||
|
(cygheap_user::imp_token): Rename from token. Accommodate change
|
||
|
throughout Cygwin.
|
||
|
(rcygheap_user::eimpersonate): Use primary token for impersonation.
|
||
|
* grp.cc (internal_getgroups): Use primary impersonation token when
|
||
|
impersonated.
|
||
|
* security.h (_push_thread_privilege): Use primary impersonation token
|
||
|
when impersonated.
|
||
|
|
||
|
2007-07-14 Christopher Faylor <me+cygwin@cgf.cx>
|
||
|
|
||
|
* init.cc (in_dllentry): Delete.
|
||
|
(dll_entry): Remove assignment to deleted variable.
|
||
|
* winsup.h (in_dllentry): Delete declaration.
|
||
|
* exceptions.cc (inside_kernel): Use another method to see if we are in
|
||
|
dll_entry phase.
|
||
|
|
||
|
2007-07-13 Christopher Faylor <me+cygwin@cgf.cx>
|
||
|
|
||
|
* init.cc (in_dllentry): Make NO_COPY to avoid spurious false
|
||
|
positives.
|
||
|
|
||
|
2007-07-09 Christopher Faylor <me+cygwin@cgf.cx>
|
||
|
|
||
|
* debug.cc (close_handle): Change debug output format slightly.
|
||
|
|
||
|
* dlfcn.cc (dlclose): Don't close handle returned from
|
||
|
GetModuleHandle(NULL).
|
||
|
|
||
|
* fhandler.h (fhandler_pipe::create): Remove obsolete argument.
|
||
|
(fhandler_pipe::create): Ditto.
|
||
|
* fhandler.cc (fhandler_pipe::create): Ditto.
|
||
|
(fhandler_pipe::create): Ditto.
|
||
|
|
||
|
2007-07-09 Christopher Faylor <me+cygwin@cgf.cx>
|
||
|
|
||
|
* strsig.cc (__signals): New macro.
|
||
|
(sys_sigabbrev): New array of signal strings, patterned after linux.
|
||
|
(siglist): Use __signals.
|
||
|
* include/cygwin/signal.h (sys_sigabbrev): Define.
|
||
|
* include/cygwin/version.h: Bump API minor version to 177.
|
||
|
|
||
|
2007-07-09 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* dir.cc (closedir): Revert change from 2007-06-29.
|
||
|
* fhandler.h (dirent_valid_fd): Drop.
|
||
|
* fhandler_disk_file.cc (fhandler_disk_file::opendir): If opening a
|
||
|
real dir, use the underlying fhandler to keep track of the directory
|
||
|
handle. In fdopendir case use original io_handle from fhandler. Use
|
||
|
fhandler's io_handle in subsequent directory functions throughout.
|
||
|
Create handle non-inheritable and set close-on-exec flag.
|
||
|
(readdir_get_ino): Drop dirent_isroot case.
|
||
|
(fhandler_disk_file::readdir): Handle dirent_isroot case here.
|
||
|
(fhandler_disk_file::rewinddir): Revert change from 2007-07-05. Use
|
||
|
NtClose instead of CloseHandle.
|
||
|
* fhandler_virtual.cc (fhandler_virtual::opendir): Drop adding
|
||
|
dirent_valid_fd flag. Set close-on-exec flag.
|
||
|
|
||
|
2007-07-08 Christopher Faylor <me+cygwin@cgf.cx>
|
||
|
|
||
|
* Makefile.in (DLL_OFILES): Add newly-imported random.o. Eliminate
|
||
|
reliance on libiberty.
|
||
|
* random.cc: Import from FreeBSD. Modify for Cygwin environment.
|
||
|
* include/cygwin/stdlib.h (random): Reflect change in return value to
|
||
|
be more linux/freebsd-like.
|
||
|
(srandom): Ditto.
|
||
|
|
||
|
2007-07-07 Christopher Faylor <me+cygwin@cgf.cx>
|
||
|
|
||
|
* fhandler.h (fhandler_base::write): Remove __stdcall decoration.
|
||
|
(fhandler_pipe::write): Ditto.
|
||
|
(fhandler_fifo::write): Ditto.
|
||
|
|
||
|
2007-07-07 Christopher Faylor <me+cygwin@cgf.cx>
|
||
|
|
||
|
Preliminary change to make pipes interruptible and fifos reliable.
|
||
|
* dtable.cc (dtable::find_fifo): Eliminate definition.
|
||
|
* dtable.h (dtable::find_fifo): Ditto for declaration.
|
||
|
* fhandler.cc (fhandler_base::raw_read): Remove pipe-specific stuff.
|
||
|
(fhandler_base::fhandler_base): Ditto.
|
||
|
(fhandler_base::close): Handle overlapped I/O structure if appropriate.
|
||
|
(fhandler_base::dup): Ditto.
|
||
|
(fhandler_base::fork_fixup): Ditto.
|
||
|
(fhandler_base::setup_overlapped): Define new function.
|
||
|
(fhandler_base::destroy_overlapped): Ditto.
|
||
|
(fhandler_base::wait_overlapped): Ditto.
|
||
|
(fhandler_base::read_overlapped): Ditto.
|
||
|
(fhandler_base::write_overlapped): Ditto.
|
||
|
* fhandler.h (fhandler_base::get_overlapped): Declare new function.
|
||
|
(fhandler_base::setup_overlapped): Ditto.
|
||
|
(fhandler_base::destroy_overlapped): Ditto.
|
||
|
(fhandler_base::wait_overlapped): Ditto.
|
||
|
(fhandler_base::read_overlapped): Ditto.
|
||
|
(fhandler_base::write_overlapped): Ditto.
|
||
|
(fhandler_base::get_guard): Eliminate.
|
||
|
(fhandler_pipe::*): Rework to eliminate most Win9x related cruft,
|
||
|
removing many variables and defining a new overlapped capability.
|
||
|
(fhandler_fifo::*): Ditto.
|
||
|
(fifo_state): Declare new enum.
|
||
|
* fhandler_fifo.cc (fhandler_fifo::fhandler_fifo): Remove old Win9x
|
||
|
stuff. Initialize overlapped handle to NULL.
|
||
|
(fhandler_fifo::set_use): Eliminate.
|
||
|
(fhandler_fifo::open_nonserver): Define.
|
||
|
(fhandler_fifo::open): Rework to use named pipes and overlapped I/O.
|
||
|
(fhandler_fifo::wait): Define new function to wait for named pipe
|
||
|
connection.
|
||
|
(fhandler_fifo::read): Rework to use wait() and new overlapped I/O
|
||
|
functionality.
|
||
|
(fhandler_fifo::write): Ditto.
|
||
|
(fhandler_fifo::dup): Eliminate.
|
||
|
* pinfo.cc (commune_process): Remove fifo handling.
|
||
|
(_pinfo::commune_request): Ditto.
|
||
|
* pinfo.h (picom): Ditto.
|
||
|
* pipe.cc (fhandler_pipe::fhandler_pipe): Remove Win9x stuff.
|
||
|
Initialize overlapped handle to NULL.
|
||
|
(fhandler_pipe::open): Eliminate Win9x stuff.
|
||
|
(fhandler_pipe::set_close_on_exec): Eliminate.
|
||
|
(read_pipe): Eliminate.
|
||
|
(fhandler_pipe::close): Ditto.
|
||
|
(fhandler_pipe::fixup_after_exec): Ditto.
|
||
|
(fhandler_pipe::fixup_in_child): Ditto.
|
||
|
(fhandler_pipe::read): Rework to use overlapped I/O.
|
||
|
(fhandler_pipe::write): New function using overlapped I/O.
|
||
|
(fhandler_pipe::dup): Rework to eliminate Win9x stuff.
|
||
|
(fhandler_pipe::create_selectable): Rework to eliminate Win9x and use
|
||
|
overlapped I/O.
|
||
|
* select.cc (peek_pipe): Rework to eliminate Win9x stuff and use
|
||
|
overlapped I/O.
|
||
|
(fhandler_base::ready_for_read): Ditto.
|
||
|
|
||
|
2007-07-07 Christopher Faylor <me+cygwin@cgf.cx>
|
||
|
|
||
|
* path.cc (symlink_info::check_shortcut): Handle device "symlinks"
|
||
|
specially - don't posixify them.
|
||
|
|
||
|
2007-07-07 Christopher Faylor <me+cygwin@cgf.cx>
|
||
|
|
||
|
* fhandler_disk_file.cc: White space.
|
||
|
* fhandler_proc.cc: Ditto.
|
||
|
* fhandler_virtual.cc: Ditto.
|
||
|
|
||
|
2007-07-07 Christopher Faylor <me+cygwin@cgf.cx>
|
||
|
|
||
|
* fork.cc: White space.
|
||
|
* net.cc: Ditto.
|
||
|
* posix_ipc.cc: Ditto.
|
||
|
|
||
|
2007-07-06 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* times.cc (gettimeofday): Align definition to POSIX.
|
||
|
|
||
|
2007-07-06 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* cygwin.din: Export wcstol, wcstoll, wcstoul, wcstoull, wcsxfrm.
|
||
|
* include/cygwin/version.h: Bump API minor number.
|
||
|
|
||
|
2007-07-05 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_disk_file.cc (fhandler_disk_file::opendir): Add missing
|
||
|
OBJ_INHERIT flag when creating OBJECT_ATTRIBUTES.
|
||
|
(fhandler_disk_file::rewinddir): Ditto.
|
||
|
|
||
|
2007-07-04 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* times.cc: Define __timezonefunc__ before including time.h to protect
|
||
|
definition of timezone function.
|
||
|
|
||
|
2007-07-04 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* include/cygwin/time.h: Switch to timezone variable by default. Add
|
||
|
comment.
|
||
|
|
||
|
2007-06-29 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* cygwin.din: Export fdopendir.
|
||
|
* dir.cc (opendir): Call fhandler's opendir with fd set to -1.
|
||
|
(fdopendir): New function.
|
||
|
(seekdir64): Use dirent_info_mask.
|
||
|
(rewinddir): Ditto.
|
||
|
(closedir): Only release underlying file descriptor if it has been
|
||
|
reserved by opendir itself.
|
||
|
* fhandler.cc (fhandler_base::opendir): Accommodate new parameter.
|
||
|
* fhandler.h (dirent_states): Add dirent_valid_fd and dirent_info_mask.
|
||
|
(fhander_XXX::opendir): Add file descriptor parameter. Use regparms.
|
||
|
(fhandler_procnet::opendir): Drop declaration.
|
||
|
* fhandler_disk_file.cc (fhandler_disk_file::opendir): Ditto.
|
||
|
If called from fdopendir, use existing handle to re-open directory
|
||
|
with valid flags. Rename fd to cfd. Use only if no valid incoming fd.
|
||
|
(fhandler_cygdrive::opendir): Accommodate new parameter.
|
||
|
* fhandler_process.cc (fhandler_process::opendir): Ditto.
|
||
|
* fhandler_procnet.cc (fhandler_procnet::opendir): Drop definition.
|
||
|
* fhandler_virtual.cc (fhandler_virtual::opendir): Accommodate new
|
||
|
parameter. Only create new file descriptor entry if called from
|
||
|
opendir. Remove duplicated setting of dir->__flags.
|
||
|
* posix.sgml: Add fdopendir to list of implemented Solaris functions.
|
||
|
* include/cygwin/version.h: Bump API minor number.
|
||
|
* include/sys/dirent.h: Declare fdopendir.
|
||
|
|
||
|
2007-06-28 Brian Dessent <brian@dessent.net>
|
||
|
|
||
|
* include/cygwin/version.h: Fix comment typo.
|
||
|
|
||
|
2007-06-28 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* cygwin.din: Export stpcpy, stpncpy.
|
||
|
* posix.sgml: Add stpcpy and stpncpy to list of implemented
|
||
|
GNU extensions.
|
||
|
* include/cygwin/version.h: Bump API minor number.
|
||
|
|
||
|
2007-06-27 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* shared_info.h (SHARED_INFO_CB): Accommodate change to shared_info.
|
||
|
(CURR_SHARED_MAGIC): Ditto.
|
||
|
(class shared_info): Add heap_slop_inited member.
|
||
|
* shared.cc (shared_info::heap_slop_size): Use heap_slop_inited to
|
||
|
track initializing heap_slop since 0 is a valid value for heap_slop.
|
||
|
Drop useless < 0 consideration.
|
||
|
|
||
|
2007-06-27 Eric Blake <ebb9@byu.net>
|
||
|
|
||
|
* assert.cc (__assert_func): New function, to match newlib header
|
||
|
change.
|
||
|
* cygwin.din: Export __assert_func.
|
||
|
* include/cygwin/version.h: Bump API minor number.
|
||
|
|
||
|
2007-06-21 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* autoload.cc (WSAIoctl): Remove.
|
||
|
* cygwin.din: Export freeifaddrs, getifaddrs.
|
||
|
* fhandler_socket.cc (fhandler_socket::ioctl): Drop SOCKET parameter
|
||
|
from get_ifconf.
|
||
|
* net.cc: Include ifaddrs.h.
|
||
|
(in_are_prefix_equal): Match addresses in network byte order.
|
||
|
(ip_addr_prefix): Convert address into host byte order before
|
||
|
testing with IN_LOOPBACK.
|
||
|
(struct ifall): Define.
|
||
|
(get_xp_ifs): Replace get_xp_ifconf. Return struct ifall array.
|
||
|
(get_2k_ifs): Ditto, replace get_2k_ifconf.
|
||
|
(get_nt_ifs): Ditto, replace get_nt_ifconf.
|
||
|
(getifaddrs): New function.
|
||
|
(freeifaddrs): New function.
|
||
|
(get_ifconf): Call matching get_XX_ifs function and create
|
||
|
ifc content from here. Drop lo fake since it's now in get_nt_ifs.
|
||
|
* posix.sgml: Add freeifaddrs and getifaddrs to list of implemented
|
||
|
BSD functions.
|
||
|
* wincap.h (wincapc::has_broken_if_oper_status): New element.
|
||
|
* wincap.cc: Implement above element throughout.
|
||
|
* include/ifaddrs.h: New file.
|
||
|
* include/cygwin/version.h: Bump API minor number.
|
||
|
|
||
|
2007-06-20 Eric Blake <ebb9@byu.net>
|
||
|
|
||
|
* cygwin.din: Export exp10, exp10f, pow10, pow10f, strcasestr,
|
||
|
funopen, fopencookie.
|
||
|
* include/cygwin/version.h: Bump API minor number.
|
||
|
* posix.sgml: Minor improvements.
|
||
|
|
||
|
2007-06-20 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* include/cygwin/if.h (IFF_POINTOPOINT): Fix typo.
|
||
|
|
||
|
2007-06-16 Christopher Faylor <me+cygwin@cgf.cx>
|
||
|
|
||
|
* include/search.h: Reinstate node_t definition.
|
||
|
|
||
|
2007-06-16 Christopher Faylor <me+cygwin@cgf.cx>
|
||
|
|
||
|
* include/sys/cdefs.h: Remove in favor of newlib version.
|
||
|
|
||
|
2007-06-14 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* autoload.cc (GetIpForwardTable): Define.
|
||
|
* fhandler_socket.cc (fhandler_socket::ioctl): Handle SIOCGIFDSTADDR.
|
||
|
* net.cc (get_routedst): New static function to get destination
|
||
|
address of point-to-point interfaces.
|
||
|
(get_xp_ifconf): Handle SIOCGIFDSTADDR.
|
||
|
(get_2k_ifconf): Ditto.
|
||
|
(get_nt_ifconf): Ditto.
|
||
|
(get_ifconf): Ditto.
|
||
|
* include/asm/socket.h (SIOCGIFDSTADDR): Define.
|
||
|
* include/cygwin/if.h (struct ifreq): Add ifru_dstaddr member.
|
||
|
(ifr_dstaddr): Define.
|
||
|
* include/cygwin/in.h: Cast ipv4 addresses correctly to in_addr_t in
|
||
|
definitions.
|
||
|
|
||
|
2007-06-12 Christopher Faylor <me+cygwin@cgf.cx>
|
||
|
|
||
|
* signal.cc (usleep): Use useconds_t for the type as per POSIX.
|
||
|
|
||
|
2007-06-12 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* Makefile.in (DLL_OFILES): Add xsique.o.
|
||
|
* cygwin.din (confstr): Make NOSIGFE.
|
||
|
(insque): Export.
|
||
|
(remque): Export.
|
||
|
* lsearch.cc: Remove superfluous _SEARCH_PRIVATE define.
|
||
|
* posix.sgml: Move insque to defined SUSv3 interfaces. Remove
|
||
|
comment for remque.
|
||
|
* include/search.h: Remove _SEARCH_PRIVATE guarded definitions.
|
||
|
Add struct qelem definition. Add insque and remque declarations.
|
||
|
* include/cygwin/version.h: Bump API minor number.
|
||
|
* include/sys/queue.h: Remove insque/remque definitions so as not
|
||
|
to collide with SUSv3 compatible declaration in search.h.
|
||
|
* libc/xsique.cc: New file implementing insque and remque.
|
||
|
|
||
|
2007-06-12 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler.cc (fhandler_base::fstat): Set pipe permission bits more
|
||
|
correctly.
|
||
|
|
||
|
2007-06-11 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* cygwin.din (confstr): Export.
|
||
|
* posix.sgml (confstr): Move to list of implemented SUSv3 functions.
|
||
|
* sysconf.cc (confstr): Implement.
|
||
|
* include/cygwin/version.h: Bump API minor number.
|
||
|
|
||
|
2007-06-05 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* ansi.sgml: Delete.
|
||
|
* misc-std.sgml: Delete.
|
||
|
* posix.sgml: Rework entirely.
|
||
|
|
||
|
2007-05-29 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* dtable.cc (dtable::set_file_pointers_for_exec): Call SetFilePointer
|
||
|
correctly for 64 bit file access. Comment out functionality.
|
||
|
* fhandler.cc (fhandler_base::open): Don't set append_mode.
|
||
|
(fhandler_base::write): Check for O_APPEND instead of append_mode.
|
||
|
Call SetFilePointer correctly for 64 bit file access. Handle
|
||
|
errors from SetFilePointer.
|
||
|
* fhandler.h (class fhandler_base): Drop append_mode status flag.
|
||
|
* fhandler_disk_file.cc (fhandler_base::fstat_helper): Handle
|
||
|
seeking correctly for 64 bit file access.
|
||
|
|
||
|
2007-05-22 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* path.cc (cwdstuff::set): Revert useless acquire check.
|
||
|
|
||
|
2007-05-22 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* path.cc (cwdstuff::set): Avoid double aquiring of cwd_lock.
|
||
|
Open directory with inheriting enabled.
|
||
|
|
||
|
2007-05-21 Christian Franke <franke@computer.org>
|
||
|
|
||
|
* fhandler_floppy.cc (fhandler_dev_floppy::lseek): Don't invalidate
|
||
|
devbuf if new position is within buffered range.
|
||
|
|
||
|
2007-05-21 Eric Blake <ebb9@byu.net>
|
||
|
|
||
|
* include/search.h (hsearch_r): Provide declaration.
|
||
|
|
||
|
2007-05-21 Christian Franke <franke@computer.org>
|
||
|
Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_floppy.cc (fhandler_dev_floppy::lseek): Set buf size to
|
||
|
sector size. Simplify non-sector aligned case. Handle errors from
|
||
|
raw_read.
|
||
|
|
||
|
2007-05-15 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_socket.cc (adjust_socket_file_mode): New inline function.
|
||
|
(fhandler_socket::fchmod): Squeeze mode through adjust_socket_file_mode
|
||
|
before using it.
|
||
|
(fhandler_socket::bind): Ditto.
|
||
|
|
||
|
2007-03-19 Ryan C. Gordon <icculus@icculus.org>
|
||
|
|
||
|
* path.cc (fs_info::update): Set and use is_cdrom.
|
||
|
* path.cc (fillout_mntent): Set ret.mnt_type to something more
|
||
|
Linux-like, based on data from fs_info. Move "system" and "user"
|
||
|
strings from mnt_type to mnt_opts.
|
||
|
* path.h (struct fs_info): Add is_cdrom field.
|
||
|
* path.h (fs_info::clear): Initialize is_cdrom.
|
||
|
* path.h (struct fs_info): Add IMPLEMENT_STATUS_FLAG(bool,is_cdrom).
|
||
|
* path.h (class path_conv): Add fs_is_cdrom method. Add missing
|
||
|
fs_is_netapp method.
|
||
|
|
||
|
2007-05-14 Eric Blake <ebb9@byu.net>
|
||
|
|
||
|
* cygwin.din (asnprintf, dprint, _Exit, vasnprintf, vdprintf): Export.
|
||
|
* include/cygwin/version.h: Bump API minor number.
|
||
|
|
||
|
2007-04-18 Brian Dessent <brian@dessent.net>
|
||
|
|
||
|
* cygwin.sc: Remove duplicated .debug_macinfo section.
|
||
|
* dllfixdbg: Also copy DWARF-2 sections into .dbg file.
|
||
|
|
||
|
2007-04-06 Eric Blake <ebb9@byu.net>
|
||
|
|
||
|
* include/stdint.h (WINT_MIN): Fix sign.
|
||
|
|
||
|
2007-04-04 Eric Blake <ebb9@byu.net>
|
||
|
|
||
|
* include/stdint.h (WINT_MIN, WINT_MAX): Fix definition.
|
||
|
|
||
|
2007-03-30 Christopher Faylor <me@cgf.cx>
|
||
|
|
||
|
* external.cc (cygwin_internal): Implement CW_SET_DOS_FILE_WARNING.
|
||
|
* include/sys/cygwin.h: Define CW_SET_DOS_FILE_WARNING.
|
||
|
|
||
|
2007-03-29 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* cygheap.cc (cygheap_init): Fix formatting. Remove comment. Set
|
||
|
shared_prefix depending only on terminal service capability.
|
||
|
* dcrt0.cc (dll_crt0_1): Don't call set_cygwin_privileges here.
|
||
|
* fhandler_fifo.cc (fhandler_fifo::open): Create the mutex as global
|
||
|
object.
|
||
|
* posix_ipc.cc (ipc_mutex_init): Use cygheap->shared_prefix.
|
||
|
(ipc_cond_init): Ditto.
|
||
|
* sec_helper.cc (privilege_name): Make static. Use LookupPrivilegeName
|
||
|
directly to be independent of the state of cygheap.
|
||
|
(set_privilege): Take a LUID as parameter instead of an index value.
|
||
|
Only print debug output in case of failure.
|
||
|
(set_cygwin_privileges): Add comment. Use LookupPrivilegeValue to
|
||
|
get privilege LUIDs.
|
||
|
(init_global_security): Call set_cygwin_privileges here.
|
||
|
* security.h (privilege_name): Drop declaration.
|
||
|
(set_privilege): Declare according to above change.
|
||
|
(set_process_privilege): Call privilege_luid to get LUID.
|
||
|
(_push_thread_privilege): Ditto.
|
||
|
* shared.cc (open_shared): Add comment. On systems supporting the
|
||
|
SeCreateGlobalPrivilege, try to create/open global shared memory first.
|
||
|
Fall back to local shared memory if that fails.
|
||
|
* thread.cc (semaphore::semaphore): Use cygheap->shared_prefix.
|
||
|
* wincap.h (wincapc::has_create_global_privilege): New element.
|
||
|
* wincap.cc: Implement above element throughout.
|
||
|
|
||
|
2007-03-28 Christopher Faylor <me@cgf.cx>
|
||
|
|
||
|
* spawn.cc (spawn_guts): Start pure-windows processes in a suspended
|
||
|
state to avoid potential DuplicateHandle problems.
|
||
|
|
||
|
2007-03-13 Eric Blake <ebb9@byu.net>
|
||
|
|
||
|
* include/cygwin/stat.h (S_TYPEISMQ, S_TYPEISSEM, S_TYPEISSHM):
|
||
|
Avoid compiler warnings.
|
||
|
|
||
|
2007-03-07 Christopher Faylor <me@cgf.cx>
|
||
|
|
||
|
* signal.cc (handle_sigprocmask): Remove extraneous
|
||
|
sig_dispatch_pending.
|
||
|
|
||
|
2007-03-07 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_proc.cc: Fix formatting. Drop setting errno when creating
|
||
|
proc file content.
|
||
|
(format_proc_uptime): Simplify.
|
||
|
(format_proc_cpuinfo): Align more closely to output of Linux 2.6 kernel.
|
||
|
Evaluate more data, especially for AMD CPUs.
|
||
|
|
||
|
2007-03-06 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler.h (fhandler_base::fstat_helper): Add creation time parameter.
|
||
|
* glob.cc (stat32_to_stat64): Set st_birthtim to st_mtim.
|
||
|
|
||
|
2007-03-06 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* include/cygwin/stat.h (S_TYPEISMQ): Define.
|
||
|
(S_TYPEISSEM): Dttio.
|
||
|
(S_TYPEISSHM): Ditto.
|
||
|
|
||
|
2007-03-06 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_mailslot.cc (fhandler_mailslot::fstat): Set new stat member
|
||
|
st_birthtim to useful value.
|
||
|
* fhandler_process.cc (fhandler_process::fstat): Ditto.
|
||
|
* fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Take
|
||
|
additional parameter for creation time. Fill st_birthtim with it.
|
||
|
Accomodate additional creation time parameter throughout.
|
||
|
* fhandler_raw.cc (fhandler_dev_raw::fstat): Set new stat member
|
||
|
st_birthtim to useful value.
|
||
|
* fhandler.cc (fhandler_base::fstat): Ditto.
|
||
|
* fhandler_registry.cc (fhandler_registry::fstat): Ditto.
|
||
|
* include/cygwin/version.h: Bump API minor number.
|
||
|
* include/cygwin/stat.h (struct __stat64): Replace st_spare4 with
|
||
|
timestruc_t st_birthtim.
|
||
|
(struct stat): Ditto if __CYGWIN_USE_BIG_TYPES__ is defined.
|
||
|
(st_birthtime): Define if __CYGWIN_USE_BIG_TYPES__ is defined.
|
||
|
|
||
|
2007-03-02 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* ntdll.h (struct _FILE_NAMES_INFORMATION): Define.
|
||
|
* syscalls.cc (unlink_nt): Check shared directory for being empty
|
||
|
before trying to move and mark for deletion.
|
||
|
|
||
|
2007-03-02 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* security.cc (get_file_attribute): Avoid compiler warning.
|
||
|
|
||
|
2007-03-01 Christopher Faylor <me@cgf.cx>
|
||
|
|
||
|
* fork.cc (fork): Reset child to true after fork since it may have been
|
||
|
reset by fork memory copies.
|
||
|
|
||
|
2007-03-01 Christopher Faylor <me@cgf.cx>
|
||
|
|
||
|
* Makefile (DLL_OFILES): Remove ntea.o
|
||
|
* environ.cc (set_ntea): Delete.
|
||
|
(parse_thing): Delete "ntea" setting.
|
||
|
* fhandler.cc (fhandler_base::open): Remove allow_ntea considerations.
|
||
|
(check_posix_perm): Ditto.
|
||
|
* fhandler_disk_file.cc (fhandler_disk_file::fchmod): Ditto.
|
||
|
(fhandler_base::open_fs): Ditto.
|
||
|
(fhandler_disk_file::mkdir): Ditto.
|
||
|
* path.cc (symlink_worker): Ditto.
|
||
|
* security.cc (get_file_attribute): Ditto.
|
||
|
(set_file_attribute): Ditto.
|
||
|
* security.h: Remove allow_ntea declaration.
|
||
|
|
||
|
2007-02-27 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* path.cc (close_user_proc_parms_cwd_handle): Remove.
|
||
|
(cwdstuff::init): Don't call close_user_proc_parms_cwd_handle.
|
||
|
Call set to set cwd with all-sharing handle.
|
||
|
(cwdstuff::set): Fix comment. Don't close cwd handle. Set in
|
||
|
user parameter block instead and close old cwd handle.
|
||
|
* syscalls.cc (rename): Call unlink_nt instead of RemoveDirectory or
|
||
|
DeleteFile to allow deleting shared files/directories.
|
||
|
|
||
|
2007-02-27 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler.cc(fhandler_base::open): Open with READ_CONTROL only in
|
||
|
case of query_open flag set to query_read_control. Add case for
|
||
|
new query_read_attributes flag.
|
||
|
(fhandler_base::fstatvfs): New method.
|
||
|
* fhandler.h (enum query_state): Add query_read_attributes flag.
|
||
|
(class fhandler_base): Declare new virtual fstatvfs method.
|
||
|
(class fhandler_socket): Ditto.
|
||
|
(class fhandler_pipe): Ditto.
|
||
|
(class fhandler_fifo): Ditto.
|
||
|
(class fhandler_disk_file): Ditto.
|
||
|
(class fhandler_virtual): Ditto.
|
||
|
* fhandler_disk_file.cc (fhandler_base::fstat_fs): Open with
|
||
|
query_read_attributes instead of query_read_control.
|
||
|
(fhandler_disk_file::fstatvfs): New method.
|
||
|
(fhandler_disk_file::facl): Open with query_read_attributes instead of
|
||
|
query_read_control.
|
||
|
* fhandler_fifo.cc (fhandler_fifo::fstatvfs): New method.
|
||
|
* fhandler_socket.cc (fhandler_socket::fstatvfs): New method.
|
||
|
(fhandler_socket::fchmod): Return with EBADF in the default case.
|
||
|
(fhandler_socket::fchown): Ditto.
|
||
|
(fhandler_socket::facl): Ditto.
|
||
|
* fhandler_virtual.cc (fhandler_virtual::fstatvfs): Ditto.
|
||
|
* ntdll.h (struct _FILE_FS_ATTRIBUTE_INFORMATION): Define.
|
||
|
(struct _FILE_FS_FULL_SIZE_INFORMATION): Define.
|
||
|
* pipe.cc (fhandler_pipe::fstatvfs): New method.
|
||
|
* syscalls.cc (fstatvfs): Just call the fhandler's fstatvfs.
|
||
|
(statvfs): Ditto.
|
||
|
(fstatfs): Call fstatvfs.
|
||
|
(statfs): Drop EFAULT handling.
|
||
|
|
||
|
2007-02-26 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler.cc (fhandler_base::fstat): Set all file times to arbitrary
|
||
|
fixed value.
|
||
|
|
||
|
2007-02-26 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_registry.cc (registry_listing): Drop name of HKEY_DYN_DATA.
|
||
|
(registry_keys): Drop HKEY_DYN_DATA.
|
||
|
* net.cc: Fix comment.
|
||
|
* syslog.cc: Ditto.
|
||
|
|
||
|
2007-02-26 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_disk_file.cc (fhandler_disk_file::fchmod): Drop comment.
|
||
|
* mmap.cc (gen_access): Remove.
|
||
|
(mmap_record::gen_access): Remove.
|
||
|
(mmap64): Don't mention 9x any longer.
|
||
|
* syscalls.cc (statvfs): Drop status code consideration for 9x.
|
||
|
* libc/minires-os-if.c (get_registry_dns_items): Don't mention 9x any
|
||
|
longer.
|
||
|
(get_registry_dns): Drop getting registry key on 9x. Drop is9x
|
||
|
variable.
|
||
|
|
||
|
2007-02-23 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
Throughout remove all usage of wincap.has_security.
|
||
|
* environ.cc (environ_init): Drop setting allow_ntsec here.
|
||
|
* grp.cc (initgroups32): Drop usage of label "out".
|
||
|
* security.cc (allow_ntsec): Set to true by default.
|
||
|
* syscalls.cc (seteuid32): Remove label success_9x.
|
||
|
* wincap.cc: Remove has_security throughout.
|
||
|
* wincap.h: Ditto.
|
||
|
|
||
|
2007-02-23 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler.h (class fhandler_pipe): Remove members writepipe_exists,
|
||
|
orig_pid and id. Make hit_eof inline.
|
||
|
* fhandler_fifo.cc (fhandler_fifo::open): Drop handling of
|
||
|
writepipe_exists, orig_pid and id.
|
||
|
* pipe.cc: Ditto throughout.
|
||
|
(pipecount): Remove.
|
||
|
(pipeid_fmt): Remove.
|
||
|
(fhandler_pipe::hit_eof): Simplify. Move to fhandler.h.
|
||
|
(fhandler_pipe::dup): Drop leave label.
|
||
|
(fhandler_pipe::create): Drop has_unreliable_pipes case.
|
||
|
* wincap.cc: Remove has_unreliable_pipes throughout.
|
||
|
* wincap.h: Ditto.
|
||
|
|
||
|
2007-02-23 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* devices.in: Change native device name to native NT device name for
|
||
|
/dev/null, /dev/comX and /dev/ttySx.
|
||
|
* devices.cc: Regenerate.
|
||
|
* fhandler.cc (fhandler_base::open_9x): Remove.
|
||
|
(fhandler_base::open): Don't test for DOS device name, don't call
|
||
|
open_9x.
|
||
|
(fhandler_dev_null::open): Remove.
|
||
|
* fhandler.h (class fhandler_base): Drop open_9x declaration.
|
||
|
(class fhandler_dev_null): Drop open declaration.
|
||
|
|
||
|
2007-02-23 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_console.cc (fhandler_console::need_invisible): Drop
|
||
|
pty_needs_alloc_console check.
|
||
|
* spawn.cc (spawn_guts): Ditto.
|
||
|
(av::fixup): Remove setting iscui.
|
||
|
* syscalls.cc (rename): Drop has_move_file_ex checks. Remove 9x
|
||
|
specific code.
|
||
|
* wincap.cc: Remove has_move_file_ex and pty_needs_alloc_console
|
||
|
throughout.
|
||
|
* wincap.h: Ditto.
|
||
|
|
||
|
2007-02-23 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* exceptions.cc (dummy_ctrl_c_handler): Remove.
|
||
|
(init_console_handler): Drop has_null_console_handler_routine checks.
|
||
|
* fhandler_raw.cc (fhandler_dev_raw::open): Drop has_raw_devices check.
|
||
|
* fhandler_serial.cc (fhandler_serial::open): Drop
|
||
|
.supports_reading_modem_output_lines check.
|
||
|
* miscfuncs.cc (low_priority_sleep): Drop has_switch_to_thread check.
|
||
|
* shared.cc (open_shared): Drop needs_memory_protection checks.
|
||
|
* spawn.cc (spawn_guts): Drop start_proc_suspended check.
|
||
|
* uname.cc (uname): Drop has_valid_processorlevel check.
|
||
|
* wincap.cc: Remove has_raw_devices, has_valid_processorlevel,
|
||
|
supports_reading_modem_output_lines, needs_memory_protection,
|
||
|
has_switch_to_thread, start_proc_suspended and
|
||
|
has_null_console_handler_routine throughout.
|
||
|
* wincap.h: Ditto.
|
||
|
|
||
|
2007-02-23 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler.cc (fhandler_base::lseek): Drop 9x considerations.
|
||
|
* fhandler_disk_file.cc (fhandler_disk_file::lock): Ditto.
|
||
|
* wincap.cc: Remove lock_file_highword and has_64bit_file_access
|
||
|
throughout.
|
||
|
* wincap.h: Ditto.
|
||
|
|
||
|
2007-02-22 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* cygheap.h (struct cwdstuff): Remove sync member and keep_in_sync
|
||
|
accessors.
|
||
|
* external.cc (cygwin_internal): Drop call to cygheap->cwd.keep_in_sync.
|
||
|
* fhandler_disk_file.cc (fhandler_disk_file::link): Always presume
|
||
|
ability to create hard links.
|
||
|
* path.cc (cwdstuff::init): Drop 9x considerations.
|
||
|
(cwdstuff::keep_in_sync): Remove.
|
||
|
(cwdstuff::set): Take NT for granted.
|
||
|
* pinfo.h (cygwin_pid): Just return pid.
|
||
|
* wincap.cc: Remove has_hard_links, can_open_directories,
|
||
|
has_negative_pids, has_named_pipes, has_try_enter_critical_section,
|
||
|
cant_debug_dll_entry and detect_win16_exe throughout.
|
||
|
* wincap.h: Ditto.
|
||
|
|
||
|
2007-02-22 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_console.cc (fhandler_console::read): Drop 9x specific
|
||
|
handling of AltGr key.
|
||
|
* mmap.cc: Take NT for granted throughout.
|
||
|
* wincap.cc: Remove map_view_of_file_ex_sucks, altgr_is_ctrl_alt,
|
||
|
has_working_copy_on_write, share_mmaps_only_by_name,
|
||
|
virtual_protect_works_on_shared_pages, has_mmap_alignment_bug and
|
||
|
has_working_virtual_lock throughout.
|
||
|
* wincap.h: Ditto.
|
||
|
|
||
|
2007-02-22 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler.cc (fhandler_base::set_no_inheritance): Always use
|
||
|
SetHandleInformation.
|
||
|
* fhandler_disk_file.cc (fhandler_disk_file::lock): Always use
|
||
|
UnlockFileEx/LockFileEx functions.
|
||
|
* net.cc (fdsock): Don't bother to duplicate socket for inheritance.
|
||
|
* sysconf.cc (get_nproc_values): Take NT for granted.
|
||
|
(get_avphys): Ditto.
|
||
|
* syslog.cc (WIN95_EVENT_LOG_PATH): Remove define.
|
||
|
(get_win95_event_log_path): Remove.
|
||
|
(vsyslog): Fix formatting. Take NT for granted.
|
||
|
* wincap.cc: Remove has_lock_file_ex, has_signal_object_and_wait,
|
||
|
has_eventlog, has_set_handle_information,
|
||
|
has_set_handle_information_on_console_handles and supports_smp
|
||
|
throughout.
|
||
|
* wincap.h: Ditto.
|
||
|
|
||
|
2007-02-22 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* dir.cc (rmdir): Move existance check in front of
|
||
|
has_dot_last_component check. Simplify setting errno in latter case.
|
||
|
|
||
|
2007-02-22 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler.cc (fhandler_base::write): Remove wincap.has_lseek_bug case.
|
||
|
Simplify seek beyond EOF case.
|
||
|
* times.cc (times): Remove wincap.has_get_process_times case.
|
||
|
* wincap.cc: Remove has_delete_on_close, has_page_guard,
|
||
|
has_get_process_times and has_lseek_bug throughout.
|
||
|
* wincap.h: Ditto.
|
||
|
|
||
|
2007-02-22 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
Throughout remove all usage of wincap.access_denied_on_delete.
|
||
|
* dir.cc (rmdir): Add existance check to be errno-compatible with Linux.
|
||
|
* fhandler_disk_file.cc (fhandler_disk_file::rmdir): Drop test for
|
||
|
non-existent dir on 9x share.
|
||
|
* syscalls.cc (unlink): Add comment.
|
||
|
* wincap.cc: Remove access_denied_on_delete flag throughout.
|
||
|
* wincap.h: Ditto.
|
||
|
|
||
|
2007-02-22 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_disk_file.cc (fhandler_disk_file::closedir): Fix bug
|
||
|
introduced by switching to NtClose.
|
||
|
|
||
|
2007-02-22 Christopher Faylor <me@cgf.cx>
|
||
|
|
||
|
* dcrt0.cc (child_info_fork::alloc_stack_hard_way): Change sense of
|
||
|
guard test. Increase size of stack reserved and increase size before
|
||
|
the current stack pointer. Use pointers when doing arithmetic.
|
||
|
(dll_crt0_1): Initialize exception handler when we notice we're the
|
||
|
child of a fork from non-main thread.
|
||
|
* fork.cc (frok::parent): Make argument volatile.
|
||
|
(frok::child): Ditto.
|
||
|
(lock_signals): New class.
|
||
|
(lock_pthread): Ditto.
|
||
|
(hold_everhthing): Ditto.
|
||
|
(frok::parent): Move atforkprepare and atforkparent to lock_pthread
|
||
|
class.
|
||
|
(fork): Make ischild boolean. Use hold_everything variable within
|
||
|
limited scope to set various mutexes in such a way as to avoid
|
||
|
deadlocks.
|
||
|
* thread.h (pthread_mutex::tid): New variable, active when debugging
|
||
|
for tracking thread id of owner.
|
||
|
(pthread_mutex::set_owner): Set tid when debugging.
|
||
|
* thread.cc (pthread_mutex::pthread_mutex): Clear tid.
|
||
|
(pthread_mutex::_unlock): Ditto when unlocking.
|
||
|
(pthread_mutex::fixup_after_fork): Set tid to special value after
|
||
|
forking since owner is unknown.
|
||
|
|
||
|
2007-02-22 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
Throughout replace all usage of wincap.shared with the constant
|
||
|
FILE_SHARE_VALID_FLAGS.
|
||
|
* fhandler.cc (fhandler_base::open_9x): Drop local variable shared.
|
||
|
* wincap.cc: Remove shared member throughout.
|
||
|
* wincap.h: Ditto.
|
||
|
|
||
|
2007-02-22 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* Makefile.in (DLL_IMPORTS): Add libntdll.a.
|
||
|
* autoload.cc: Remove all symbols from advapi32.dll, kernel32.dll and
|
||
|
ntdll.dll available on all platforms since NT4.
|
||
|
|
||
|
Throughout remove all usage of wincap.is_winnt.
|
||
|
* dcrt0.cc (dll_crt0_0): Remove call to mmap_init.
|
||
|
* fhandler.h (class fhandler_base): Remove has_changed flag.
|
||
|
(fhandler_disk_file::touch_ctime): Remove declaration.
|
||
|
(fhandler_disk_file::readdir_9x): Ditto.
|
||
|
(fhandler_disk_file::touch_ctime): Remove.
|
||
|
(fhandler_disk_file::readdir_9x): Remove.
|
||
|
(fhandler_disk_file::closedir): Call NtClose instead of CloseHandle.
|
||
|
* mmap.cc: Throughout call CreateMapping and MapView directly.
|
||
|
(VirtualProt9x): Remove.
|
||
|
(VirtualProtNT): Remove.
|
||
|
(VirtualProtEx9x): Remove.
|
||
|
(VirtualProtExNT): Remove.
|
||
|
(VirtualProtect): Remove define.
|
||
|
(VirtualProtectEx): Remove define.
|
||
|
(CreateMapping9x): Remove.
|
||
|
(CreateMappingNT): Rename to CreateMapping.
|
||
|
(MapView9x): Remove.
|
||
|
(MapViewNT): Rename to MapView.
|
||
|
(struct mmap_func_t): Remove definition.
|
||
|
(mmap_funcs_9x): Remove.
|
||
|
(mmap_funcs_nt): Remove.
|
||
|
(mmap_func): Remove.
|
||
|
(mmap_init): Remove.
|
||
|
* net.cc (getdomainname): Drop comment. Use NT4 registry key only.
|
||
|
(get_95_ifconf): Remove.
|
||
|
* pinfo.cc (winpids::enumNT): Rename to winpids::enum_processes.
|
||
|
(winpids::enum9x): Remove.
|
||
|
(winpids::set): Just call enum_processes directly.
|
||
|
(winpids::enum_init): Ditto.
|
||
|
* pinfo.h (class winpids): Drop enum_processes pointer. Rename
|
||
|
enumNT to enum_processes. Drop enum9x declaration. Drop initialization
|
||
|
of enum_processes throughout.
|
||
|
* registry.cc (get_registry_hive_path): Just create NT key.
|
||
|
(load_registry_hive): Only load NT specific file.
|
||
|
* syscalls.cc (unlink_9x): Remove.
|
||
|
(unlink): Just call unlink_nt.
|
||
|
* wincap.cc: Remove is_winnt flag throughout.
|
||
|
* wincap.h: Ditto.
|
||
|
* winsup.h: Remove mmap_init declaration.
|
||
|
|
||
|
2007-02-21 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* wincap.cc (wincap_unknown): Change settings for unknown to reflect
|
||
|
the capabilities of NT4.
|
||
|
(wincap_95): Remove.
|
||
|
(wincap_95osr2): Remove.
|
||
|
(wincap_98): Remove.
|
||
|
(wincap_98se): Remove.
|
||
|
(wincap_me): Remove.
|
||
|
(wincap_nt3): Remove.
|
||
|
(wincapc::init): Temporarily bail out on any 9x system.
|
||
|
|
||
|
2007-02-20 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* cygwin.din (sem_unlink): Export.
|
||
|
* posix_ipc.cc: Include thread.h and semaphore.h. Remove TODO
|
||
|
comment.
|
||
|
(ipc_names): Add max_len member. Set to maximum length of the path
|
||
|
before tacking on the prefix path. Set prefix path for named semaphors
|
||
|
to /dev/shm, as on Linux.
|
||
|
(enum ipc_type_t): Change sem to semaphore to avoid name conflicts.
|
||
|
(check_path): Detect empty paths. Use ipc_names's max_len member.
|
||
|
Use __small_sprintf to create full object path name. Special case
|
||
|
semaphores.
|
||
|
(ipc_cond_init): Drop superfluous strcpy.
|
||
|
(class ipc_flock): New class to simplify file locking in subsequent
|
||
|
code.
|
||
|
(struct mq_hdr): Raise size of mqh_uname to allow adding a unique
|
||
|
LUID to the name.
|
||
|
(mq_open): Fix formatting. Create unique synchronization object names
|
||
|
using AllocateLocallyUniqueId.
|
||
|
(struct sem_finfo): New structure defining named semaphore file content.
|
||
|
(sem_open): Move here. Rework implementation to allow kernel
|
||
|
persistent implementation of POSIX named semaphores.
|
||
|
(_sem_close): Implement sem_close.
|
||
|
(sem_close): Move here. Just call _sem_close with do_close parameter
|
||
|
set to true.
|
||
|
(sem_unlink): New function.
|
||
|
* pthread.cc (mangle_sem_name): Remove.
|
||
|
(sem_open): Move to posix_ipc.cc.
|
||
|
(sem_close): Ditto.
|
||
|
* syscalls.cc (close_all_files): Call semaphore::terminate here.
|
||
|
* thread.cc: Fix formatting. Rearrange semaphore functions so that
|
||
|
they are close together.
|
||
|
(semaphore::semaphore): Rework to play nicely with new named semaphore
|
||
|
implementation.
|
||
|
(semaphore::_terminate): Call _sem_close if semaphore is a named
|
||
|
semaphore.
|
||
|
(semaphore::destroy): Don't destroy named semaphores. Return EINVAL
|
||
|
instead.
|
||
|
(semaphore::close): Only destroy named semaphores. Return EINVAL
|
||
|
otherwise.
|
||
|
(semaphore::open): Rework to play nicely with new named semaphore
|
||
|
implementation. Loop through existing semaphores to be able to
|
||
|
return same sem_t pointer as a former call on the same named semaphore.
|
||
|
(semaphore::getinternal): New function called from _sem_close.
|
||
|
* thread.h (class List): Make mx and head public.
|
||
|
(class semaphore): Fix formatting. Align method declarations with
|
||
|
implementation in thread.cc. Add members used for named semaphores.
|
||
|
(semaphore::terminate): New static method.
|
||
|
* include/semaphore.h: Redefine SEM_FAILED. Fix formatting.
|
||
|
(sem_unlink): Add declaration.
|
||
|
* include/cygwin/version.h: Bump API minor number.
|
||
|
|
||
|
2007-02-20 Christopher Faylor <me@cgf.cx>
|
||
|
|
||
|
* exceptions.cc (_cygtls::signal_exit): Only call myself.exit when when
|
||
|
exit_state indicates that we've visited do_exit.
|
||
|
* sync.h (lock_process::lock_process): Use renamed exit_state -
|
||
|
ES_PROCESS_LOCKED.
|
||
|
* winsup.h: Rename ES_MUTO_SET to ES_PROCESS_LOCKED.
|
||
|
|
||
|
2007-02-20 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_socket.cc (fhandler_socket::bind): Remove printing wrong
|
||
|
errno in debug output.
|
||
|
|
||
|
2007-02-19 Christopher Faylor <me@cgf.cx>
|
||
|
|
||
|
Remove extraneous whitespace.
|
||
|
* pinfo.cc (commune_process): Use default argument to lock_process.
|
||
|
* sigproc.cc: Update copyright.
|
||
|
* select.cc: Ditto.
|
||
|
|
||
|
2007-02-15 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* posix_ipc.cc (mq_open): Avoid compiler warning. Initialize mqhdr
|
||
|
before using it in file exists case.
|
||
|
* include/mqueue.h (mqd_t): Make non-pointer type.
|
||
|
|
||
|
2007-02-15 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* posix_ipc.cc (ipc_mutex_init): Create global object name.
|
||
|
(ipc_cond_init): Ditto.
|
||
|
(struct mq_hdr): Add mqh_uname member to store synchronization object
|
||
|
name.
|
||
|
(mq_open): Create unique synchronization object name and store in
|
||
|
mq_hdr->mqh_uname. Use this name in calls to ipc_mutex_init and
|
||
|
ipc_cond_init.
|
||
|
|
||
|
2007-02-14 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* Makefile.in (DLL_OFILES): Add posix_ipc.o.
|
||
|
* cygwin.din (mq_close): Export.
|
||
|
(mq_getattr): Export.
|
||
|
(mq_notify): Export.
|
||
|
(mq_open): Export.
|
||
|
(mq_receive): Export.
|
||
|
(mq_send): Export.
|
||
|
(mq_setattr): Export.
|
||
|
(mq_timedreceive): Export.
|
||
|
(mq_timedsend): Export.
|
||
|
(mq_unlink): Export.
|
||
|
* posix_ipc.cc: New file implementing the above functions. Move
|
||
|
shm_open and shm_unlink from syscalls.cc here.
|
||
|
* sysconf.cc (sca): Set value of _SC_MQ_OPEN_MAX to MQ_OPEN_MAX,
|
||
|
_SC_MQ_PRIO_MAX to MQ_PRIO_MAX, _SC_MESSAGE_PASSING to
|
||
|
_POSIX_MESSAGE_PASSING.
|
||
|
* include/limits.h (MQ_OPEN_MAX): Define.
|
||
|
(MQ_PRIO_MAX): Define.
|
||
|
* include/mqueue.h: New file.
|
||
|
* include/cygwin/version.h: Bump API minor number.
|
||
|
|
||
|
2007-02-13 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* include/cygwin/stdlib.h (valloc): Declare.
|
||
|
(memalign): Declare.
|
||
|
|
||
|
2007-02-09 Pierre A. Humblet <Pierre.Humblet@ieee.org>
|
||
|
|
||
|
* libc/minires-os-if.c (write_record): Handle DNS_TYPE_SRV and
|
||
|
some obsolete types.
|
||
|
|
||
|
2007-02-08 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* syscalls.cc (check_shm): New static function to do path checking
|
||
|
common to shm_open and shm_unlink. Check for /dev/shm existance.
|
||
|
(shm_open): Call check_shm.
|
||
|
(shm_unlink): Ditto.
|
||
|
|
||
|
2007-02-08 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* cygwin.din (shm_open): Export.
|
||
|
(shm_unlink): Export.
|
||
|
* syscalls.cc (shm_open): New function.
|
||
|
(shm_unlink): New function.
|
||
|
* sysconf.cc (sca): Set value of _SC_SHARED_MEMORY_OBJECTS to
|
||
|
_POSIX_SHARED_MEMORY_OBJECTS.
|
||
|
* include/cygwin/version.h: Bump API minor number.
|
||
|
* include/sys/mman.h (shm_open): Add prototype.
|
||
|
(shm_unlink): Ditto.
|
||
|
|
||
|
2007-02-08 Christopher Faylor <me@cgf.cx>
|
||
|
Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* cygmalloc.h (__set_ENOMEM): Declare.
|
||
|
(MALLOC_FAILURE_ACTION): Call __set_ENOMEM.
|
||
|
* malloc_wrapper.cc (malloc) Remove setting errno here.
|
||
|
(realloc): Ditto.
|
||
|
(calloc): Ditto.
|
||
|
(memalign): Ditto.
|
||
|
(valloc): Ditto.
|
||
|
(posix_memalign): Save and restore errno.
|
||
|
|
||
|
2007-02-07 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* cygmalloc.h (MALLOC_FAILURE_ACTION): Move to correct #if branch.
|
||
|
|
||
|
2007-02-07 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* cygmalloc.h (MALLOC_FAILURE_ACTION): Define empty.
|
||
|
* cygwin.din (posix_madvise): Export.
|
||
|
(posix_memalign): Export.
|
||
|
* fhandler.cc (fhandler_base::fpathconf): Return useful values in
|
||
|
_PC_VDISABLE, _PC_SYNC_IO and _PC_SYMLINK_MAX cases.
|
||
|
* malloc_wrapper.cc (malloc): Set errno here since it's not set in
|
||
|
dlmalloc.c anymore.
|
||
|
(realloc): Ditto.
|
||
|
(calloc): Ditto.
|
||
|
(memalign): Ditto.
|
||
|
(valloc): Ditto.
|
||
|
(posix_memalign): New function.
|
||
|
* mmap.cc (posix_madvise): New function.
|
||
|
* sysconf.cc (get_open_max): New function.
|
||
|
(get_page_size): Ditto.
|
||
|
(get_nproc_values): Ditto.
|
||
|
(get_avphys): Ditto.
|
||
|
(sc_type): New type.
|
||
|
(sca): New array to map _SC_xxx options to sysconf return values.
|
||
|
(sysconf): Reimplement using sca array.
|
||
|
* include/limits.h: Add all missing values as defined by SUSv3.
|
||
|
* include/pthread.h (PTHREAD_DESTRUCTOR_ITERATIONS): Move definition
|
||
|
to sys/limits.h.
|
||
|
(PTHREAD_KEYS_MAX): Ditto.
|
||
|
* include/semaphore.h (SEM_VALUE_MAX): Ditto.
|
||
|
* include/cygwin/stdlib.h (posix_memalign): Declare.
|
||
|
* include/cygwin/version.h: Bump API minor number.
|
||
|
* include/sys/mman.h: Add posix_madvise flags.
|
||
|
(posix_madvise): Declare.
|
||
|
* include/sys/termios.h (_POSIX_VDISABLE): Move definition to
|
||
|
sys/limits.h.
|
||
|
|
||
|
2007-02-05 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_serial.cc (fhandler_serial::tcsetattr): Add support for
|
||
|
baud rates up to 3000000 baud. Add missing 128K and 256K cases.
|
||
|
(fhandler_serial::tcgetattr): Ditto.
|
||
|
* include/sys/termios.h: Add baud rate definitions from B460800 up to
|
||
|
B3000000.
|
||
|
|
||
|
2007-02-02 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* syscalls.cc (unlink_nt): Add missing assignment in case NtClose fails.
|
||
|
|
||
|
2007-02-01 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* net.cc (ga_dup): New function, taken from ga_clone with v4-in-v6
|
||
|
mapping addition.
|
||
|
(ga_clone): Just call ga_dup from here.
|
||
|
(ga_duplist): New function to duplicate list of struct addrinfo.
|
||
|
(ga_echeck): Don't check ai_flags, it already happened in
|
||
|
cygwin_getaddrinfo.
|
||
|
(cygwin_freeaddrinfo): Always call ipv4_freeaddrinfo.
|
||
|
(cygwin_getaddrinfo): Use new wincap.supports_all_posix_ai_flags
|
||
|
flag rather than wincap.has_gaa_on_link_prefix. Always duplicate
|
||
|
WinSock's addrinfo list to a self-allocated list. Handle AI_V4MAPPED
|
||
|
for pre-Vista platforms supporting getaddrinfo.
|
||
|
* wincap.h (wincapc::supports_all_posix_ai_flags): New element.
|
||
|
* wincap.cc: Implement above element throughout.
|
||
|
* include/netdb.h: Note how AI_ADDRCONFIG is not supported pre-Vista.
|
||
|
Remove superfluous comment.
|
||
|
|
||
|
2007-02-01 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* include/cygwin/socket.h: Add IPv6 socket options.
|
||
|
|
||
|
2007-01-31 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* net.cc (cygwin_getaddrinfo): Fix thinko in AI_ADDRCONFIG handling.
|
||
|
|
||
|
2007-01-31 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* net.cc (cygwin_getaddrinfo): Check ai_flags for valid values.
|
||
|
Handle AI_NUMERICSERV. Handle AI_ADDRCONFIG behaviour on Vista.
|
||
|
* include/netdb.h (AI_NUMERICSERV): Add missing flag.
|
||
|
|
||
|
2007-01-30 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_disk_file.cc (fhandler_disk_file::closedir): Add dir name
|
||
|
to debug output.
|
||
|
* syscalls.cc (try_to_bin): Enable code to move file to user specific
|
||
|
recycler dir to eliminate Vista problem.
|
||
|
(unlink_nt): Add comment that rename after opening for delete on close
|
||
|
only fails on XP.
|
||
|
|
||
|
2007-01-30 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* sigproc.cc (child_info::child_info): Set msv_count to non-zero
|
||
|
value only on systems requiring it.
|
||
|
|
||
|
2007-01-28 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* include/ftw.h: Include sys/cdefs.h.
|
||
|
|
||
|
2007-01-26 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_disk_file.cc (fhandler_disk_file::rmdir): Implement rmdir
|
||
|
on NT by calling unlink_nt. Check for directory here.
|
||
|
* syscalls.cc (try_to_bin): Fix buggy debug_printf statement.
|
||
|
(unlink_nt): Make non-static. Don't use delete-on-close semantics on
|
||
|
directories. Explain why.
|
||
|
|
||
|
2007-01-24 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* net.cc (if_nametoindex): This time, really free IP_ADAPTER_ADDRESSES
|
||
|
memory.
|
||
|
(if_indextoname): Ditto.
|
||
|
|
||
|
2007-01-24 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* security.h (pop_thread_privilege): Revert to previous state, not
|
||
|
to token used for impersonation.
|
||
|
|
||
|
2007-01-24 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* cygheap.h (cygheap_user::deimpersonate): Always RevertToSelf.
|
||
|
|
||
|
2007-01-23 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* net.cc (gai_errmap): Add EAI_OVERFLOW entry. Fix formatting.
|
||
|
(cygwin_gai_strerror): Drop using EAI_MAX.
|
||
|
(w32_to_gai_err): Ditto.
|
||
|
* include/netdb.h: Define EAI_OVERFLOW. Remove EAI_MAX.
|
||
|
|
||
|
2007-01-23 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* include/netdb.h: Add AI_xxx flags available since Vista.
|
||
|
|
||
|
2007-01-23 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* net.cc (if_nametoindex): Free IP_ADAPTER_ADDRESSES memory.
|
||
|
(if_indextoname): Ditto.
|
||
|
(if_nameindex): Ditto. Remove duplicate indexed entries in result.
|
||
|
|
||
|
2007-01-21 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* autoload.cc (WSAIoctl): Define.
|
||
|
(SendARP): Define.
|
||
|
* cygwin.din: Export if_freenameindex, if_indextoname, if_nameindex and
|
||
|
if_nametoindex.
|
||
|
* fhandler_procnet.cc: Drop including wchar.h. Drop definitions of
|
||
|
GAA_FLAG_INCLUDE_ALL_INTERFACES, IP_ADAPTER_UNICAST_ADDRESS_VISTA.
|
||
|
(fhandler_procnet::exists): Check for has_gaa_prefixes. Call
|
||
|
get_adapters_addresses here.
|
||
|
(fhandler_procnet::readdir): Ditto.
|
||
|
(prefix): Move to net.cc.
|
||
|
(fhandler_procnet::fill_filebuf): Call get_adapters_addresses here.
|
||
|
Simplify allocation. Use AdapterName rather than FriendlyName as
|
||
|
interface name. Use IfIndex if available, Ipv6IfIndex otherwise.
|
||
|
(in6_are_prefix_equal): Move to net.cc.
|
||
|
* fhandler_socket.cc: Define old SIOCGxxx values.
|
||
|
(CONV_OLD_TO_NEW_SIO): Convert old SIOCGxxx value to new one.
|
||
|
(struct __old_ifreq): Define old struct ifreq.
|
||
|
(fhandler_socket::ioctl): Handle old SIOCGxxx values. Handle new
|
||
|
SIOCGIFFRNDLYNAM command. Simplify copying ifreq data to user space.
|
||
|
Call get_ifconf with additional SOCKET parameter.
|
||
|
* net.cc (IP_ADAPTER_UNICAST_ADDRESS_LH): Define.
|
||
|
(IP_ADAPTER_ADDRESSES_LH): Define.
|
||
|
(SIO_GET_INTERFACE_LIST): Define.
|
||
|
(sockaddr_in6_old): Define.
|
||
|
(sockaddr_gen): Define.
|
||
|
(INTERFACE_INFO): Define.
|
||
|
(IN_LOOPBACK): Define.
|
||
|
(in_are_prefix_equal): New static function.
|
||
|
(ip_addr_prefix): New function, replaces prefix function, add AF_INET
|
||
|
handling.
|
||
|
(GAA_FLAG_INCLUDE_ALL_INTERFACES): Define.
|
||
|
(get_adapters_addresses): New function.
|
||
|
(WS_IFF_xxx): Define Winsock interface flag values.
|
||
|
(convert_ifr_flags): New function to convert Winsock interface flag
|
||
|
values to Cygwin interface flag values.
|
||
|
(get_xp_ifconf): New get_ifconf implementation for XP SP1 and above.
|
||
|
(get_2k_ifconf): Fix interface index. Fix formatting.
|
||
|
(get_nt_ifconf): Fix formatting.
|
||
|
(get_95_ifconf): Ditto.
|
||
|
(get_ifconf): Take additional SOCKET parameter. Call get_xp_ifconf
|
||
|
on XP SP1 and above.
|
||
|
(if_nametoindex): New function.
|
||
|
(if_indextoname): New function.
|
||
|
(if_nameindex): New function.
|
||
|
(if_freenameindex): New function.
|
||
|
(in6_are_prefix_equal): Moved here from fhandler_procnet.cc.
|
||
|
* wincap.cc (wincap_xp): Define has_gaa_prefixes as true by default.
|
||
|
(wincapc::init): Assume has_osversioninfoex by default. Call
|
||
|
GetVersionEx with OSVERSIONINFOEX first. Call with OSVERSIONINFO only
|
||
|
if that fails. Simplify NT4 case and try to avoid strcmp. Check XP
|
||
|
Service Pack using version.wServicePackMajor to avoid strcmp.
|
||
|
* include/asm/socket.h (SIOCGIFFRNDLYNAM): Define.
|
||
|
* include/cygwin/if.h: Fix formatting.
|
||
|
(IFF_POINTTOPOINT): Define.
|
||
|
(IFF_NOARP): Define.
|
||
|
(IFF_LOWER_UP): Define.
|
||
|
(IFF_DORMANT): Define.
|
||
|
(struct if_nameindex): Define.
|
||
|
(IFRF_FRIENDLYNAMESIZ): Define.
|
||
|
(struct ifreq_frndlyname): Define.
|
||
|
(IFNAMSIZ): Redefine as 44.
|
||
|
(IF_NAMESIZE): Define.
|
||
|
(struct ifreq): Redefine ifru_flags as int. Define ifru_data. Pad size
|
||
|
to sizeof sockaddr_in6 for further extensions.
|
||
|
(ifr_data): Define.
|
||
|
(ifr_frndlyname): Define.
|
||
|
(if_nametoindex): Declare.
|
||
|
(if_indextoname): Declare.
|
||
|
(if_nameindex): Declare.
|
||
|
(if_freenameindex): Declare.
|
||
|
* include/cygwin/version.h: Bump API minor number.
|
||
|
(CYGWIN_VERSION_CHECK_FOR_OLD_IFREQ): Define check for old vs. new
|
||
|
ifreq structure.
|
||
|
|
||
|
2007-01-18 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* spawn.cc (spawn_guts): Don't set cwd for non-Cygwin child processes
|
||
|
on NT to allow starting them in virtual directories.
|
||
|
|
||
|
2007-01-18 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* mmap.cc (list::hash): Fix type to __ino64_t.
|
||
|
(list::get_hash): Ditto.
|
||
|
(list::set): Add struct stat parameter. Use that instead of calling
|
||
|
fstat.
|
||
|
(map::get_list_by_fd): Ditto.
|
||
|
(map::add_list): Ditto.
|
||
|
(mmap_is_attached_or_noreserve): Call get_list_by_fd appropriately.
|
||
|
(mmap_worker): Add pameters for map list and file stat information.
|
||
|
Propagate to called functions.
|
||
|
(mmap64): Use fstat on files early. Replace call to GetFileSize.
|
||
|
Call get_list_by_fd and mmap_worker appropriately.
|
||
|
|
||
|
2007-01-18 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_procnet.cc: Drop declaration of htonl and ntohs. Include
|
||
|
asm/byteorder.h instead.
|
||
|
|
||
|
2007-01-18 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* include/cygwin/in6.h: Drop inclusion of asm/byteorder.h.
|
||
|
* fhandler_procnet.cc: Declare htonl and ntohs here.
|
||
|
|
||
|
2007-01-17 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* Makefile.in (DLL_OFILES): Add fhandler_procnet.o.
|
||
|
* autoload.cc (GetAdaptersAddresses): Define.
|
||
|
* devices.h (FH_PROCNET): Define new device.
|
||
|
* devices.in (dev_procnet_storage): Add "/proc/net" entry.
|
||
|
* devices.cc: Regenerate.
|
||
|
* dir.cc (readdir_worker): Use isproc_dev macro.
|
||
|
* dtable.cc (build_fh_pc): Add FH_PROCNET.
|
||
|
* fhandler.h (class fhandler_procnet): New class.
|
||
|
* fhandler_proc.cc: Add "net" subdirectory handling.
|
||
|
* fhandler_procnet.cc: New file handling "/proc/net" directory.
|
||
|
* path.cc (isvirtual_dev): Move to path.h.
|
||
|
* path.h (isproc_dev): New macro to identify /proc files by device.
|
||
|
(isvirtual_dev): Moved here. Define using isproc_dev.
|
||
|
* syscalls.cc (unlink): Use isproc_dev macro.
|
||
|
* wincap.h (wincapc::has_gaa_prefixes): New element.
|
||
|
(wincapc::has_gaa_on_link_prefix): New element.
|
||
|
* wincap.cc: Implement above elements throughout.
|
||
|
(wincapc::init): Check XP for service pack and set has_gaa_prefixes
|
||
|
appropriately.
|
||
|
* include/cygwin/in6.h: Include asm/byteorder.h.
|
||
|
|
||
|
2007-01-17 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* include/asm/socket.h (SIOGIFINDEX): Define.
|
||
|
|
||
|
2007-01-17 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* mmap.cc (MapView9x): Note possible uselessness of retrying.
|
||
|
(MapViewNT): Ditto.
|
||
|
(mmap64): Fix pre-reservation to work for non NULL, non MAP_FIXED.
|
||
|
|
||
|
2007-01-16 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* autoload.cc (RtlAnsiStringToUnicodeString): Define.
|
||
|
(RtlOemStringToUnicodeString): Define.
|
||
|
* ntdll.h (struct _RTL_USER_PROCESS_PARAMETERS): Define.
|
||
|
(struct _PEB): Redefine with a bit of content.
|
||
|
(RtlAnsiStringToUnicodeString): Declare.
|
||
|
(RtlOemStringToUnicodeString): Declare.
|
||
|
* path.cc: Include ntdll.h.
|
||
|
(_upp): New global variable pointing to user process parameter block.
|
||
|
(get_user_proc_parms): New static function to retrieve user process
|
||
|
parameter block.
|
||
|
(close_user_proc_parms_cwd_handle): New function to close handle to
|
||
|
current working directory in user process parameter block.
|
||
|
(cwdstuff::init): Drop redundant declaration of dynamically_loaded.
|
||
|
Set current dir only on 9x. Call close_user_proc_parms_cwd_handle
|
||
|
on NT instead.
|
||
|
(cwdstuff::keep_in_sync): Only on 9x.
|
||
|
(cwdstuff::set): Keep behaviour on 9x. On NT write cwd path into user
|
||
|
process parameter block and set cwd handle to NULL. Fix comments to
|
||
|
reflect new behaviour.
|
||
|
|
||
|
2007-01-16 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_socket.cc (fhandler_socket::ioctl): Handle SIOCGIFINDEX.
|
||
|
* net.cc (get_2k_ifconf): Ditto.
|
||
|
(get_nt_ifconf): Fake SIOCGIFINDEX.
|
||
|
(get_95_ifconf): Ditto.
|
||
|
(get_ifconf): Handle SIOCGIFINDEX. Fake it for loopback on systems
|
||
|
not supporting IP Helper Lib.
|
||
|
* include/asm/socket.h (SIOCGIFINDEX): Define.
|
||
|
* include/cygwin/if.h (struct ifreq): Add member for interface index.
|
||
|
(ifr_ifindex): Define.
|
||
|
|
||
|
2007-01-16 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* include/cygwin/in6.h (struct ipv6_mreq): Change type of interface
|
||
|
member to uint32_t.
|
||
|
(struct in6_pktinfo): Ditto.
|
||
|
|
||
|
2007-01-16 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* include/cygwin/in.h (struct ip_mreq_source): Define.
|
||
|
(struct ip_msfilter): Define.
|
||
|
(IP_MSFILTER_SIZE): Define.
|
||
|
(struct in_pktinfo): Define.
|
||
|
(struct group_req): Define.
|
||
|
(struct group_source_req): Define.
|
||
|
(struct group_filter): Define.
|
||
|
(GROUP_FILTER_SIZE): Define.
|
||
|
(INADDR_ALLRTRS_GROUP): Define.
|
||
|
* include/cygwin/socket.h: Define protocol agnostic multicast options.
|
||
|
|
||
|
2007-01-15 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* CYGWIN_LICENSE: Fix web pages and contact information.
|
||
|
|
||
|
2007-01-15 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* ntdll.h: Adjust status definitions.
|
||
|
|
||
|
2007-01-15 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* cygheap.cc (cygheap_init): Add TODO comment.
|
||
|
|
||
|
2007-01-15 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* ntdll.h (STATUS_SHARING_VIOLATION): Define.
|
||
|
|
||
|
2007-01-13 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* syscalls.cc (unlink_nt): Don't move files to recycle bin which are
|
||
|
not in use.
|
||
|
|
||
|
2007-01-13 Christopher Faylor <me@cgf.cx>
|
||
|
|
||
|
* glob.cc: Update copyright notice with latest from FreeBSD.
|
||
|
(glob0): Use correct type for c variable to propagate previously
|
||
|
detected protection.
|
||
|
|
||
|
2007-01-12 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* cygheap.cc (_csbrk): Fix off-by-one error.
|
||
|
* cygwin.sc: Give .cygheap a minimum size of 512K.
|
||
|
|
||
|
2007-01-12 Christopher Faylor <me@cgf.cx>
|
||
|
|
||
|
* external.cc (sync_winenv): Use cur_environ () rather than
|
||
|
__cygwin_environ.
|
||
|
|
||
|
2007-01-12 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fork.cc (child_copy): Add missing Windows PID in debug output.
|
||
|
|
||
|
2007-01-12 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* syscalls.cc: Update copyright.
|
||
|
|
||
|
2007-01-10 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* mmap.cc (mmap64): Pre-Reserve space for the whole mapping to get a
|
||
|
useful, valid address before the actual mappings take place.
|
||
|
Fix typo in comment.
|
||
|
|
||
|
2007-01-10 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* syscalls.cc (sync): Use b_drive for B: drive (Thanks to Howard Chu).
|
||
|
|
||
|
2007-01-09 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* syscalls.cc (getpagesize): Change condition for clarity.
|
||
|
(getsystempagesize): Ditto.
|
||
|
|
||
|
2007-01-09 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* mmap.cc: Do bookkeeping in 4K pages, rather than in 64K chunks.
|
||
|
|
||
|
2007-01-07 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* security.h (setacl): Add parameter for writability flag.
|
||
|
* sec_acl.cc (setacl): Ditto. Set to true if any ACE with write
|
||
|
permissions is created.
|
||
|
* fhandler_disk_file.cc (fhandler_disk_file::facl): Reset
|
||
|
FILE_ATTRIBUTE_READONLY if ACL contains an ACE with write permissions.
|
||
|
|
||
|
2007-01-05 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* include/strings.h: Don't include string.h. Only declare functions
|
||
|
according to SUSv3.
|
||
|
|
||
|
2007-01-04 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
(get_ifconf): Set MTU for loopback to more correct value.
|
||
|
|
||
|
2007-01-04 Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler_socket.cc (fhandler_socket::ioctl): Don't fake results
|
||
|
for SIOCGIFFLAGS here. Call get_ifconf instead.
|
||
|
* net.cc (get_2k_ifconf): Clean up code to generate interface name.
|
||
|
Handle SIOCGIFFLAGS here.
|
||
|
(get_nt_ifconf): Fake SIOCGIFFLAGS here.
|
||
|
(get_95_ifconf): Ditto.
|
||
|
(get_ifconf): Don't fake loopback on systems with IP Helper Lib.
|
||
|
Set MTU for loopback to a more "modern" value.
|
||
|
|
||
|
2007-01-04 Brian Ford <Brian.Ford@FlightSafety.com>
|
||
|
Corinna Vinschen <corinna@vinschen.de>
|
||
|
|
||
|
* fhandler.h (PREFERRED_IO_BLKSIZE): Define as 64K.
|
||
|
* fhandler.cc (fhandler_base::fstat): Set st_blksize to
|
||
|
PREFERRED_IO_BLKSIZE.
|
||
|
* fhandler_disk_file.cc (fhandler_base::fstat_helper): Ditto.
|
||
|
* fhandler_mailslot.cc (fhandler_mailslot::fstat): Ditto.
|
||
|
* fhandler_raw.cc (fhandler_dev_raw::fstat): Ditto.
|
||
|
|
||
|
2007-01-01 Christopher Faylor <me@cgf.cx>
|
||
|
|
||
|
* spawn.cc (spawn_guts): Don't expect synchronization from a non-cygwin
|
||
|
_P_NOWAIT process.
|