Commit Graph

1440 Commits

Author SHA1 Message Date
Christopher Faylor 5e2ccd4bc2 minor wording change. 2001-08-31 05:24:36 +00:00
Christopher Faylor fcc46b19d3 space reduction. 2001-08-31 05:23:04 +00:00
Christopher Faylor fff42f4172 space reduction. 2001-08-31 05:17:47 +00:00
Christopher Faylor 5835f2cf8d * cygwin.sc: New file -- linker script for building cygwin DLL.
* Makefile.in: Use linker script to control location of cygheap.
* cygheap.cc (buckets): Make static.
(init_cheap): Remove special iswinnt handling.  Allocate cygheap at a fixed
location.  Display more info when allocation fails.
(cygheap_fixup_in_child): Try harder to move cygheap to correct location.
Display more info when allocation fails.
* fhandler.h (fhandler_socket): Add macros for tracking socket shutdown state.
* net.cc (cygwin_shutdown): Set appropriate shutdown value for future use.
* select.cc (select_stuff::cleanup): New method.
(cygwin_select): Call cleanup explicitly to avoid a race.
(select_stuff:~select_stuff): Call cleanup chain via cleanup method.
(fhandler_socket::select_read): Set *_ready when shutdown has been called on
the socket.
(fhandler_socket::select_write): Ditto.
(fhandler_socket::select_except): Ditto.
* winsup.h: Move NO_COPY to "COMMON" section.
* autoload.cc (wsock_started): Avoid initializing NO_COPY value.
* sigproc.cc: Remove initialization from NO_COPY variables.
(sigproc_init): Initialize sig_loop_wait here, rather than via initialization.
(subproc_init): Initialize proc_loop_wait here, rather than via initialization.
2001-08-31 05:06:14 +00:00
Egor Duda 33bc82476e * dumper.h: Update copyright notice.
* dumper.cc: Ditto.
* dumper.cc: (dumper::print_core_section_list): New function.
* dumper.h: (dumper::print_core_section_list): Declare it.
* dumper.cc (print_section_name): New function.
(dumper::collect_process_information): Augment debugging output.
Stop debugee processing if it posts double exception.
(usage): Fix typo in option name.
2001-08-30 16:47:51 +00:00
Christopher Faylor 4208d592f3 * include/winsock2.h: Remove "extra token" after #endif. 2001-08-30 13:37:23 +00:00
Corinna Vinschen f0b4b3865d * select.cc (select_read): Add setting read_ready flag.
(select_write): Add setting write_ready flag.
2001-08-30 08:21:09 +00:00
Earnie Boyd bca00ab4b6 * config.guess: Remove the \r from the end of line.
* config.sub: Ditto.
	* include/winnt.h: Allow anonymous struct in [U]LARGE_INTEGER
	if __cplusplus as well as if _ANONYMOUS_STRUCT.
	* config.guess: Add the MSYS system.
	* config.sub: Ditto.
	* include/winsock.h: Add the __INSIDE_MSYS__ protections.
	* incldue/winsock2.h: Ditto.
2001-08-30 04:29:49 +00:00
Earnie Boyd d1b093d567 * include\winnt.h: Allow anonymous (Xxx.LowPart) or
non-anonymous (Xxx.u.LowPart) access to HighPart and
	LowPart of a LARGE_INTEGER or ULARGE_INTEGER.
	* include/wingdi.h (HANGUL_CHARSET): Add define.
2001-08-29 13:45:46 +00:00
Earnie Boyd 375dab8418 * include/stdarg.h (va_list): Typedef as __builtin_va_list if
__GNUC__ >= 3.
	* include/varargs.h (va_list): Ditto.
	* include/stdio.h (va_list): Ditto.
2001-08-29 13:43:59 +00:00
Christopher Faylor 41d53c9845 * path.cc (path_conv::check): Avoid splitting off leading '/' in path component
when building a symlink.
2001-08-29 04:43:19 +00:00
Corinna Vinschen e4a17c6d11 * resource.cc (getrlimit): Return actual values on RLIMIT_STACK. 2001-08-28 22:48:23 +00:00
Christopher Faylor 955dfa520a oops 2001-08-28 20:39:22 +00:00
Christopher Faylor ffe94510f5 * dir.cc (rmdir): Report ENOENT when file doesn't exist rather than ENOTDIR. 2001-08-28 20:38:07 +00:00
Christopher Faylor 34971f0f8c * mount.cc (main): Issue correct warning for 'not enough arguments'. 2001-08-28 18:48:38 +00:00
Christopher Faylor 8d661d3658 * select.cc (cygwin_select): Ensure that arguments are zeroed on timeout.
(select_stuff::wait): Ditto.
2001-08-27 15:59:26 +00:00
Christopher Faylor e32b4e81cb * syscalls.cc (check_tty_fds): New function. Check whether there is a fd
referring to pty slave.
(setsid): Don't detach console if the process has a pty slave.
2001-08-25 17:27:31 +00:00
Corinna Vinschen 5d0fe6351a * net.cc (free_addr_list): Add define for symmetry.
(free_hostent_ptr): Use free_addr_list to free h_addr_list element.
        (dup_addr_list): New static function.
        (dup_hostent_ptr): Use dup_addr_list instead of dup_char_list in order
        to handle embedded null characters.
2001-08-24 06:57:53 +00:00
Christopher Faylor ecaff08ccd * dtable.cc (dtable::dup2): Allow extension of fd table by dup2.
* syscalls.cc: Minor code cleanup.
(fpathconf): Check for bad fd before doing anything else.
* termios.cc (tcsetattr): Don't convert to new termios if bad fd.
(tcgetattr): Minor debugging tweak.
2001-08-23 02:27:01 +00:00
Corinna Vinschen cb19ccf4b5 * net.cc (cygwin_inet_ntoa): Rearrange previous patch to use
thread local buffer space when compiled thread safe.
        (cygwin_getprotobyname): Ditto.
        (cygwin_getprotobynumber): Ditto.
        (cygwin_getservbyname): Ditto.
        (cygwin_getservbyport): Ditto.
        (cygwin_gethostbyname): Ditto.
        (cygwin_gethostbyaddr): Ditto. Move near to cygwin_gethostbyname.
        * thread.h (struct _winsup_t): Add pointers for above used buffer space.
        * passwd.cc (getpwduid): Remove initializing passwd.
        (setpwent): Ditto.
        (endpwent): Ditto.
        (setpassent): Ditto.
