summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin
Commit message (Collapse)AuthorAgeFilesLines
* * fhandler_fifo.cc (fhandler_fifo::open): Avoid resetting errno after it hasChristopher Faylor2009-12-094-5/+17
| | | | | been explicitly set. * include/cygwin/version.h: Bump DLL minor version number to 2.
* * include/cygwin/version.h: Bump DLL minor version number to 1.Corinna Vinschen2009-12-062-1/+5
|
* * fhandler_socket.cc (send_internal): Don't split datagram messagesCorinna Vinschen2009-12-023-5/+23
| | | | | | | into pieces. * syslog.cc (vsyslog): Set default facility to LOG_USER if it hasn't been set yet.
* * fhandler_registry.cc (fhandler_registry::open): Mark /proc/registryCorinna Vinschen2009-12-012-0/+7
| | | | directory and siblings as nohandle fhandler.
* * speclib: Use last dll found since that's the real name of the cygwin DLL.Christopher Faylor2009-11-302-1/+6
|
* * fhandler_disk_file.cc (fhandler_base::fstat_helper): Fix typos inCorinna Vinschen2009-11-272-5/+12
| | | | | comments. Always open file synchronized when reading header bytes, otherwise suffer stack corruption.
* * dtable.cc (dtable::stdio_init): Use GetCurrentProcess() rather thanCorinna Vinschen2009-11-262-3/+13
| | | | | hMainProc as process handle when duplicating the stdout handle. Explain why. Add Win32 error code to debug output.
* * fhandler_socket.cc (fhandler_socket::fixup_before_fork_exec): AddCorinna Vinschen2009-11-233-5/+25
| | | | | | | | socket handle value to debug output. (fhandler_socket::fixup_after_fork): Ditto. Make new socket handle OVERLAPPED, just as if it has been created with socket(). * net.cc (fdsock): Close duplicated socket and explain why. Disable the entire WSADuplicateSocket test for now and explain why.
* * fhandler_socket.cc (fhandler_socket::set_close_on_exec): Only callCorinna Vinschen2009-11-232-2/+12
| | | | fhandler_base::set_close_on_exec for inheritable sockets.
* * globals.cc (ro_u_dll): New R/O unicode string.Corinna Vinschen2009-11-213-0/+13
| | | | | * syscalls.cc (nt_path_has_executable_suffix): Add ro_u_dll to blessed_executable_suffixes array. Explain why.
* * flock.cc (fhandler_disk_file::lock): Disable a shortcut from theCorinna Vinschen2009-11-182-0/+11
| | | | original BSD code, but keep it in and documented why we can't use it.
* * ntea.cc (read_ea): Always add length of "user." prefix, not onlyCorinna Vinschen2009-11-182-7/+11
| | | | on Samba. Change comment.
* * ntea.cc (read_ea): Try to open file first to have more sensibleCorinna Vinschen2009-11-182-35/+65
| | | | | | | | | | error codes. Always refuse non "user." EAs for Linux compatibility and return EOPNOTSUPP. Fix handling of empty (== non-existant) EAs. Always prepend "user." prefix to EA names. (write_ea): Try to open file first to have more sensible error codes. Always refuse non "user." EAs for Linux compatibility and return EOPNOTSUPP. Delay skipping "user." prefix until after potential call to read_ea.
* Reintegrate socket duplication via WSADuplicateSocket/WSASocket.Corinna Vinschen2009-11-179-8/+221
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * autoload.cc (WSADuplicateSocketW): Define. (WSASocketW): Define. * dtable.cc (dtable::release): Call dec_need_fixup_before if necessary. (dtable::fixup_before_fork): New function. (dtable::fixup_before_exec): New function. * dtable.h (class dtable): Add member cnt_need_fixup_before. Add declarations for above new functions. (dtable::dec_need_fixup_before): New inline method. (dtable::inc_need_fixup_before): New inline method. (dtable::need_fixup_before): New inline method. * fhandler.h (fhandler_base::fixup_before_fork_exec): New virtual method. (fhandler_base::need_fixup_before): New virtual method. (class fhandler_socket): Add member prot_info_ptr. (fhandler_socket::init_fixup_before): Declare. (fhandler_socket::need_fixup_before): New inline method. (fhandler_socket::fixup_before_fork_exec): Declare. (fhandler_socket::fixup_after_exec): Declare. * fhandler_socket.cc (fhandler_socket::fhandler_socket): Initialize prot_info_ptr to NULL. (fhandler_socket::~fhandler_socket): Free prot_info_ptr conditionally. (fhandler_socket::init_fixup_before): New method. (fhandler_socket::fixup_before_fork_exec): Ditto. (fhandler_socket::fixup_after_fork): Use WSASocketW to duplicate socket if necessary. (fhandler_socket::fixup_after_exec): New method. (fhandler_socket::dup): Use fixup_before_fork_exec/fixup_after_fork to duplicate socket if necessary. * fork.cc (frok::parent): Start child suspended if some fhandler needs fixup before fork. If so, call dtable::fixup_before_fork after CreateProcess and resume child. * net.cc (fdsock): Try to find out if socket needs fixup before and initialize socket accordingly. Add HUGE comment to explain what happens and why. * spawn.cc (spawn_guts): Start child suspended if some fhandler needs fixup before exec. If so, call dtable::fixup_before_exec after CreateProcess.
* Fix setenv and unsetenv corner cases.Eric Blake2009-11-162-5/+13
| | | | | * environ.cc (setenv): Detect invalid argument. (unsetenv): Distinguish EFAULT from EINVAL.
* * net.cc (fdsock): Fill _rmem and _wmem with valid values returnedCorinna Vinschen2009-11-132-3/+21
| | | | from getsockopt if setsockopt with desired values failed.
* * sysconf.cc (get_nprocs): New function.Corinna Vinschen2009-11-126-2/+75
| | | | | | | | | | (get_nprocs_conf): Ditto. (get_avphys_pages): Ditto. (get_phys_pages): Ditto. * cygwin.din: Export them. * include/sys/sysinfo.h: New header, decalre above new functions. * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. * posix.sgml: Mention them as GNU extensions.
* * fhandler.h (class fhandler_mailslot): Declare new private methodCorinna Vinschen2009-11-113-3/+30
| | | | | | | get_object_attr. * fhandler_mailslot.cc (fhandler_mailslot::get_object_attr): Implement. (fhandler_mailslot::open): Replace calls to path_conv::get_object_attr with calls to fhandler_mailslot::get_object_attr.
* * fhandler_console.cc (fhandler_console::read): Revert change fromCorinna Vinschen2009-11-102-16/+16
| | | | 2009-11-09.
* * fhandler_disk_file.cc (is_volume_mountpoint): Align check withCorinna Vinschen2009-11-103-15/+31
| | | | | | symlink_info::check_reparse_point(). * path.cc (symlink_info::check_reparse_point): Rearrange slightly. Add code path for unrecognized repare point types. Add comment.
* * path.cc (symlink_info::check_reparse_point): Always checkCorinna Vinschen2009-11-093-6/+21
| | | | | | | SubstituteName for volume string to recognize volume mount points. Reuse subst when calling sys_wcstombs. * syscalls.cc (rename): Set errno to EBUSY when trying to rename volume mount points. Explain why.
* * fhandler_console.cc (fhandler_console::read): Restrict generatingCorinna Vinschen2009-11-092-11/+21
| | | | META key sequences to singlebyte input chars.
* * fhandler_disk_file.cc (fhandler_base::fstat_helper): Drop all "other"Corinna Vinschen2009-11-082-0/+12
| | | | | permissions from st_mode, if the reading the file's security descriptor failed. Explain why.
* * globals.cc (ro_u_scr): New R/O unicode string.Corinna Vinschen2009-11-063-20/+43
| | | | | | | | | | (ro_u_sys): Ditto. * syscalls.cc (nt_path_has_suffix): Replace with ... (nt_path_has_executable_suffix): New function checking for explicit executable suffixes. (rename): Call nt_path_has_executable_suffix instead of nt_path_has_suffix. Check oldpath for nt_path_has_executable_suffix as well to set old_explicit_suffix.
* * shared.cc (inst_root_inited): New static bool variable.Corinna Vinschen2009-11-062-2/+13
| | | | | | (init_installation_root): Set inst_root_inited to true. (memory_init): Print installation root debug output only if inst_root_inited is true.
* * syscalls.cc (nt_path_has_suffix): New function.Corinna Vinschen2009-11-052-5/+34
| | | | | (rename): Don't append .exe suffix if binary target name has any suffix at all.
* * spawn.cc (dll_suffixes): Disable. Explain why.Corinna Vinschen2009-11-052-1/+12
| | | | (perhaps_suffix): Use stat_suffixes instead of dll_suffixes.
* * security.cc (alloc_sd): Re-introduce setting the SE_DACL_PROTECTEDCorinna Vinschen2009-11-034-12/+46
| | | | | | | flag. Remove INHERITED_ACE flag from all inherited ACEs. Add comment. Fix ace_off counter in unrelated ACE loop. * wincap.cc: Re-add has_dacl_protect throughout. * wincap.h: Ditto.
* * security.cc (alloc_sd): Re-enable generating default permissionCorinna Vinschen2009-11-022-7/+5
| | | | entries for directories.
* * dlfcn.cc (get_full_path_of_dll): Drop enforcing a .dll suffix.Corinna Vinschen2009-11-022-9/+12
| | | | | (dlopen): If last path component has no dot, append one to override automatic .dll suffix in LoadLibrary.
* * miscfuncs.h (transform_chars): Declare. Define inline variation here.Corinna Vinschen2009-11-025-68/+83
| | | | | | | | | | | | | * mount.cc (mount_info::from_fstab): Remove extern declaration of transform_chars. * path.cc (tfx_chars): Move to strfuncs.cc. (transform_chars): Ditto. * strfunc.cc (tfx_chars): Moved here from path.cc. (transform_chars): Ditto. (sys_cp_wcstombs): Make UNICODE private use area conversion roundtrip save for all characters. (sys_cp_mbstowcs): Ditto, by removing special case for UTF-8 sequences representing U+f0XX UNICODE chars. Fix typo in comment.
* path.ccCorinna Vinschen2009-11-021-1/+1
|
* * path.cc (tfx_chars): Constify.Corinna Vinschen2009-11-021-0/+4
|
* * cygprops.h: New file.Corinna Vinschen2009-10-3113-62/+220
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * dtable.cc (handle_to_fn): Add check for correct installation_key string in object name for pipes and ttys. * external.cc (cygwin_internal): Add CW_GET_INSTKEY to allow fetching the installation_key from cygserver. * fhandler_fifo.cc (fhandler_fifo::fifo_name): Add installation_key to fifo name. * globals.cc: Include cygprops.h. (_RDATA): Move slightly and add comment. (cygwin_props): Define. * mount.cc (mount_info::init): Accommodate the fact that installation_root is now a global variable in DLL common shared memory, rather than a member of cygwin_shared. * pipe.cc (fhandler_pipe::create_selectable): Add installation_key to pipe name. * shared.cc (installation_root): Define here for storage in DLL common shared memory. (installation_key): Ditto. (installation_key_buf): Ditto. (init_installation_root): Convert from shared_info method to ordinary function. Add initializing installation_key. Invalidate installation_key depending of value of disable_key property. Add comment to explain. (get_shared_parent_dir): Add installation_key to directory name. (get_session_parent_dir): Ditto. (shared_info::initialize): Move call to init_installation_root from here... (memory_init): ...to here. Add debug output to print installation root and installation key. Add comment to explain why. * shared_info.h (SHARED_INFO_CB): Recalculate. (CURR_SHARED_MAGIC): Ditto. (class shared_info): Remove definition of installation_root and declaration of init_installation_root. (init_installation_root): Declare. (installation_root): Declare. (installation_key): Declare. * uinfo.cc (pwdgrp::load): Accommodate the fact that installation_root is now a global variable in DLL common shared memory. * include/cygwin/version.h: Bump API minor number. (CYGWIN_INFO_INSTALLATIONS_NAME): Add. * include/sys/cygwin.h (cygwin_getinfo_types): Add CW_GET_INSTKEY.
* * sec_helper.cc (security_descriptor::realloc): Call free first ifCorinna Vinschen2009-10-312-0/+8
| | | | current security desriptor has been allocated by GetSecurityInfo.
* * sec_helper.cc (security_descriptor::free): If sd_size is 0, callCorinna Vinschen2009-10-309-57/+93
| | | | | | | | | | | | | | | | | | | | | | | | LocalFree instead of ::free. * sec_acl.cc: Throughout replace old ACE flag definitions with current definitions as used in MSDN man pages. * security.cc: Ditto. * fhandler.cc (fhandler_base::open): Make sure file has really been just created before fixing file permissions. Add S_JUSTCREATED attribute to set_file_attribute call. * fhandler_disk_file.cc (fhandler_disk_file::mkdir): Always create dir with default security descriptor and fix descriptor afterwards. Add S_JUSTCREATED flag to set_file_attribute call. * fhandler_socket.cc (fhandler_socket::bind): Ditto for AF_LOCAL socket files. * path.cc (symlink_worker): Ditto for symlinks. * security.cc (get_file_sd): Call GetSecurityInfo rather than NtQuerySecurityObject. Explain why. Change error handling accordingly. (alloc_sd): Skip non-inherited, non-standard entries in ACL if S_JUSTCREATED attribute is set. Explain why. Minor format fixes. * security.h (S_JUSTCREATED): New define. (security_descriptor::operator=): New operator.
* * fhandler_random.cc (fhandler_dev_random::lseek): Revert change fromCorinna Vinschen2009-10-302-0/+10
| | | | 2009-10-23.
* * smallprint.cc (hex_str): New const string.Corinna Vinschen2009-10-303-12/+54
| | | | | | | | | | | (__rn): Drop str and use hex_str instead. (__small_vsprintf): If 'l' modifier has been found, print subsequent multibyte or wide char string using the s, S, or W options in extended hex value layout. * fhandler_disk_file.cc (fhandler_disk_file::readdir): Print WCHAR and resulting multibyte filename in extended hex value layout in debug output.
* Correct pseudo-reloc size bug wrt error messagesCharles Wilson2009-10-263-4/+11
|
* Sync pseudo-reloc.c with mingw64Charles Wilson2009-10-253-164/+169
|
* * fhandler.cc (fhandler_base::open): Remove unused variables sa and sd.Corinna Vinschen2009-10-242-3/+5
|
* * fhandler.cc (fhandler_base::open): Always create file with defaultCorinna Vinschen2009-10-245-45/+30
| | | | | | | | security descriptor and fix descriptor afterwards. Change comment to explain why. * security.cc (alloc_sd): Drop setting the SE_DACL_PROTECTED flag. * wincap.cc: Remove has_dacl_protect throughout. * wincap.h: Ditto.
* * fhandler_random.cc (fhandler_dev_random::lseek): Allow negativeCorinna Vinschen2009-10-232-5/+5
| | | | dummy file positions as on Linux.
* * registry.cc (reg_key::get_int): Add alternative implementationCorinna Vinschen2009-10-203-10/+80
| | | | | | | | taking WCHAR strings. (reg_key::set_int): Ditto. (reg_key::get_string): Ditto. (reg_key::set_string): Ditto. * registry.h (struct reg_key): Add prototypes for added methods.
* * smallprint.cc (__small_vsprintf): Simplify UNICODE string handlingCorinna Vinschen2009-10-202-9/+9
| | | | and allow empty strings.
* * fhandler_disk_file.cc (fhander_disk_file::readdir): Handle a statusCorinna Vinschen2009-10-202-3/+11
| | | | code STATUS_NOT_SUPPORTED. Add matching comment.
* * syscalls.cc (internal_setlocale): Only convert $PATH if there is aCorinna Vinschen2009-10-192-7/+19
| | | | $PATH.
* * spawn.cc (av::fixup): Treat non-readable, but executable files asCorinna Vinschen2009-10-192-1/+17
| | | | Cygwin executables.
* * uinfo.cc (uinfo_init): Deimpersonate, don't reimpersonate, ifCorinna Vinschen2009-10-182-1/+6
| | | | not in a setuid condition.
* Consistently use va_end.Eric Blake2009-10-146-44/+98
| | | | | | | | * external.cc (cygwin_internal): Use va_end. * fork.cc (child_copy): Likewise. * libc/bsdlib.cc (warn, warnx, err, errx): Likewise. * pinfo.cc (commune_request): Likewise. * strace.cc (strace::prntf, strace_printf): Likewise.