Corinna Vinschen
0d3f365881
* fhandler.h (dirent_states): Add dirent_nfs_d_ino state and add it to
...
dirent_info_mask.
* fhandler_disk_file.cc (fhandler_disk_file::opendir): Set
dirent_nfs_d_ino flag for NFS shares. Explain why.
(fhandler_disk_file::readdir): Use FileNamesInformation instead of
FileBothDirectoryInformation info class on NFS clients not supporting
the FileIdBothDirectoryInformation info class. Use local pointers to
accommodate different offsets.
* path.cc (symlink_info::check): Don't test directories for symlinks
on NFS shares. Enhance comment.
2008-05-21 09:02:42 +00:00
Corinna Vinschen
2762ac6c19
* syscalls.cc (FILTERED_MODE): Define valid chmod mode mask.
...
(chmod): Call fh->fchmod with filtered mode.
(fchmod): Ditto.
2008-05-21 08:05:53 +00:00
Corinna Vinschen
6e961ccc7e
* fhandler_disk_file.cc (fhandler_disk_file::fchmod): Fix test for
...
S_IFSOCK in mode bits.
2008-05-20 21:08:39 +00:00
Corinna Vinschen
28259ba2dd
* path.cc (symlink_worker): Fix EA buffer size info given to
...
NtCreateFile.
(symlink_info::check_nfs_symlink): Get 64K buffer for EA buffer.
Change EA buffer size info given to NtQueryEaFile accordingly.
2008-05-20 18:26:45 +00:00
Corinna Vinschen
c44e0ba1f5
* path.cc (symlink_info::check_shortcut): Minimize requested file
...
access flags.
(symlink_info::check_sysfile): Ditto. Add missing `else'.
(symlink_info::check): Only retry to open file if first try failed
with access denied.
2008-05-20 18:19:32 +00:00
Corinna Vinschen
4c5627e7e2
* path.cc (fs_info::update): Re-add opening the unsplitted path
...
for fillout_mntent's sake.
2008-05-20 17:18:08 +00:00
Corinna Vinschen
ec0165f29c
* fhandler_disk_file.cc (fhandler_disk_file::mkdir): Create directories
...
on NFS shares with correct mode bits.
2008-05-20 16:24:06 +00:00
Corinna Vinschen
316d9cabfe
* winsup.h (cygwin_inet_addr): Fix type of declaration.
2008-05-20 15:39:26 +00:00
Corinna Vinschen
fe6934da14
* Makefile.in (DLL_OFILES): Add nfs.o.
...
* fhandler.cc (fhandler_base::open): Open files on NFS shares with
correct access flags and EAs.
* fhandler.h (fhandler_base::fstat_by_nfs_ea): Declare.
* fhandler_disk_file.cc (fhandler_base::fstat_by_nfs_ea): New method.
(fhandler_base::fstat_by_handle): Call fstat_by_nfs_ea for files on
NFS shares.
(fhandler_disk_file::fchmod): Use NFS specific method to set mode for
files on NFS shares. Don't overrule errno from call to
set_file_attribute with errno from NtSetInformationFile call.
(fhandler_disk_file::fchown): Add comment.
* mount.cc (fillout_mntent): Accommodate change in second parameter
to fs_info::update.
* nfs.cc: New file.
* nfs.h: New file.
* path.cc (fs_info::update): Take handle instead of bool as second
parameter. Use that handle if it's not NULL. Only close handle if
it has been opened here. Use static defined buffers instead of
alloca'd buffers.
(path_conv::check): Call symlink_info::check with reference to fs.
Don't call fs.update here if file exists.
(conv_path_list): Prefer tmp_pathbuf buffer over using alloca.
(symlink_worker): Use NFS specific method to create symlinks on NFS
shares. Prefer tmp_pathbuf buffer over using alloca.
(symlink_info::check_shortcut): Reopen file from incoming handle
with necessary FILE_GENERIC_READ flag. Prefer tmp_pathbuf buffer over
using alloca.
(symlink_info::check_sysfile): Ditto.
(symlink_info::check_reparse_point): Use tmp_pathbuf buffer to
allocate REPARSE_DATA_BUFFER.
(symlink_info::check_nfs_symlink): New method.
(enum symlink_t): Remove.
(symlink_info::check): Don't use NtQueryAttributesFile. Rather, open
file with necessary access flags and call NtQueryInformationFile. Fix
error handling in case file can't be opened. For existing files, call
fs_info::update here. Restructure symlink checking to accommodate the
fact that the file is already open. Add case for NFS symlinks.
* path.h (fs_info::update): Take handle instead of bool as second
parameter.
2008-05-20 15:11:23 +00:00
Corinna Vinschen
2f33b79950
* syscalls.cc (rename): Fix condition when to start a transaction.
2008-05-20 10:24:25 +00:00
Corinna Vinschen
c211f8eb24
* path.cc (path_conv::check): Free wide_path and normalized_path if
...
necessary.
* path.h (path_conv::path_conv): Set wide_path, normalized_path and
normalized_path_size to 0 in all constructors.
2008-05-20 10:18:12 +00:00
Corinna Vinschen
78ee2ae11f
* syscalls.cc (rename): Allocate temporary path buffers using
...
tmp_pathbuf. Don't try to unset R/O attribute on dstpc if a
removepc exists. dstpc is a non-existant file in that case.
2008-05-19 20:22:29 +00:00
Christopher Faylor
a4e3764e51
* include/stdint.h: Use int rather than long for {u,}int32_t.
2008-05-17 21:34:05 +00:00
Corinna Vinschen
3ba70bba2f
* CYGWIN_LICENSE: Remove duplicate file here.
2008-05-16 08:40:07 +00:00
Corinna Vinschen
b61251603a
* syscalls.cc (rename): ONly start transaction if FS supports them.
2008-05-15 17:23:29 +00:00
Corinna Vinschen
4c153b24d9
* autoload.cc (LoadDLLfuncNt): Re-invent.
...
(NtCreateTransaction): Define.
(NtCommitTransaction): Define.
(NtRollbackTransaction): Define.
(RtlGetCurrentTransaction): Define.
(RtlSetCurrentTransaction): Define.
* ntdll.h (TRANSACTION_ALL_ACCESS): Define.
(NtCreateTransaction): Declare.
(NtCommitTransaction): Declare.
(NtRollbackTransaction): Declare.
(RtlGetCurrentTransaction): Declare.
(RtlSetCurrentTransaction): Declare.
* syscalls.cc (start_transaction): New static function to start TxF
transaction.
(stop_transaction): New static function to end TxF transaction.
(rename): Call start_transaction and stop_transaction where appropriate
on systems supporting transactions.
* wincap.h (wincaps::has_transactions): New element.
* wincap.cc: Implement above element throughout.
2008-05-15 16:34:01 +00:00
Corinna Vinschen
455acb11a4
* fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Drop
...
explicit transformation of special DOS chars.
* strfuncs.cc (sys_wcstombs): Always transform UNICODE private use area
back to ASCII.
2008-05-14 10:21:22 +00:00
Corinna Vinschen
39ce0b45e9
* include/cygwin/stdlib.h (initstate): Declare.
...
(setstate): Declare.
2008-05-13 13:56:06 +00:00
Corinna Vinschen
a9e9da89fa
* path.cc (path_conv::set_normalized_path): Drop strip_tail argument.
...
Never strip trailing dots and spaces.
* (path_conv::check): Accomodate above change.
* path.h (path_conv::operator=): Ditto
* dtable.cc (build_fh_dev): Ditto.
* fhandler.h (fhandler_base::set_name): Ditto.
* path.cc (transform_chars): Disable converting trailing dots and
spaces.
* path.cc (path_conv::check): Remove two disabled code snippets.
2008-05-13 13:44:04 +00:00
Corinna Vinschen
a065930a3a
* random.cc (initstate): Align to POSIX definition.
...
(setstate): Ditto.
2008-05-13 11:40:45 +00:00
Corinna Vinschen
1563f79fa8
* Makefile.in (DLL_OFILES): Remove _def_time.o.
...
* libc/_def_time.c: Remove. Move definitions of _DefaultTimeLocale
and _CurrentTimeLocale ...
* libc/strptime.cc: ... here.
2008-05-10 18:57:10 +00:00
Corinna Vinschen
12b830981e
* include/sys/localedef.h: Remove.
...
* libc/strptime.cc: Define _TimeLocale and declare _CurrentTimeLocale
as well as _DefaultTimeLocale locally for Cygwin.
2008-05-08 14:58:11 +00:00
Corinna Vinschen
72d1a8a04a
* Makefile.in (DLL_OFILES): Add _def_time.o. Remove timelocal.o.
...
* include/sys/localedef.h: New file from NetBSD.
* libc/_def_time.c: Ditto.
* libc/getopt.c: Update to latest OpenBSD version 1.23.
* libc/strptime.cc: Replace FreeBSD version 1.35 with latest NetBSD
version 1.28.
* libc/timelocal.cc: Remove.
* libc/timelocal.h: Remove.
2008-05-08 14:41:47 +00:00
Corinna Vinschen
7aefc1596d
* dtable.cc (dtable::release): Drop fixup_before handling.
...
(dtable::fixup_before_fork): Remove.
(dtable::fixup_before_exec): Remove.
* dtable.h (class dtable): Remove cnt_need_fixup_before member.
(dtable::dtable): Accommodate above change.
(dtable::dec_need_fixup_before): Remove.
(dtable::inc_need_fixup_before): Remove.
(dtable::need_fixup_before): Remove.
(dtable::fixup_before_exec): Remove declaration.
(dtable::fixup_before_fork): Ditto.
* fhandler.h (fhandler_base::fixup_before_fork_exec): Remove.
(fhandler_base::need_fixup_before): Remove.
* fork.cc (frok::parent): Drop fixup_before handling.
* spawn.cc (spawn_guts): Ditto.
2008-04-30 09:51:38 +00:00
Corinna Vinschen
7e2b8e7d2a
* mount.cc (is_unc_share): Allow \\?\ prefix as well. Enhance comment.
...
(mount_info::from_fstab): Remove patch from 2008-04-29.
* mount.cc (mount_info::conv_to_posix_path): Simplify test for native
UNC path.
* path.cc (normalize_win32_path): Ditto.
(symlink_worker): Ditto.
(symlink_info::posixify): Ditto.
(cygwin_conv_path): Ditto.
2008-04-30 08:49:23 +00:00
Corinna Vinschen
661efd2dea
* mount.cc (mount_info::from_fstab): Skip native path prefix in
...
module path.
2008-04-29 20:48:09 +00:00
Corinna Vinschen
59c7f5bcdf
* syscalls.cc (rename): Use volume serial numbers stored in path_conv
...
rather than fetching them here for the "same file" test. Change
comment to reflect this.
2008-04-29 09:24:54 +00:00
Corinna Vinschen
43657e6bd3
* path.cc (symlink_info::check): Avoid special handling for
...
STATUS_BUFFER_OVERFLOW when calling NtQueryDirectoryFile.
* strace.cc (strace::vprntf): Use bigger buffer.
2008-04-28 16:01:54 +00:00
Corinna Vinschen
08c76b4b9c
* kernel32.cc (CreateFileMappingW): Remove stray small_printf.
2008-04-28 11:13:03 +00:00
Corinna Vinschen
aacf1864d8
* autoload.cc (IsWow64Process): Remove.
...
(Wow64DisableWow64FsRedirection): Remove.
(Wow64RevertWow64FsRedirection): Remove.
* ntdll.h (enum _PROCESSINFOCLASS): Define ProcessWow64Information.
* init.cc (respawn_wow64_process): Use NtQueryInformationProcess to
get WOW64 state.
* wincap.cc (wincapc::init): Ditto.
* wincap.h (wincapc::wow64): Change type to ULONG.
2008-04-28 08:47:06 +00:00
Corinna Vinschen
533ce3fb55
* wincap.h (wincapc::wow64): Change type to BOOL.
...
* wincap.cc: Remove explicit use of this pointer in wincapc methods.
(wincapc::init): Fix bug in IsWow64Process handling.
2008-04-27 16:12:00 +00:00
Corinna Vinschen
346cdb434e
* dcrt0.cc (dll_crt0_0): Set SEM_NOGPFAULTERRORBOX error mode, too,
...
to accommodate Vista/Longhorn.
* spawn.cc (spawn_guts): Move check for CREATE_SUSPENDED condition
after the call to ch.set() since it depends on it.
2008-04-26 18:01:42 +00:00
Corinna Vinschen
2be644f280
* Makefile.in (install): Drop install rules for postinstall script.
2008-04-25 17:22:31 +00:00
Corinna Vinschen
2c84756d5d
* postinstall: Remove (Moved to base-cygwin package).
2008-04-25 17:13:27 +00:00
Corinna Vinschen
fccdf679f4
* fhandler.cc (fhandler_base::open): Move handling FILE_ATTRIBUTE_NORMAL
...
back to its old place. Or it to file_attributes instead of setting it.
2008-04-25 16:59:41 +00:00
Corinna Vinschen
703a42b96a
* fhandler.cc (fhandler_base::open): *Only* handle SYSTEM and HIDDEN
...
attributes in FILE_OVERWRITE case.
2008-04-25 16:50:29 +00:00
Corinna Vinschen
0dcfc3346a
* fhandler.cc (fhandler_base::open): Handle SYSTEM and HIDDEN attributes
...
in FILE_OVERWRITE case as well.
2008-04-25 16:33:01 +00:00
Corinna Vinschen
4214d0c04c
* fhandler_disk_file.cc (fhandler_base::fstat_helper): Disable calling
...
pc.ndisk_links. Just use nNumberOfLinks instead.
2008-04-24 17:15:17 +00:00
Corinna Vinschen
4e4eba83f8
* fhandler_disk_file.cc (fhandler_base::utimens_fs): Fix typo in
...
input range check.
2008-04-24 12:37:05 +00:00
Corinna Vinschen
eba32ec829
* cygwin.din (futimens): Export.
...
(utimensat): Export.
* fhandler.cc (fhandler_base::utimens): Replace fhandler_base::utimes.
Call utimens_fs.
* fhandler.h (class fhandler_base): Declare utimens_fs instead of
utimes_fs, utimens instead of utimes.
(class fhandler_disk_file): Declare utimens instead of utimes.
* fhandler_disk_file.cc (fhandler_disk_file::utimens): Replace
fhandler_disk_file::utimes.
(fhandler_base::utimens_fs): Replace fhandler_base::utimes_fs.
Implement tv_nsec handling according to SUSv4.
* syscalls.cc (utimensat): New function.
* times.cc (timespec_to_filetime): New function.
(timeval_to_timespec): New function.
(utimens_worker): Replace utimes_worker.
(utimes): Convert timeval to timespec and call utimens_worker.
(lutimes): Ditto.
(futimens): Take over implementation from futimes.
(futimes): Convert timeval to timespec and call futimens.
* winsup.h (timespec_to_filetime): Declare.
* include/cygwin/version.h: Bump API minor number.
* posix.sgml: Add SUSv4 section. Add futimens and utimensat to it.
2008-04-24 09:59:54 +00:00
Corinna Vinschen
a220e94953
* include/wait.h: New file.
2008-04-24 08:46:41 +00:00
Corinna Vinschen
4056e97a45
* posix.sgml: Add openat, faccessat, fchmodat, fchownat, fstatat,
...
futimesat, linkat, mkdirat, mkfifoat, mknodat, readlinkat, renameat,
symlinkat, unlinkat to list of implemented Solaris functions.
2008-04-23 11:19:57 +00:00
Corinna Vinschen
c57b57e5c4
* cygwin.din: Sort.
...
(faccessat): Export.
(fchmodat): Export.
(fchownat): Export.
(fstatat): Export.
(futimesat): Export.
(linkat): Export.
(mkdirat): Export.
(mkfifoat): Export.
(mknodat): Export.
(openat): Export.
(readlinkat): Export.
(renameat): Export.
(symlinkat): Export.
(unlinkat): Export.
* path.cc (readlink): Align definition to POSIX.
* syscalls.cc (gen_full_path_at): New static function.
(faccessat): Implement.
(fchmodat): Implement.
(fchownat): Implement.
(fstatat): Implement.
(futimesat): Implement.
(linkat): Implement.
(mkdirat): Implement.
(mkfifoat): Implement.
(mknodat): Implement.
(openat): Implement.
(readlinkat): Implement.
(renameat): Implement.
(symlinkat): Implement.
(unlinkat): Implement.
* include/cygwin/version.h: Bump API minor number.
2008-04-23 11:13:52 +00:00
Corinna Vinschen
9749fd082f
* dcrt0.cc (dll_crt0_0): Move CWD initialization from here...
...
(dll_crt0_1): ...to here.
2008-04-22 20:56:26 +00:00
Corinna Vinschen
949b58f6a0
* cygwin.din (fmemopen): Export.
...
(open_memstream): Export.
* include/cygwin/version.h: Bump API minor number.
2008-04-22 16:55:23 +00:00
Corinna Vinschen
b1138f3d4b
* sec_auth.cc (create_token): Add integrity level SID to token on
...
systems supporting that. Remove useless check for dynamically loading
NtCreateToken function.
* sec_helper.cc (mandatory_medium_integrity_sid): Define.
(mandatory_high_integrity_sid): Define.
(mandatory_system_integrity_sid): Define.
* sec_helper.h (mandatory_medium_integrity_sid): Declare.
(mandatory_high_integrity_sid): Declare.
(mandatory_system_integrity_sid): Declare.
2008-04-22 10:45:34 +00:00
Corinna Vinschen
c7364f1496
* mount.cc (mount_info::init): Remove call to from_registry. Print
...
message that fstab is missing.
(mount_info::from_fstab): Use CYGWIN_INFO_CYGDRIVE_DEFAULT_PREFIX
instead of constant string.
(mount_info::read_mounts): Remove.
(mount_info::from_registry): Remove.
(mount_info::read_cygdrive_info_from_registry): Remove.
* postinstall: Enable code to create fstab entries from old registry
entries.
* registry.cc (reg_key::reg_key): Drop CYGWIN_INFO_CYGNUS_REGISTRY_NAME
from registry key.
* shared_info.h (mount_info::read_mounts): Remove declaration.
(mount_info::from_registry): Ditto.
(mount_info::to_registry): Ditto.
(mount_info::read_cygdrive_info_from_registry): Ditto.
* winver.rc (CYGWIN_REGISTRY_KEY): Remove.
(LegalCopyright): Fix to include 2008.
(RegistryKey): Set to CYGWIN_INFO_CYGWIN_REGISTRY_NAME.
* include/cygwin/version.h (CYGWIN_INFO_CYGNUS_REGISTRY_NAME): Remove.
2008-04-21 14:00:24 +00:00
Corinna Vinschen
2bc35e6299
* kernel32.cc (CreateFileMappingW): Fix bug in reserve/commit handling.
2008-04-21 13:17:36 +00:00
Corinna Vinschen
abbde48704
* Makefile.in (DLL_OFILES): Add kernel32.o.
...
* autoload.cc (WSACloseEvent): Remove.
(WSACreateEvent): Remove.
* cygheap.cc (cygheap_init): Drop initializing shared_prefix.
* cygheap.h (struct init_cygheap): Drop shared_prefix and
shared_prefix_buf members.
* fhandler_socket.cc (sock_shared_name): New static function.
(search_wsa_event_slot): Convert name buffers to WCHAR. Call
NtCreateMutant/NtOpenMutant to create mutexes in session local
namespace.
(fhandler_socket::init_events): Ditto. Fix debug output.
(fhandler_socket::release_events): Close mutexes using NtClose.
(fhandler_socket::dup): Ditto.
* kernel32.cc: New file, implementing Win32 calls in a Cygwin-specific
way.
* mmap.cc (MapView): Make static.
* ntdll.h: Fix status code sorting.
(STATUS_OBJECT_NAME_EXISTS): Define.
(SEMAPHORE_QUERY_STATE): Define.
(CYG_SHARED_DIR_ACCESS): Define.
(CYG_MUTANT_ACCESS): Define.
(CYG_EVENT_ACCESS): Define.
(CYG_SEMAPHORE_ACCESS): Define.
(enum _PROCESSINFOCLASS): Define ProcessSessionInformation.
(struct _PROCESS_SESSION_INFORMATION): Define.
(NtCreateSemaphore): Declare.
(NtOpenSemaphore): Declare.
* flock.cc: Use CYG_xxx_ACCESS access masks where appropriate.
* posix_ipc.cc (ipc_mutex_init): Use native functions to create mutex.
Create in cygwin-shared subdir.
(ipc_cond_init): Ditto for event.
(ipc_mutex_close): Use NtClose.
(ipc_cond_close): Ditto.
(mq_open): Drop "cyg" prefix from mqh_uname.
* shared.cc (CYG_SHARED_DIR_ACCESS): Drop definition here.
(_cygwin_testing): Declare extern on file level.
(get_shared_parent_dir): Change name of shared directory. Add name
to api_fatal output.
(get_session_parent_dir): New function.
(shared_name): Simplify.
(shared_info::initialize): Call get_session_parent_dir.
* shared_info.h (get_session_parent_dir): Declare.
* smallprint.cc (__small_vswprintf): Fix bug in multibyte string
conversion.
* thread.cc (semaphore::semaphore): Align semaphore name to object
names in posix IPC functions.
* include/cygwin/version.h (CYGWIN_VERSION_SHARED_DATA): Bump.
2008-04-21 12:46:58 +00:00
Corinna Vinschen
70fab4ec71
Revert thinko in previous patch.
...
* fhandler.h (struct wsa_event): Move back from wsa_event.h to here.
* fhandler_socket.cc (NUM_SOCKS): Ditto.
(wsa_events): Move back from cygwin_shared to here. Accommodate
throughout.
(socket_serial_number): Ditto.
* shared_info.h: Accommodate above changes.
* wsa_event.h: Remove.
2008-04-18 20:30:04 +00:00