2001-08-22 21:51:48 +00:00
Christopher Faylor 0a047e8f32 * smallprint.c (console_printf): New function.
* dcrt0.cc (dll_crt0_1): Use console_printf for debugging output.
* debug.cc (debug_mark_closed): New function.
(close_handle): Use debug_mark_closed.
* debug.h: Declare new functions.
* dtable.cc (dtable::build_fhandler): Remove unneeded extern.
* spawn.cc: Cosmetic changes.
* winsup.h: Define NO_COPY for C files, too.  Declare a global.
2001-08-22 17:50:22 +00:00
Corinna Vinschen 1fdc8df95d * net.cc (free_char_list): New static function.
(dup_char_list): Ditto.
        (free_protoent_ptr): Ditto.
        (dup_protoent_ptr): Ditto.
        (free_servent_ptr): Ditto.
        (dup_servent_ptr): Ditto.
        (free_hostent_ptr): Ditto.
        (dup_hostent_ptr): Ditto.
        (cygwin_inet_ntoa): Use local static buffer to allow propagating of
        the result to child processes.
        (cygwin_getprotobyname): Ditto.
        (cygwin_getprotobynumber): Ditto.
        (cygwin_getservbyname): Ditto.
        (cygwin_getservbyport): Ditto.
        (cygwin_gethostbyname): Ditto.
        (cygwin_gethostbyaddr): Ditto.
2001-08-22 15:31:59 +00:00
Christopher Faylor d4d65813a7 fix typo. 2001-08-22 02:40:22 +00:00
Earnie Boyd de8e9cfb39 * include/setupapi.h : New file.
* lib/setupapi.def:New file.
	* lib/test.c: Include setupapi.h.
	* include/winioctl.h (_DISK_PERFORMANCE): Correct typo.
	* include/richedit.h (ENLINK): Add structure definition.
	(EM_AUTOURLDETECT, EN_LINK, ENM_LINK): Add defines.
	* include/shlobj.h (CMIC_*): Remove duplicate defines.
	(CMDSTR_*): Remove duplicates; UNICODE string constants.
	(GCS_*): Make UNICODE.
	(CSIDL_*): Add more defines.
	* include/winioctl.h (_MEDIA_TYPE): Add pointer typedef.
	(_DISK_GEOMETRY): Ditto.
	(_DISK_PERFORMANCE): Ditto.
	* include/winbase.h (HasOverlappedIoCompleted): Add macro.
	* include/winnt.h: Move CHAR, SHORT and LONG typedefs outside
	of block protected by #ifndef VOID.
	(This reverts 1998-12-01 Anders Norlander change.)
	* include/odbcinst.h: End file with newline.
	* include/raserror.h: Ditto.
	* include/winsock2.h (#include <wtypes.h): Don't.
	(_BLOB): Define instead, if not already done.
	(__BLOB_T_DEFINED: New define for guarding _BLOB.
	* include/wtypes.h (_BLOB): Guard against prior definition.
	* include/oaidl.h (tagVARIANT): Mark anonymous structs and unions
	 as 	__extension__.
	(tagTYPEDESC): Ditto.
	(_wireBRECORD): Add structure definition.
	(_wireSAFEARR_BRECORD): Ditto.
	(_wireSAFEARR_HAVEIID): Ditto.
	(_wireSAFEARRAY_UNION.u): Add fields SAFEARR_BRECORD RecordStr,
	SAFEARR_HAVEIID HaveIidStr.
	(tagVariant): Add fields _VARIANT_BOOL bool,*pbool.
	(_wireVARIANT): Change field parray to type wirePSAFEARRAY,
	pparray to wirePSAFEARRAY*.
	(_wireVARIANT): Add field wireBRECORD brecVal.
	(wireVARIANT): Change typedef to struct _wireVariant*.
	(IRecordInfo): Add interface definition.
	(LPRECORDINFO): Add typedef for IRecordInfo*.
	(IID_IRecordInfo): Add forward decalaration.
	* include/lmcons.h: Guard CNLEN and UNCLEN against prior definition.
	* include/nddeapi.h: Likewise.
	* ChangeLog: Formatting and typo fixes.
2001-08-21 13:58:52 +00:00
Christopher Faylor d9b68c2c7d debug 2001-08-20 16:03:54 +00:00
Christopher Faylor b1d0b9073c * cygheap.cc (init_cheap): Allocate cygheap in shared memory for Windows NT. 2001-08-20 15:58:16 +00:00
Egor Duda 933cbf6213 * fhandler_socket.cc (fhandler_socket::create_secret_event): Relax
security of secret_event so AF_UNIX socket clients can connect to
servers even if running under a different user account.
(fhandler_socket::check_peer_secret_event): Ditto.
2001-08-16 14:34:27 +00:00
Corinna Vinschen 1457739a63 * resource.cc (getrlimit): Return getdtablesize () as current limit
on RLIMIT_NOFILE.
        * syscalls.cc (getdtablesize): Return OPEN_MAX if current dtable size
        is less than OPEN_MAX, the current dtable size otherwise.
        * sysconf.cc (sysconf): Return getdtablesize () on _SC_OPEN_MAX.
2001-08-16 14:29:21 +00:00
Corinna Vinschen 3171175e90 * resource.cc (getrlimit): Return OPEN_MAX as current limit
on RLIMIT_NOFILE.
        * syscalls.cc (getdtablesize): Return OPEN_MAX.
        * sysconf.cc (sysconf): Return OPEN_MAX on _SC_OPEN_MAX.
        * include/limits.h (OPEN_MAX): Define as 256.
2001-08-16 14:20:09 +00:00
Corinna Vinschen 91a1423a87 * times.cc (utimes): Revert previous change. Just open the
file using FILE_WRITE_ATTRIBUTES instead of GENERIC_WRITE
        on NT/W2K.
2001-08-15 10:48:43 +00:00
Corinna Vinschen 2a9366ff49 * security.cc (set_nt_attribute): Return always -1 in case of
a failure.
        * times.cc (utimes): On NTFS with ntsec ON, change the file's
        security descriptor temporarily to acquire write access if
        opening the file failed.
2001-08-15 10:21:39 +00:00
Corinna Vinschen 5fd12fb0cc * fhandler.cc (fhandler_base::is_nonblocking): New method.
(fhandler_base::set_nonblocking): Ditto.
        * fhandler.h (fhandler_base): Declare new methods `is_nonblocking' and
        `set_nonblocking'.
        * fhandler_socket.cc (fhandler_socket::ioctl): Use `set_nonblocking'.
        * fhandler_tty.cc (fhandler_pty_master::process_slave_output):
        Use `is_nonblocking'.
        (fhandler_tty_slave::read): Ditto.
        (fhandler_tty_slave::ioctl): Use `set_nonblocking'.
        (fhandler_pty_master::ioctl): Ditto.
        * net.cc (cygwin_sendto): Fallback to winsock 1 functionality
        in case of nonblocking IO.
        (cygwin_recvfrom): Ditto.
        (cygwin_recv): Ditto.
        (cygwin_send): Ditto.
        * syscalls.cc (_read): Use `is_nonblocking'.
2001-08-15 07:49:15 +00:00
Christopher Faylor da3ea61edd * cygpath.cc (main): Support -w for Windows (System) directories and return
physical correct orthography for the Windows System dir.
2001-08-15 03:24:18 +00:00
Christopher Faylor 3ca6bcc4d0 * include/cygwin/version.h: Bump API version. 2001-08-14 15:05:43 +00:00
Egor Duda 7da232abd7 * spawn.cc (spawn_guts): Enable appropriate privilege before
loading user's registry hive.
2001-08-14 14:57:44 +00:00
Corinna Vinschen 6a574f1ad6 * fhandler.cc (fhandler_base::fcntl): Use new O_NONBLOCK_MASK define.
* fhandler.h: Move definitions of O_NOSYMLINK, O_DIROPEN and
        OLD_O_NDELAY from winsup.h to here. Add O_NONBLOCK_MASK define.
        * fhandler_socket.cc (fhandler_socket::close): Add hack to allow
        a graceful shutdown even if shutdown() hasn't been called by the
        application. Add debug output.
        (fhandler_socket::ioctl): Set fhandler's NONBLOCK flag according
        to FIONBIO setting.
        (fhandler_socket::fcntl): Use new O_NONBLOCK_MASK define. Actually
        set `request' before using it.
        * fhandler_tty.cc: Use new O_NONBLOCK_MASK define throughout.
        (fhandler_tty_slave::ioctl): Set fhandler's NONBLOCK flag according
        to FIONBIO setting.
        (fhandler_pty_master::ioctl): Ditto.
        * net.cc (wsock_event::prepare): Compare WSACreateEvent return code
        with `WSA_INVALID_EVENT' according to MSDN.
        * syscalls.cc (_read): Use new O_NONBLOCK_MASK define.
2001-08-14 07:41:45 +00:00
Christopher Faylor 29a075260a Oops. Forgot to check in include/wchar.h??? 2001-08-11 01:56:53 +00:00
Earnie Boyd 6286806473 * lib/kernels.c: New file. 2001-08-10 11:52:35 +00:00
Earnie Boyd 5b9d54bf97 * lib/test.c (Win32_Winsock): Replace with __USE_W32_SOCKETS.
Add more includes of w32api headers.
	* include/winnt.h (GetCurrentFiber): Change __inline to __inline__.
	Swap asm code with that of GetFiberData.
	(GetFiberData): Ditto.
	* lib/kernels.c: New file, containing library versions of
	GetCurrentFiber and GetFiberData.
	* lib/makefile.in: Add kernel32.o as static object to libkernal32.a.
2001-08-10 11:51:03 +00:00
Christopher Faylor f11db2f4fa * include/wchar.h: Define __need_wint_t. 2001-08-08 19:26:24 +00:00
Earnie Boyd 89500585f7 * include/winuser.h (GET_WHEEL_DELTA_WPARAM): Add macro.
* lib/oleaut32.def: Regenerate.
2001-08-08 17:25:23 +00:00
Corinna Vinschen 8c62297ac5 * security.cc (alloc_sd): Revert to setting inheritance attribute for
permissions given to directories. Never set inheritance on NULL ACE.
2001-08-08 10:00:35 +00:00
Corinna Vinschen c0ae23dc47 * security.cc (alloc_sd): Don't set FILE_DELETE_CHILD for group
if S_ISVTX attribute is given.
        * dir.cc (mkdir): Allow immediate setting of S_ISUID, S_ISGID and
        S_ISVTX attribute.
        * syscalls.cc (_open): Ditto.
2001-08-07 16:14:59 +00:00
Corinna Vinschen 86fb039324 * dir.cc (mkdir): Set security attributes correctly for
CreateDirectoryA () call if ntsec is on. Don't call
        set_file_attributes () then.
        * fhandler.cc (fhandler_base::open): Ditto for CreateFileA () call.
        * path.cc (symlink): Ditto.
        * security.cc (set_security_attribute): New function.
        * security.h: Add declaration for `allow_ntea' and
        `set_security_attribute'.
2001-08-07 15:09:54 +00:00
Corinna Vinschen f5e8e2be4a * grp.cc (class grp_check): New class. Make `group_state'
a member of class grp_check.
        (read_etc_group): Free former allocated memory on reread.
        * passwd.cc (class pwd_check): New class Make `passwd_state'
        a member of class pwd_check.
        (read_etc_passwd): Free former allocated memory on reread.
2001-08-07 08:56:22 +00:00
Christopher Faylor 300624d4f3 * fhandler_console.cc (get_tty_stuff): Don't initialize shared memory console
area if it is already initialized.
* fhandler_termios.cc (fhandler_termios::tcsetpgrp): Augment debugging info.
2001-08-07 05:15:59 +00:00
Christopher Faylor 96a3f4ae68 * cygheap.cc (cygheap_root::set): Avoid treating '/' specially.
* fhandler.cc (fhandler_base::fcntl): Only set specific O_NDELAY style flag
passed in from application.
* fhandler_socket.cc (fhandler_socket::fcntl): Ditto.
* fhandler.h: Set constant for future use.
* winsup.h: Define OLD_O_NDELAY only for old programs.
* include/cygwin/version.h: Define CYGWIN_VERSION_CHECK_FOR_OLD_O_NONBLOCK.
2001-08-07 00:01:42 +00:00
Earnie Boyd 386abb05d9 * include/stdlib.h (_wpgmptr): Don't declare ifndef __MSVCRT__.
* include/stdio.h (_IORW): Change constant to 0x0080.
	(TMP_MAX): Add new define.
	(_P_tmpdir): Ditto.
	(_wP_tmpdir): Ditto.
	(L_tmpnam): Change constant to 16.
	* include/malloc.h: Fix non-ANSI comment after #endif.
	* profile/Makefile.in (mkinstalldirs): Correct relative path.
2001-08-05 12:52:43 +00:00
Earnie Boyd 54580e6a88 * include/wtypes.h: (DECIMAL_SETZERO): Correct typo.
* include/oleidl.h (ISupportErrorInfo, ICreateInfo): Move from here
	* include/oaidl.h: ... to here.
	* include/oaidl.h ICreateErrorInfo): Add interface definition.
	(IErrorInfo::GetGUID): Change arg to GUID.
	(LPSUPPORTERRORINFO): Add typedef.
	(IID_ISupportErrorInfo): Change forward decl. of type to IID.
	* include/winsock2.h (WSAGET* and WSAMAKE*): Remove duplicate
	defines.
	* include/commctrl.h (TreeView_SetIndent): Correct typo.
	* include/commctrl.h (TBSTYPE_FLAT): Remove define.
	* include/commctrl.h (TBBUTTONINFO[AW]): Add struct definitions,
	and UNICODE mappings, if _WIN32_IE >= 0x400.
	(TBIF_* and TB_SETBUTTONINFO): Add defines, if _WIN32_IE >= 0x400.
	(CDIS_*,CDDS_*,CDRF_*) : Add defines.
	(tagNMCUSTOMDRAWINFO): Add struct definition and typedefs.
	(tagNMLVCUSTOMDRAW): Likewise.
	(tagNMTVCUSTOMDRAW): Likewise.
	(tagNMLVCACHEHINT): Likewise.
	* include/basetsd.h (#include <_mingw.h>): Remove.
	(__int64): Define.
	* include/wingdi.h (AC_SRC_OVER): Add define.
	(struct _BLENDFUNCTION): Add.
	* include/shlobj.h:  Add BIF_* defines.
	* include/winerror.h (E_PENDING): Add error code define.
	* include/basetsd.h (#include <_mingw.h>): Add directive.
	* include/winbase.h(InterlockedCompareExchange): Change args
	and return value from PVOID to LONG.
	(InterlockedExchange): Change first arg to LPLONG.
	(InterlockedCompareExchangePointer): New macro.
	(InterlockedExchangePointer): New macro.
2001-08-05 12:47:53 +00:00
Christopher Faylor e5ba4c060e Throughout, change check for running under Windows NT to 'iswinnt'.
* dcrt0.cc (set_os_type): Set 'iswinnt' appropriately.
* cygheap.cc (init_cheap): Revert to using VirtualAlloc for allocating cygheap.
(cygheap_setup_for_child_cleanup): New function.  Standard function to call
after calling CreateProcess to cleanup cygheap info passed to child.
(cygheap_fixup_in_child): Copy cygheap from shared memory into allocated space
under Windows 9x or if can't relocate shared space under NT.
* cygheap.h: Declare new function.
* spawn.cc (spawn_guts): Use cygheap_fixup_in_child.
* fork.cc (fork_parent): Ditto.
* winsup.h: Declare iswinnt.
2001-08-04 21:10:52 +00:00
Egor Duda 17195d08bc * dtable.cc (dtable::release): Avoid messing with console when
closing socket.
2001-08-04 18:53:53 +00:00
Corinna Vinschen 7eb971a561 * net.cc (cygwin_accept): Allow NULL peer and len parameters.
* include/cygwin/socket.h: Define socklen_t as int.
2001-08-03 12:06:29 +00:00
Corinna Vinschen dce6f56397 * path.cc (fchdir): Set the fhandler's path to absolute value to
ensure changing to the correct directory even if the fhandler originally
        points to a relative path.
2001-08-03 11:14:09 +00:00
Corinna Vinschen 842c741f98 * security.cc (set_file_attribute): Clean up. Don't call
`set_nt_attribute' when ntsec isn't set.
2001-08-02 16:01:47 +00:00
Christopher Faylor e13ea3343d * dcrt0.cc (alloc_stack_hard_way): Make half-hearted attempt to deal with
growing stack under Windows 95.
* Makefile.in: Add install-lib and install-headers.
2001-07-29 02:33:30 +00:00
Christopher Faylor 8e4e3874c4 * cygwin.din: Export sys_errlist, sys_nerr.
* include/cygwin/version.h: Bump minor version number.
2001-07-27 16:33:20 +00:00
Corinna Vinschen 8b43d2722b * security.cc (get_user_primary_group): Fix compiler warning.
(alloc_sd): Add DELETE permission for user when S_IWUSR is given.
2001-07-27 09:17:57 +00:00
Christopher Faylor f9f2c11985 * thread.cc (__pthread_equal): Invert return value so that true is returned
when threads are equal.
2001-07-26 20:47:05 +00:00
Christopher Faylor 351a85482c Christopher Faylor <cgf@cygnus.com>
* cygwin.din: Export __signgam.
* include/cygwin/version.h: Bump minor version number.
2001-07-26 20:42:52 +00:00
Christopher Faylor 6b91b8d53b Throughout, reorganize header file inclusion to put security.h prior to
fhandler.h.
* fhandler.h (fhandler_base::get_inheritance): New method.
* fhandler_socket.cc (fhandler_socket::create_secret_event): Use proper
close-on-exec inheritance when creating.
(fhandler_socket::check_peer_secret_event): Create handle as non-inheritable.
2001-07-26 19:22:24 +00:00
Christopher Faylor 0cc642a5f1 * syscalls.cc (setsid): Detach process from its console if the current
controlling tty is the console and already closed.
* dtable.h (class dtable): Add members to count descriptors referring to the
console.
* dtable.cc (dtable::dec_console_fds): New function to detach process from its
console.
(dtable::release): Decrement the counter of console descriptors.
(dtable::build_fhandler): Increment it.
* exception.cc (ctrl_c_handler): Send SIGTERM to myself when catch
CTRL_SHUTDOWN_EVENT.
2001-07-26 00:10:52 +00:00
Robert Collins 811bf2902d Tue 24 Jul 2001 02:28:00 PM Trevor Forbes <t4bs@hotmail.com>
* thread.cc (verifyable_object_isvalid): Don't validate
	PTHREAD_MUTEX_INITIALIZER pointer as it will cause an exception
	in IsBadWritePtr() when running GDB.
2001-07-25 23:46:25 +00:00
Corinna Vinschen 09ff05f7f9 * localtime.c: Changed whole file to become C++ clean. Rename to
localtime.cc.
        * localtime.cc (tzload): Preserve errno.
2001-07-25 21:58:21 +00:00
Christopher Faylor a7670c1e82 * cygheap.cc (cygheap_fixup_in_child): Attempt Win95 workaround.
* dtable.cc (dtable::dup_worker): Add debugging output.
(dtable::vfork_child_dup): Correctly set close_on_exec.
* fhandler.cc (fhandler_base::fork_fixup): Don't mess with handle if there is
no need to get it from the parent.
* fhandler_tty.cc (fhandler_tty_common::close): Add debugging output.
2001-07-21 03:20:01 +00:00
Corinna Vinschen 1801eae1b1 * dir.cc (readdir): Protect FindNextFileA against INVALID_HANDLE_VALUE. 2001-07-20 07:24:02 +00:00
Christopher Faylor aea57aa057 fix typo. 2001-07-19 15:27:59 +00:00
Christopher Faylor 16828fc5d4 * cygheap.cc (_cmalloc): Use correct constants for size calculation.
* dcrt0.cc (dll_crt0_1): Move uid initialization earlier.
* fork.cc (fork_parent): Move cygheap_setup_in_child to just prior to
CreateProcess so that all contents of cygheap are copied.
* spawn.cc (spawn_guts): Ditto.
2001-07-18 17:05:34 +00:00
Corinna Vinschen c9fbce2641 * security.cc (get_user_groups): Call Net function with NULL server
name under specific error conditions.
        (is_group_member): Ditto.
        (get_user_local_groups): Ditto.
        (get_user_primary_group): Ditto.
2001-07-18 12:56:26 +00:00
Corinna Vinschen 5564cd7a89 * syscalls.cc (_unlink): Explicitely check for non-existant file. 2001-07-18 11:00:05 +00:00
Corinna Vinschen 3ef6288c74 * delqueue.h: Remove obsolete file. 2001-07-17 08:28:27 +00:00
Christopher Faylor 5457dfcb81 * child_info.h: Bump magic number.
(class child_info): Add an element.
* cygheap.cc (init_cheap): Allocate cygwin heap in shared memory area.
(cygheap_fixup_in_child): Map cygwin heap, passed from parent via shared memory
into correct address.
(cygheap_setup_for_child): New function.
* cygheap.h: Declare new functions.
* dcrt0.cc (dll_crt0_1): Accomodate new cygheap_fixup_in_child arguments.
Avoid protecting subproc_ready unless it is spawn/nowait.
* fork.cc (fork_parent): Use new cygheap_setup_for_child function to setup
cygwin heap info.  Close passed cygheap shared memory handle.
* spawn.cc (spawn_guts): Ditto.  Also, reorganize to avoid synchronization
between parent and child in non-P_OVERLAY case.
* sigproc.cc (wait_sig): Only signal subproc_ready when execing.
2001-07-17 03:41:52 +00:00
Corinna Vinschen 27ea31cde4 * grp.cc: Add missing Copyright date 2001. 2001-07-16 13:22:29 +00:00
Corinna Vinschen 3a157c0d0d Change well_known_admin_sid to well_known_admins_sid throughout.
* sec_acl.cc (setacl): Never set DELETE permission. Set
        FILE_DELETE_CHILD only on readable and executable directories.
        * sec_helper.cc: Add constructor for `well_known_null_sid'.
        * security.cc (get_nt_attribute): Set S_ISVTX for directories if
        FILE_WRITE_DATA and FILE_EXECUTE but not FILE_DELETE_CHILD is set.
        Add evaluation of S_ISVTX, S_ISGID and S_ISUID from NULL ACE.
        (alloc_sd): Never set DELETE permission. Set FILE_DELETE_CHILD
        only on readable and executable directories.
        Add creation of NULL ACE for S_ISVTX, S_ISGID and S_ISUID permissions.
        * security.h: Add extern declaration for `well_known_null_sid'.
2001-07-15 22:40:07 +00:00
Corinna Vinschen 4c61c04cd3 * regtool.cc (find_key): Handle keys with only one subkey. 2001-07-15 11:27:23 +00:00
Christopher Faylor fc901253d1 * syscalls.cc (stat_worker): Simplify previous change. 2001-07-14 00:09:33 +00:00
Christopher Faylor 2aa2adb2d2 * syscalls.cc (_unlink): Correct (?) logic which determines when to report an
access violation and when to queue file for eventual deletion.
(stat_worker): Check for invalid buf argument.
2001-07-13 17:22:15 +00:00
Corinna Vinschen 8595942c8e * mmap.cc (fhandler_disk_file::mmap): Try to open file mappings
by a unified name when running under 9x/ME. If that failes, create
        the file mapping using the unified name.
2001-07-10 21:04:14 +00:00
Corinna Vinschen a8506a1917 * uinfo.cc (internal_getlogin): Add pointer check. 2001-07-09 09:05:17 +00:00
Corinna Vinschen 5d0cbc17db * security.cc (alloc_sd): Don't set inheritance attribute for
permissions given to directories.
2001-07-09 09:02:41 +00:00
David Starks-Browning a761b473ad WinME also affected by missing pipe key 2001-07-06 00:57:52 +00:00
David Starks-Browning a79001009b New entry "Why doesn't Cygwin tcl/tk understand Cygwin paths?" 2001-07-06 00:40:38 +00:00
David Starks-Browning 25c06979ef New entry: "Why don't international (8-bit) characters work?" 2001-07-06 00:30:23 +00:00
David Starks-Browning 0acab04bbe New "Known Problems" entry: Pipe key doesn't work on non-US kbds on Win9x.
Some cosmetic changes.
2001-07-06 00:16:13 +00:00
David Starks-Browning 9fbb1738c4 better instructions for installing cygwin snapshots 2001-07-05 23:58:34 +00:00
David Starks-Browning 3f5ab6915c New entry "Where is the su command?" 2001-07-05 23:29:43 +00:00
David Starks-Browning c3ac95e258 "How do I rebuild the tools on my NT box?": texi2html now provided. 2001-07-04 23:36:16 +00:00
David Starks-Browning 0ef44b84e6 "Why the weird directory structure?": new mount output format.
"Why can't I run bash as a shell under NT Emacs?": new title.
2001-07-04 23:30:17 +00:00
David Starks-Browning 7414c97eb3 Update "Can I use setup to install snapshots?" (now 'no') with new instructions. 2001-07-04 23:21:49 +00:00
David Starks-Browning d3f2880903 Add caveat that contents list is always out of date.
Remove entry "Setup screwed up my mounts!"
2001-07-04 23:00:31 +00:00
David Starks-Browning a43d0f3e07 just a bit more... 2001-07-04 22:54:16 +00:00
David Starks-Browning 7b49219617 Add more to entry "How do I print under Cygwin"? 2001-07-04 22:52:58 +00:00
David Starks-Browning f215088f81 Add apropos and /usr/sbin/makewhatis to "Why doesn't man work?" entry. 2001-07-04 21:14:41 +00:00
Christopher Faylor 2113bf6c1a * fhandler_dsp.cc (fhandler_dev_dsp::ioctl): Return 0 for success. 2001-06-29 02:20:01 +00:00
Christopher Faylor 288f125efd * regtool.cc (find_key): Revert previous change. 2001-06-28 02:46:11 +00:00
Christopher Faylor 7a4078ee34 Change check_null_empty_path* to check_null_empty_str* throughout.
* path.cc (path_conv::check): Add signal protection here since retrieving info
about remote shares can take some time.
* path.h (check_null_empty_str_errno): Convert to a function prototype.
* path.cc (check_null_empty_str): Move to miscfuncs.cc.
* miscfuncs.cc (check_null_empty_str_errno): New function.
(__check_null_invalid_struct): Ditto.
(__check_null_invalid_struct_errno): Ditto.
(check_null_empty_str): Change from VirtualQuery to IsBadWritePtr.
* thread.cc (check_valid_pointer): Ditto.
* resource.cc (getrlimit): Use check_null_invalid_struct macro for checking
validity of pointer.
(setrlimit): Ditto.
2001-06-28 02:19:57 +00:00
Christopher Faylor c135faa8b3 * regtool.cc (find_key): Allow '/' as a synonym for '\\'. 2001-06-27 17:38:40 +00:00
Christopher Faylor 07c3cd5bb1 * fhandler.cc (fhandler_disk_file::fstat): Don't rely on exactly 3 characters
being read for executable test since we could be checking for less than that.
* syscalls.cc (stat_worker): Try opening the file the "correct" way first so
that #! processing can potentially happen.  If that fails, then use "query
open" method.
* spawn.cc (spawn_guts): Delay processing of signal until after we've notified
parent about reparenting.
2001-06-26 21:03:08 +00:00
Christopher Faylor 32c3034969 Remove trailing tabs. 2001-06-26 14:57:33 +00:00
Christopher Faylor 462f4effb1 * mmap.cc: Clean up *ResourceLock calls throughout.
* thread.cc (pthread_cond::TimedWait): Check for WAIT_TIMEOUT as well as
WAIT_ABANDONED.
(__pthread_cond_timedwait): Calculate a relative wait from the abstime
parameter.
2001-06-26 14:47:48 +00:00
Christopher Faylor d006404dae forced commit 2001-06-24 22:26:53 +00:00
Christopher Faylor 7333875c53 Fix typo 2001-06-24 22:00:04 +00:00
Christopher Faylor 125205875b * exceptions.cc (interrupt_setup): Move actions from setup_handler to here.
(setup_handler): Move actions after a successful interrupt to interrupt_setup.
* fork.cc (vfork): Augment debugging output.
* sigproc.cc (proc_subproc): Ditto.
* spawn.cc (spawn_guts): Ditto.  Correctly fill out progname when spawn
NO_WAIT.  Call signal handler when a signal arrives.
* sigproc.h: Declare a function.
2001-06-24 21:57:50 +00:00
Corinna Vinschen 50b1264871 * fhandler.h class fhandler_socket): Declare new method
`set_close_on_exec'.
        * fhandler_socket.cc (fhandler_socket::set_close_on_exec):
        New method.
2001-06-22 20:53:45 +00:00
Corinna Vinschen 3b295174e3 * fhandler_tape.cc (fhandler_dev_tape::tape_erase): Set size
parameter to value expected by GetTapeParameters().
2001-06-22 20:13:00 +00:00
Corinna Vinschen 26da27a5f6 * fhandler_console.cc (fhandler_console::read): Detect AltGr more
robustly on WinNT.
2001-06-22 20:08:06 +00:00
Robert Collins b643afa4c7 2001-06-22 Robert Collins rbtcollins@hotmail.com
* thread.cc (__pthread_cond_timedwait): Lock the waiting mutex before
	the condition protect mutex to avoid deadlocking. (Found by Greg Smith).
	(__pthread_cond_wait): Ditto.
2001-06-21 22:27:20 +00:00
Egor Duda 9cc97acbd0 * fhandler.cc (fhandler_base::open): Work around windows bug when
CreateFile() with dwDesiredAccess == 0 called on remote share returns
valid handle even if file doesn't exist.
2001-06-20 07:44:33 +00:00
Egor Duda ae036f47c5 * fhandler_socket.cc (fhandler_socket::signal_secret_event): New
function.
* fhandler.h: Declare it.
* fhandler_socket.cc (fhandler_socket::create_secret_event): Don't
signal secret event immediately.
(fhandler_socket::check_peer_secret_event): Do it after peer event
was opened.
* net.cc (cygwin_connect): Or if socket is non-blocking.
(cygwin_accept): Ditto.
2001-06-20 06:50:13 +00:00
Earnie Boyd 4abaaac33c * lib/kernel32.def: Add LanguageGroup and UILanguage symbols.
Thanks to Kevin Chase <kevincha99@hotmail.com>.
2001-06-19 13:49:40 +00:00
Christopher Faylor 20a2c44362 * fhandler_tty.cc (fhandler_tty_slave::init): Revert 2001-06-16 change.
* fork.cc (fork_copy): Print more debugging info.
(fork_parent): Change order of arguments to accomdate buggy gcc.
(fork): Ditto.
* syscalls.cc (_unlink): Reorganize to try harder to delete file with
DeleteFile and to recover more gracefully if FILE_FLAG_DELETE_ON_CLOSE doesn't
work properly.
2001-06-18 21:18:59 +00:00
Christopher Faylor 36623e6535 Remove blank line. 2001-06-18 01:41:08 +00:00
Christopher Faylor 99a5bd2fab * exceptions.cc (sig_handle_tty_stop): Reset PID_STOPPED if not actually
stopping.
* fhandler_console.cc (fhandler_console::fixup_after_fork): Don't set
controlling terminal if just inheriting a handle.
(fhandler_console::fixup_after_exec): Ditto.
* fhandler_tty.cc (fhandler_tty_slave::init): Ditto.
* signal.cc (kill_worker): Set appropriate errno if proc_exists determines that
process does not really exist.
2001-06-16 17:09:19 +00:00
Christopher Faylor 947ab99ee9 * path.cc (path_conv::check): Deal more robustly with foo/ behavior. 2001-06-15 20:35:51 +00:00
Corinna Vinschen 4d52d5b0fb * fhandler_tape.cc (fhandler_dev_tape::tape_status): Set size
parameter to value expected by GetTapeParameters().
2001-06-15 09:17:10 +00:00
Christopher Faylor 12a9c87480 * mkpasswd.c (main): Output passwd file in binary mode so that there are no CRs
in the file.
* umount.cc (remove_all_user_mounts): Don't try to remove /cygdrive mounts.
2001-06-15 04:50:57 +00:00
Christopher Faylor e8d6e78f34 * fhandler.cc (fhandler_disk_file::fstat): Properly set executable bits for
directory when !ntsec && !ntea.  Also move common code prior to call to
get_attributes.
2001-06-15 00:21:06 +00:00
Christopher Faylor 47132198ad * thread.cc (pthread_cond::Signal): Release the condition access variable
correctly.
2001-06-14 23:53:27 +00:00
Egor Duda 96d95e535e * fhandler.cc (fhandler_base::open): Set win32 access flags
to 0, when requested.
* fhandler.h: New status flag FH_QUERYOPEN.
(fhandler::get_query_open): New function.
(fhandler::set_query_open): Ditto.
* syscalls.cc (stat_worker): Request query-only open mode.
2001-06-14 18:21:17 +00:00
David Starks-Browning c66261a731 Remove reference to Cygnus. 2001-06-14 08:43:42 +00:00
David Starks-Browning f87da0d4f3 teeny tiny typo 2001-06-14 08:38:24 +00:00
Christopher Faylor 340d35ad0b * who.texinfo: Oops. Add a couple of important folk. 2001-06-13 17:54:55 +00:00
Christopher Faylor 40ec4c5cdb * who.texinfo: Remove email addresses. Modernize. 2001-06-13 17:50:25 +00:00
Egor Duda 4c15b7aba0 * environ.cc (set_file_api_mode): New function. Move setting
of file APIs mode (OEM/ANSI) here.
(codepage_init): From here.
* winsup.h (set_file_api_mode): Declare it.
* fork.cc (fork_child): Set file APIs mode in forkee.
2001-06-12 11:31:05 +00:00
Earnie Boyd 66a7fbe263 * objidl.h (IMalloc::ReAlloc()): Correct declaration.
(IMalloc::Free()): Ditto.
2001-06-11 20:06:54 +00:00
Earnie Boyd 13a01ce06a * include/shlobj.h (REGSTR_PATH_EXPLORER): Unicode it.
(REGSTR_PATH_SPECIAL_FOLDERS): Ditto.
	* include/regstr.h (REGSTR_PATH_EXPLORER): Add #ifndef guard.
2001-06-11 19:18:52 +00:00
Earnie Boyd a1dd161b72 * profile/configure.in: Make msvcrt.dll version default.
* profile/makefile.in: Build both gcrt1.o and gcrt2.o.
	* provile/configure: Regenerate.
2001-06-11 18:57:39 +00:00
Earnie Boyd 05763a593c * include/shlobj.h (struct _browseinfo): UNICODE it.
(SHBrowseForFolder): Ditto.
	(SHGetPathFromIDList): Ditto.
2001-06-11 18:28:19 +00:00
Christopher Faylor f569bfcfb2 Add missing entry. 2001-06-11 18:20:53 +00:00
Earnie Boyd 37fb7a2ccb * include/stdio.h (swscanf): Make first arugument const.
* include/wchar.h (swscanf): Ditto.
	* include/tchar.h (_tfopen): New _UNICODE define.
	(_tgetenv): Ditto.
	(_tsetlocale): Ditto.
2001-06-11 18:13:15 +00:00
Christopher Faylor 3ecfcf5715 * pinfo.cc: Use autoloaded ToolHelp functions throughout for Win9x.
* autoload.cc: Autoload ToolHelp functions.
2001-06-11 17:57:10 +00:00
Earnie Boyd a179327987 * include/basetsd.h: RC_INVOKED protection and realignment.
Thanks to: Colin Peters <colinpeters@users.sourceforge.net>
2001-06-11 17:29:54 +00:00
Christopher Faylor f375b8d9f4 * path.cc (chdir): Fix call to path_conv constructor so that it REALLY doesn't
check for the null/non-empty path.
2001-06-11 15:20:49 +00:00
Christopher Faylor fc633b63a2 * path.cc (path_conv::update_fs_info): Don't consider remote drives to be NTFS.
Set root_dir before invoking GetDriveType (from Kazuhiro Fujieda
<fujieda@jaist.ac.jp>).  Eliminate extra checks for rootdir.
2001-06-11 03:38:32 +00:00
Christopher Faylor 02782489a9 * path.cc (chdir): Pre-check path for validity before eating trailing space.
Then, ensure that path_conv doesn't check the path for validity again.
2001-06-11 00:24:28 +00:00
Christopher Faylor 161edfaa00 * exceptions.cc (sigdelayed): Ensure that signal is cleared as the last
operation or suffer races.
* sigproc.cc (proc_subproc): Deal with zombie array overflow.
2001-06-10 16:00:23 +00:00
Corinna Vinschen 463513f0e2 * cygwin.din: Add fchdir symbols.
* path.cc (chdir): Guard against invalid parameter.
         (fchdir): New function.
         * include/cygwin/version.h: Bump API minor version to 40.
         * uinfo.cc (internal_getlogin): Remove unused variable.
2001-06-10 10:00:21 +00:00
Corinna Vinschen d4217d5680 * syscalls.cc (seteuid): Set environment variables USERNAME and
USERDOMAIN before impersonation to workaround a LookupAccountSid()
        misbehaviour.
        * uinfo.cc (internal_getlogin): Revert most of the previous change.
        Don't set environment variables USERNAME and USERDOMAIN. That's
        the job of seteuid() now. Try to get logon server from Lsa
        only if logon server isn't already known.
2001-06-09 21:25:55 +00:00
Christopher Faylor 5691881058 * thread.cc (pthread_cond::Broadcast): Don't print error messages on invalid
mutexs - user programs are allowed to call pthread_cond_broadcast like that.
(__pthread_cond_timedwait): Initialise themutex properly.
(__pthread_cond_wait): Initialise themutex properly.
2001-06-07 19:55:06 +00:00
Earnie Boyd 5a2f66ab43 * Makefile.in (bindist): Reassign value of exec_prefix on make command
line.
2001-06-06 19:02:59 +00:00
Corinna Vinschen 235661a37f * fhandler_console.cc (fhandler_console::dup): Allocate space for
savebuf on Cygwin heap.
        (fhandler_console::char_command): Ditto. Use correct values for size.
2001-06-05 17:59:46 +00:00
Egor Duda 149da470f3 * security.h (NTWriteEA): Change prototype.
* ntea.cc (NTReadEA): Don't check for global ntea setting, now
it's caller responsibility.
(NTWriteEA): Ditto.
* security.cc (get_file_attribute): Read attribute from EA only
if 'ntea' is enabled.
(set_file_attribute): Ditto.
* path.h: (class path_conv): Add members to store file system
information.
(path_conv::get_drive_type): New function.
* syscalls.cc (stat_worker): Use it.
* path.cc (path_conv::update_fs_info): New functions.
(path_conv::check): Get file system information from device where
file resides. On NTFS, try to read symlink contents from EA.
(get_symlink_ea): New function.
(set_symlink_ea): Ditto.
(symlink): Store symlink in extended attribute, if possible.
2001-06-05 10:45:52 +00:00
Corinna Vinschen fa821be37b * fhandler.cc (fhandler_disk_file::fstat): Always reset file position
to original value after checking for executable magic.
2001-06-05 09:21:39 +00:00
Earnie Boyd 2c1296f856 * profile/Makefile.in (mkinstalldirs): Correct relative path. 2001-06-04 20:45:30 +00:00
Earnie Boyd 4c4db90d7e * include/_mingw.h: Change version to 1.0.
Makefile.in: Ditto.
2001-06-04 20:01:10 +00:00
Corinna Vinschen f7fa593d6b * cygheap.h (cygheap_user::cygheap_user): Initialize token to
INVALID_HANDLE_VALUE.
        * uinfo.cc (uinfo_init): Close token handle if needed.
2001-06-04 14:29:54 +00:00
Christopher Faylor ac5561f2ed * path.cc (normalize_posix_path): Revert .. check removed by previous changes.
* cygheap.h: Temporarily declare path_prefix_p here.
2001-06-04 01:28:09 +00:00
Corinna Vinschen 9f13167f77 * net.cc (wsock_event): Add destructor. 2001-06-03 22:18:19 +00:00
Christopher Faylor aa7a61121e * dlfcn.cc (dlclose): Do not call FreeLibrary if the symbol to close was
obtained by dlopen(NULL,...).
2001-06-03 14:13:12 +00:00
Christopher Faylor 77d130214c * syscalls.cc (sleep): Try to be a little more accomodating of signal arrival.
Ensure that the signal handler is called.
2001-06-03 03:13:14 +00:00
Christopher Faylor 7ceb1cac3a * cygheap.cc (cygheap_root::cygheap_rot): Remove constructor.
(cygheap_root::~cygheap_root): Remove destructor.
(cygheap_root::operator =): Remove.
(cygheap_root::set): New method.
* cygheap.h (cygheap_root): Reflect above changes.  Store root info in
mount-like structure.
(cygheap_root:posix_ok): New method.
(cygheap_root::ischroot_native): Ditto.
(cygheap_root::unchroot): Ditto.
(cygheap_root::exists): Ditto.
(cygheap_root::posix_length): Ditto.
(cygheap_root::posix_path): Ditto.
(cygheap_root::native_length): Ditto.
(cygheap_root::native_path): Ditto.
* dir.cc (opendir): Remove special chroot test.
* path.cc (path_prefix_p): Remove front end.
(normalize_posix_path): Reorganize chroot tests to accomodate new convention of
allowing paths using posix chroot prefix.
(path_conv::check): Pass a "already ran normalize" option to
conv_to_win32_path.  Return if there is an error from this function.
(mount_info::conv_to_win32_path): Add extra argument.  Don't call
normalize_posix_path if caller has already done so.  Substitute chroot setting,
if any, for root translation.  Add chroot checking to final output step.
* shared_info (mount_info): Accomodate additional argument to
conv_to_win32_path.
* syscalls.cc (chroot): Store both normalized posix path and native path in
chroot.
2001-06-03 02:31:16 +00:00