2002-03-06 Christopher Faylor * path.cc (normalize_posix_path): Avoid runs of '.'s > 2. 2002-03-05 Christopher Faylor * errno.cc: Change EPERM associated text to "Operation not permitted" throughout. 2002-03-05 Christopher Faylor * fhandler_socket.cc (fhandler_socket::close): Respond to signals while looping, waiting for socket to close. Superstitiously clear last error when WSAEWOULDBLOCK. 2002-03-05 Robert Collins * cygserver_transport_pipes.cc (transport_layer_pipes::transport_layer_pipes): Always init - until static members work correctly. * shm.cc (shmget): Initialize the security descriptor - thanks Corinna! * include/sys/ipc.h: Make the ipc control constants partitioned off from the sem control constants. 2002-03-04 Christian Lestrade * include/sys/termios.h: Define _POSIX_VDISABLE. Define CCEQ macro. * fhandler_termios.cc: Include . (line_edit): Recognize disabled c_cc[] chars. Ignore VDISCARD when not in ICANON mode. 2002-03-04 Dmitry Timoshkov * syscalls.cc (truncate64): Use ftruncate64 directly to not lose upper 32 bits. 2002-03-04 Robert Collins * cygserver_shm.cc (delete_shmnode): New function. (client_request_shm::serve): Use it. 2002-03-04 Robert Collins * cygserver_shm.cc (client_request_shm::serve): Implement SHM_DETACH. * shm.cc (shmdt): Implement. 2002-03-04 Robert Collins * cygserver_shm.cc: Run indent. (deleted_head): New global for storing shm id's pending deletion. (client_request_shm::serve): Return ENOSYS for invalid request types. Implement SHM_DEL - delete a shm id. * cygserver_shm.h (SHM_DEL): New type value. * shm.cc (delete_inprocess_shmds): New function, does what it's name implies. (shmctl): Implement shm_rmid control type. 2002-03-04 Robert Collins * Makefile.in (install): Remove install-bin to allow make install to work. 2002-03-03 Robert Collins * shm.cc (shmat): Prevent a compile error. (shmdt): Set errno as this function is incomplete. 2002-02-28 Christopher Faylor * times.cc: Remove if 0'd code. Clean up slightly. 2002-02-28 Robert Collins * Merged cygwin_daemon into head minus the new shm and ipc exports. 2002-02-28 Robert Collins * fhandler_tty.cc (fhandler_tty_slave::open): More debugging. (fhandler_tty_slave::read): Fix printf type for the handle. * tty.cc (tty::common_init): Add a FIXME for security. 2002-01-29 Robert Collins * Makefile.in (OBJS): Remove duplicate localtime.o. 2002-01-17 Robert Collins * cygserver.cc (check_and_dup_handle): Consolidate the two variants for simplicity. Add Some basic debug output. (client_request_attach_tty::serve): Use the new debug_printf for clarity. Mark the duplicated handles as inheritable - fixup_after_fork() doesn't reopen tty's. 2002-01-16 Robert Collins * cygserver.cc (transport): Correct scope. (client_request_attach_tty::serve): Add more debug information. Fix erroneous use of transport instead of conn. * cygserver_transport_pipes.cc (transport_layer_pipes::close): More debug. (transport_layer_pipes::read): Ditto. (transport_layer_pipes::write): Ditto. (transport_layer_pipes::impersonate_client): Ditto. Mon Oct 8 7:41:00 2001 Robert Collins * cygserver.cc (server_request::process): Rename client_request_shm_get to client_request_shm. * cygserver_process.cc (process_cache::add): Rename to add_task. Use process_cleanup instead of process_request. (process_cache::remove_process): New method. (process::process): Initialize new members. (process::~process): New member. (process::cleanup): New method. (process::add_cleanup_routine): New method. (process_request::process): Rename to process_cleanup. Call the process object's cleanup method and then delete it. (process_process_param::request_loop): Remove the signalling process. * cygserver_shm.cc: Globally rename client_request_shm_get to client_request_shm. (client_request_shm_get::serve): Handle attach request counting. * cygserver_shm.h: Globally rename client_request_shm_get to client_request_shm. (class shm_cleanup): New class. * shm.cc: Globally rename client_request_shm_get to client_request_shm. (client_request_shm::client_request_shm): New constructor for attach requests. (shmat): Use it. * include/cygwin/cygserver_process.h (class process_request): Rename to process_cleanup. (class cleanup_routine): New class. (class process): New members and methods to allow calling back when the process terminates. Thu Oct 4 14:12:00 2001 Robert Collins * cygserver.cc (request_loop): Make static. (main): Use new cache constructor syntax. Start cache worker threads. Cleanup the cache at shutdown. * cygserver_process.cc: Run indent. (process_cache::process_cache): Add a trigger to use when adding a process. (process_cache::process): Move process_entry to process. Insert at the end of the list. Trigger the request loop when new process's inserted. (process_cache::process_requests): Do it. (process_cache::add): New method. (process_cache::handle_snapshot): New method. (process::process): Merge in the process_entry fields. (process::handle): Make a stub function. (process::exit_code): New method. (process_request::process): New method. (process_process_param::request_loop): New method. * cygserver_shm.cc: New header dependency - threaded_queue.h. * threaded_queue.cc (threaded_queue::cleanup): Clearer messages. (queue_process_param::stop): Short spinlock on interruptible threads. * threaded_queue.h (class threaded_queue): New constructor. * include/cygwin/cygserver_process.h (process_request): New class. (process_entry): Remove. (process): Merge in process_entry. (process_cache): Inherit from threaded_queue. Tue Oct 2 23:24:00 2001 Robert Collins * cygserver.cc (class server_process_param): Use new constructor syntax. * cygserver_process.cc (process_cache::~process_cache): New function. * threaded_queue.cc: Define condition debug_printf. Run indent. (threaded_queue::cleanup): Move queue_process_param guts to a method. (threaded_queue::process_requests): Ditto. (queue_process_param::queue_process_param): New method. (queue_process_param::~queue_process_param): Ditto. (queue_process_param::start): Ditto. (queue_process_param::stop): Ditto. * threaded_queue.h (class queue_process_param): Add support for interruptible request loops. * cygwin/include/cygwin/cygserver_process.h (class process_cache): Add destructor. Tue Oct 2 23:24:00 2001 Robert Collins * cygserver_client.cc: New flag allow_daemon to disable the daemon completely. (cygserver_request): Check it. (cygserver_init): Ditto. * environ.cc (parse_thing): Add (no)daemon option. Tue Oct 2 23:00:00 2001 Robert Collins * shm.cc: Update to handle include changes from HEAD. Tue Oct 2 16:06:00 2001 Robert Collins * Makefile.in: Remove cygserver_shm.o from cygwin1.dll. Rename cygserver_shm_outside.o to cygserver_shm.o. * cygserver.cc (server_request::process): Use the new client_request constructor. * cygserver_client.cc: Remove the #ifdef's stubs for the server method within cygwin. (client_request_attach_tty::client_request_attach_tty): Use the new client_request constructor. (client_request_shutdown::client_request_shutdown): Ditto. (client_request::client_request): Ditto. * cygserver_shm.cc (client_request_shm_get::serve): Remove the #ifdef'd stub for in-cygwin builds. (client_request_shm_get::client_request_shm_get): Use the new client_request constructor, and remove the in-cygwin variants. * cygserver_shm.h (class client_request_shm_get): #ifndef test the serve method - it's only used in cygserver. * shm.cc (client_request_shm_get::client_request_shm_get): New function. * include/cygwin/cygserver.h (request_header): New constructor. (class client_request): Use it. New constructor accepting the header size. #ifndef test the server method - it's only used within cygserver. (client_request_get_version): #ifdef test the server method. (client_request_shutdown): Ditto. (client_request_attach_tty): Ditto. Tue Oct 2 9:57:00 2001 Robert Collins * Makefile.in: add threaded_queue.o to cygserver.exe. * cygserver.cc: Include threaded_queue.h (class server_request): Inherit from queue_request. (class server_process_param): Inherit from queue_process_param. (class server_request_queue): Inherit from threaded_queue. (request_loop): Adjust for new types. (server_request_queue::process_requests): Remove guts to threaded_queue::process_requests. (server_request::server_request): Adjust for new types. (worker_function): Delete. (server_request_queue::create_workers): Delete. (server_request_queue::cleanup): Delete. (server_request_queue::add): Move guts to threaded_queue::add. * threaded_queue.cc: New file. * threaded_queue.h: New file. Mon Oct 1 12:38:00 2001 Robert Collins * cygserver.cc (client_request::serve): New function. * cygserver_process.cc: Inlude for pthread_once. (process_cache::process_cache): Initialise a crtiical section for write access. (process_cache::process): Use the critical section. Also add missing entries to the cache. (do_process_init): New function to initalise class process static variables. (process::process): Ensure that the process access critical section is initialised. (process::handle): Close the handle of old process's when they have terminated and we are returning the handle for a process with the same pid. * cygserver_shm.cc: Run indent. Include cygserver_process.h to allow process cache functionality. (client_request_shm_get::serve): New parameter for process cache support. Use the process cache, not OpenProcess to get a handle to the originating process. Fix a handle leak with token_handle. * cygserver_shm.h (class client_request_shm_get): Update ::serve for process cache support. * cygserver_transport_pipes.cc: Redefine debug_printf to be conditional on DEBUG. * include/cygwin/cygserver.h: Do not implement client_request::serve in the header. * include/cygwin/cygserver_process.h (class process_cache): Add a write access critical section to prevent races when requests from a multithreaded application arrive. Sun Sep 30 23:41:00 2001 Robert Collins * Makefile.in: Add cygserver_process.o to cygserver.exe. * cygserver.cc: Include signal.h and cygwin_version.h. Define debug_printf as a macro. Define DEBUG to a value. (client_request_attach_tty::serve): Add beginning of process cache support. Change from #ifdef DEBUG to work with new DEBUG style. (client_request_get_version::serve): Add beginning of process cache support. (class server_request): New prototype for support of process cache. (class queue_process_param): New class to allow request loop threading. (class server_request_queue): Add beginning of process cache support. Allow request loop threading. (request_loop): Thread function for request loops. (server_request_queue::process_requests): Initiator for threaded request loops. (client_request_shutdown::serve): Add beginning of process cache support. (server_request::server_request): Ditto. (server_request::process): Use debug_printf. Add beginning of process cache support. (server_request_queue::cleanup): Kill off any request loop threads. (server_request_queue::add): Add beginning of process cache support. (handle_signal): Trigger a shutdown. (main): Print out some useful info at startup - version, date time. Add process cache support. Spawn a separate thread for the transport request loop, thus allowing concurrent support for multiple transports. * cygserver_client.cc (client_request_get_version::serve): Add process cache support. (client_request_attach_tty::serve): Add process cache support. (client_request_shutdown::serve): Add process cache support. * cygsserver_process.cc: New file with the process cache support. * cygserver_shm.cc: Redefine debug_printf to allow conditional output. * cygwin.din: Export shmdt(). * shm.cc: Run indent. Update FIXME's. (shmdt): New function. * include/cygwin/cygserver.h (class client_request): Add process cache support. (class client_request_get_version): Ditto. (class client_request_shutdown): Ditto. (class client_request_attach_tty): Ditto. * include/cygwin/cygserver_process.h: New header for process cache support. Sun Sep 30 8:52:00 2001 Robert Collins * include/cygwin/cygserver_transport.h: Add copyright header. * include/cygwin/cygserver_transport_pipes.h: Ditto. * include/cygwin/cygserver_transport_sockets.h: Ditto. Sat Sep 29 20:40:00 2001 Robert Collins * Makefile.in: Add cygserver_transport_sockets.o to DLL_OFILES. Add cygserver_transport_sockets_outside.o to cygserver.exe. * cygserver.cc: Include new include files. * cygserver_client.cc: Ditto. * cygserver_shm.h: No need to include now. * cygerver_transport.cc: Include new include files. (transport_layer_base::transport_layer_base): Strip back to a stub. (transport_layer_base::listen): Ditto. (transport_layer_base::accept): Ditto. (transport_layer_base::close): Ditto. (transport_layer_base::read): Ditto. (transport_layer_base::write): Ditto. (transport_layer_base::connect): Ditto. * cygserver_transport_pipes.cc: Include new header "cygwin/cygserver_transport_pipes.h". * cygserver_transport_sockets.cc: New file. * dcrt0.cc: No need to include now. * fhandler_tty.cc: Ditto. * tty.cc: Ditto. * include/cygwin/cygserver_transport.h: Strip the base class to a stub. Remove the cygserver_transport_pipes class. * include/cygwin/cygserver_transport_pipes.h: New file. * include/cygwin/cygserver_transport_sockets.h: New file. Tue Sep 25 16:22:00 2001 Robert Collins * autoload.cc: Add dynamic load statement for 'ImpersonateNamedPipeClient'. * Makefile.in: Add new object files, and build instructions for cygserver.exe. * cygwin.din: Export ftok, shmat, shmctl and shmget. * dcrt0.cc: Additional includes for cygserver support. (dll_crt0_1): Initialise the cygserver client. * fhandler.h (fhandler_tty): New method cygserver_attach_tty. * fhandler_tty.cc: Additional includes for cygserver support. (fhandler_tty_slave::open): Attempt to use the cygserver when obtaining handles from the parent process. On failure or 9x use the current method. (fhandler_tty_slave::cygserver_attach_tty): New function. * fork.cc (fork_child): Fixup shm memory mapped areas. * pinfo.h: Declare fixup_shms_after_fork(). * security.h: Declare alloc_sd(). * tty.cc: Additonal includes to support cygserver. (tty::common_init): Don't allow others to open us if the cygserver is running. * winsup.h: Declare cygserver_running. * cygserver.cc: New file. * cygserver_client.cc: New file. * cygserver_shm.cc: New file. * cygserver_shm.h: New file. * cygserver_transport.cc: New file. * cygserver_transport_pipes.cc: New file. * ipc.cc: New file. * shm.cc: New file. * include/cygwin/cygserver.h: New file. * include/cygwin/cygserver_transport.h: New file. * include/sys/ipc.h: New file. * include/sys/shm.h: New file. 2002-02-28 Robert Collins * thread.cc (semaphore::TryWait): Set errno as required by posix 1003.1. (__sem_wait): Ditto. (__sem_trywait): Ditto. 2002-02-27 Christopher Faylor * include/cygwin/version.h: Bump DLL minor number. 2002-02-23 Corinna Vinschen * cygwin.din (fstat64): New symbol. (ftruncate64): Ditto. (lseek64): Ditto. (lstat64): Ditto. (mmap64): Ditto. (seekdir64): Ditto. (stat64): Ditto. (telldir64): Ditto. (truncate64): Ditto. * dir.cc (telldir64): New function. (telldir): Call telldir64(). (seekdir64): New function. (seekdir): Call seekdir64(). * fhandler.h: Redefine all methods using __off32_t to use __off64_t. * fhandler.cc: Use __off64_t and struct __stat64 throughout. * fhandler_clipboard.cc: Ditto. * fhandler_disk_file.cc: Ditto. * fhandler_dsp.cc: Ditto. * fhandler_floppy.cc: Ditto. * fhandler_mem.cc: Ditto. * fhandler_random.cc: Ditto. * fhandler_socket.cc: Ditto. * fhandler_tape.cc: Ditto. * fhandler_zero.cc: Ditto. * pipe.cc: Ditto. * glob.c: Ditto, call lstat64 and stat64 in Cygwin. * mmap.cc: Use __off64_t throughout. (mmap64): New function. * sec_acl.cc (acl_worker): Use struct __stat64, call stat64 and lstat64. * syscalls.cc (lseek64): New function. (stat64_to_stat32): Ditto. (fstat64): Ditto. (stat64): Ditto. (lstat64): Ditto. (ftruncate64): Ditto. (truncate64): Ditto. (_fstat): Call fstat64. (_stat): Call stat64. (cygwin_lstat): Rename to avoid declaration problem. Call lstat64. (stat_worker): Use struct __stat64. (access): Ditto. (ftruncate): Call ftruncate64. (truncate): Call truncate64. * wincap.cc: Set flag has_64bit_file_access appropriately. * wincap.h: Add flag has_64bit_file_access. * winsup.h (ILLEGAL_SEEK): Define as __off64_t. (stat_dev): Declare using struct __stat64. (stat_worker): Ditto. * include/cygwin/stat.h (struct __stat32): Define if compiling Cygwin. (struct __stat64): Ditto. (struct stat): Revert definition with explicitly sized datatypes. Eliminate sized field names. * include/cygwin/types.h (blksize_t): New type. (__blkcnt32_t): Ditto. (__blkcnt64_t): Ditto. (blkcnt_t): Ditto. 2002-02-22 Christopher Faylor * sync.h (new_muto): Just accept an argument which denotes the name of the muto. Use this argument to construct static storage. * cygheap.cc (cygheap_init): Reflect above change. * exceptions.cc (events_init): Ditto. * malloc.cc (malloc_init): Ditto. * path.cc (cwdstuff::init): Ditto. * cygheap.h (cwdstuff): Change name of lock element to make it less generic. * path.cc (cwdstuff::get_hash): Ditto. (cwdstuff::get_initial): Ditto. (cwdstuff::set): Ditto. (cwdstuff::get): Ditto. * sigproc.cc (proc_subproc): Ditto. * debug.cc (lock_debug): Change to method. Use method rather than macro throughout. * tty.h (tty_min::kill_pgrp): Declare new method. * fhandler_termios.cc (tty_min::kill_pgrp): New method. (fhandler_termios::line_edit): Use new method for killing process. * dcrt0.cc (do_exit): Ditto. * dtable.cc (dtable::get_debugger_info): New method for inheriting dtable info from a debugger. * tty.cc (tty_init): Attempt to grab file handle info from parent debugger, if appropriate. # dtable.cc (dtable::stdio_init): Make this a method. (dtable::init_std_file_from_handle): Don't set fd unless it's not open. (dtable::build_fhandler_from_name): Move name setting to dtable::build_fhandler. (dtable::build_fhandler): Add win32 name parameter. * dcrt0.cc (dll_crt0_1): Change to use dtable stdio_init. * dtable.h (dtable): Reflect build_fhandler parameter change. * mmap.cc (mmap_record::alloc_fh): Don't set name parameter in build_fhandler. * net.cc (fdsock): Remove set_name call since it is now handled by build_fhandler. * sigproc.cc (proc_subproc): Release muto as early as possible. 2001-02-22 Corinna Vinschen * smallprint.c (rn): Allow long long values. (__small_vsprintf): Add 'D', 'U' and 'X' formats for long long parameters. 2002-02-19 Christopher Faylor * fhandler.cc (fhandler_base::puts_readahead): Remove default parameter setting. Newer gcc's complain about this. (fhandler_base::set_readahead_valid): Ditto. * fhandler_dsp.cc (Audio::open): Ditto. (fhandler_dev_dsp::open): Ditto. 2002-02-19 Christopher Faylor * fork.cc (fork_parent): Use sec_user_nih to control process/thread inheritance/permission. * spawn.cc (spawn_guts): Ditto. * security.cc (create_token): Initialize token so that it is not tested for bogus value later. Use sec_user to control process/thread creation. * security.h (__sec_user): Rename declaration from sec_user. (sec_user_nih): Declare here as inline function wrapper for __sec_user. (sec_user): Ditto. * sigproc.cc (czombies): Allocate a character array for zombies to avoid constructor overhead (extremely hackish, I know). (cpchildren): Ditto. (pchildren): New define. (zombies): Ditto. (getsem): Use sec_user_nih to control semaphore inheritance/permission. 2002-02-16 Christopher Faylor * times.cc (hires::prime): Restore thread priority on failure condition. * uinfo.cc (uinfo_init): Use more robust method for determining if process was invoked from a non-cygwin process. * sync.h (muto::init): Eliminate "inheritance" parameter. (new_muto): Reflect removal of parameter. * sync.cc (muto::init): Ditto. * cygheap.cc (cygheap_init): Ditto. * debug.cc (threadname_init): Ditto. * exceptions.cc (events_init): Ditto. * malloc.cc (malloc_init): Ditto. * path.cc (cwdstuff::init): Ditto. * sigproc.cc (sigproc_init): Ditto. * grp.cc (group_lock): Use different method for locking with static member. (read_etc_group): REALLY ensure that read lock mutex is released. * passwd.cc (passwd_lock): Use different method for locking with static member. (read_etc_passwd): REALLY ensure that read lock mutex is released. * shared.cc (sec_user): Correct reversed inheritance test. 2002-02-15 Christopher Faylor * hires.h (hires::usecs): Rename from utime. Accept an argument. * strace.cc (strace::microseconds): Use hires class for calculating times. * sync.h (new_muto): Use NO_COPY explicitly in declaration. * times.cc (gettimeofday): Reflect change in usecs argument. (hires::usecs): Ditto. Changed name from utime. * winsup.h (NO_COPY): Add nocommon attribute to force setting aside space for variable. * regcomp.c (REQUIRE): Add a void cast to bypass a warning. 2002-02-15 Christopher Faylor * hires.h: New file. * times.cc (gettimeofday): Use hires class for calculating current time. (hires::prime): New method. (hires::utime): Ditto. 2002-02-14 Christopher Faylor * include/sys/cygwin.h (cygwin_getinfo_types): New CW_STRACE_ACTIVE. * external.cc (cygwin_internal): Handle CW_STRACE_ACTIVE. 2002-02-14 Christopher Faylor * exceptions.cc (unused_sig_wrapper): Eliminate unused parameter to asm. * external.cc (cygwin_internal): Change CW_STRACE_ON to CW_STRACE_TOGGLE. * strace.cc (strace::hello): Toggle strace on and off. * sync.cc (muto::init): Renamed from constructor. * sync.h (muto::new): Delete. (muto::delete): Ditto. (new_muto): Simplify. Use muto.init for nearly everything. * uinfo.cc (uinfo_init): Avoid closing a NULL handle. * include/sys/cygwin.h (cygwin_getinfo_types): Rename CW_STRACE_OFF to CW_STRACE_TOGGLE. Delete CW_STRACE_OFF. * include/sys/strace.h (strace): Add "inited" field. 2001-02-12 Corinna Vinschen * include/cygwin/acl.h: Fix definition of aclent_t. 2002-02-10 Christopher Faylor * Makefile.in (DLL_OFILES): Consolidate object files. 2002-02-10 Corinna Vinschen * child_info.h, cygheap.h, fhandler_clipboard.cc, fhandler_dsp.cc, fhandler_floppy.cc, fhandler_mem.cc, fhandler_random.cc, fhandler_tape.cc, fhandler_zero.cc, grp.cc, mmap.cc, passwd.cc, pinfo.cc, pinfo.h, pipe.cc, sec_acl.cc, sec_helper.cc, security.cc, security.h, thread.h, uinfo.cc, include/cygwin/acl.h: Fix copyright. 2002-02-10 Corinna Vinschen * child_info.h, cygheap.h, dcrt0.cc, dir.cc, fhandler.cc, fhandler.h, fhandler_clipboard.cc, fhandler_disk_file.cc, fhandler_dsp.cc, fhandler_floppy.cc, fhandler_mem.cc, fhandler_random.cc, fhandler_tape.cc, fhandler_zero.cc, grp.cc, mmap.cc, passwd.cc, pinfo.cc, pinfo.h, pipe.cc, sec_acl.cc, sec_helper.cc, security.cc, security.h, spawn.cc, syscalls.cc, thread.h, uinfo.cc, winsup.h: Change usage of uid_t to __uid16_t, gid_t to __gid16_t and off_t to __off32_t throughout. Use INVALID_UID, INVALID_GID and INVALID_SEEK instead casting -1 to the appropriate type. * winsup.h: Define INVALID_UID, INVALID_GID and INVALID_SEEK. * include/cygwin/acl.h: Define internal __aclent16_t and __aclent32_t types. Don't declare acl functions when compiling Cygwin. * include/cygwin/grp.h: Declare getgrgid() and getgrnam() with correct types for internal usage. 2002-02-10 Corinna Vinschen Patch suggested by Pierre A. Humblet : * uinfo.cc (internal_getlogin): Try evaluating user by SID even if ntsec is off. (uinfo_init): Set primary group even if ntsec is off. 2002-02-09 Corinna Vinschen * include/cygwin/grp.h: New file. * include/cygwin/stat.h: Ditto. * include/cygwin/types.h: Add definitions for __off32_t, __off64_t, off_t, __uid16_t, __uid32_t, uid_t, __gid16_t, __gid32_t and gid_t. * include/sys/cygwin.h: Use correct uid and gid types. 2002-02-09 Corinna Vinschen * dtable.cc (dtable::dup2): Revert previous patch. * fhandler.h: Ditto. (fhandler_socket::recv): Define new method. (fhandler_socket::send): Ditto. * fhandler_socket.cc (fhandler_socket::recv): New method. (fhandler_socket::send): Ditto. (fhandler_socket::read): Call fhandler_socket::recv() now. (fhandler_socket::write): Call fhandler_socket::send() now. * net.cc (class wsock_event): Move definition to wsock_event.h. (fdsock): Revert previous patch. (cygwin_recv): Move implementation to fhandler_socket::recv(). (cygwin_send): Move implementation to fhandler_socket::send(). * wsock_event.h: New file. 2002-02-06 Alexander Gottwald * net.cc (get_2k_ifconf): Create interface entries for tokenring cards. 2002-02-08 Corinna Vinschen * dtable.cc (dtable::dup2): Store fd for fhandler_socket. * fhandler.h (fhandler_base::set_fd): New virtual method. (fhandler_base::get_fd): Ditto. (fhandler_socket::set_fd): Ditto. (fhandler_socket::get_fd): Ditto. * fhandler_socket.cc (fhandler_socket::read): Call cygwin_recv instead of native Winsock recv. (fhandler_socket::write): Call cygwin_send instead of native Winsock send. * net.cc (fdsock): Store fd in fhandler_socket. 2002-02-07 Corinna Vinschen * net.cc (cygwin_getsockname): Fix handling of NULL sun_path. 2002-01-29 Corinna Vinschen * net.cc (getdomainname): Fix registry key for 9x systems, too. 2002-01-29 Corinna Vinschen * net.cc (getdomainname): Fix registry key for NT systems. 2002-01-28 Christopher Faylor * external.cc (cygwin_internal): Initialize various internal settings if required to allow use of some things from user loaded DLL. (CW_STRACE_ON): Add new feature. (CW_CYGWIN_PID_TO_WINPID): Ditto. * pinfo.cc (set_myself): Call "strace.hello" to initiate possible strace session. (pinfo::init): Guard against dereferencing uninitialized myself. * sigproc.cc (wait_sig): Call strace.hello() when __SIGTRACE "signal" received. * strace.cc (strace::hello): New method. * wincap.cc (wincapc::init): Avoid initializing if already initialized. * wincap.h (wincapc::wincapc): New method. * include/sys/cygwin.h: Add new CW_ enums. Kludge typedefs of {g,u}id_t if required. * strace.h (strace::hello): Declare new method. 2002-01-28 Earnie Boyd * include/sys/strace.h (_STRACE_ON): Define. (_STRACE_OFF): Ditto. 2002-01-24 Christopher Faylor * speclib: Ensure that temporary def file is removed. 2002-01-23 Christopher Faylor * speclib: Use rm -f to remove temp file just to quiet any potential warnings. 2002-01-23 Corinna Vinschen * security.cc (create_token): Use sec_user() to create SECURITY_ATTRIBUTES structure for primary token. Use MAXIMUM_ALLOWED access rights instead of TOKEN_ALL_ACCESS. 2002-01-23 Corinna Vinschen * path.cc (symlink): Fix check for already existing file. 2002-01-21 Christopher Faylor * cygmagic: Suppress error output when figuring out if sum takes an option. 2002-01-21 Christopher Faylor * cygmagic: Attempt to figure out if sum takes an option. 2002-01-21 DJ Delorie * Makefile.in (libpthread.a): Pass the assembler also. (libm.a): Ditto. (libc.a): Ditto. * speclib: Specify the assembler to dlltool. 2002-01-21 Christopher Faylor * include/cygwin/version.h: Bump DLL minor number. 2002-01-21 Corinna Vinschen * grp.cc (getgrgid): Don't return default gid entry when ntsec is on. * syscalls.cc (setegid): Don't set primary group in process token. 2002-01-21 Christopher Faylor * speclib: Don't use /dev/null as DLL name. Just default to what's already in .def file. 2002-01-21 Christopher Faylor * exceptions.cc (sig_handle): Remove last vestiges of SA_NOCLDSTOP code which caused SIGCHLD to be ignored. 2002-01-20 Christopher Faylor * include/cygwin/version.h: Bump DLL minor number. 2002-01-20 Christopher Faylor * syscalls.cc (regfree): Make dll_export. 2002-01-20 Christopher Faylor * exceptions.cc (ctrl_c_handler): Convert windows pid to cygwin pid when detecting if we should actually handle CTRL-C. 2002-01-19 Christopher Faylor * Makefile.in (new-cygwin1.dll): Revert previous change. libsupc++.a is only available in libstdc++-v3. 2002-01-19 Christopher Faylor * exceptions.cc (sig_handle_tty_stop): Don't send SIGCHLD if parent doesn't want it. (sig_handle): Don't check for SA_NOCLDSTOP here. We don't have enough information. 2002-01-19 Christopher Faylor * include/cygwin/version.h: Bump DLL minor number. 2002-01-19 Christopher Faylor * Makefile.in (new-cygwin1.dll): Just use -lsupc++ for link. * sigproc.cc (proc_exists): Change existence criteria. * sync.h (new_muto): Add volatile to definition to avoid gcc optimization problems. 2002-01-19 Corinna Vinschen * include/cygwin/version.h: Bump API minor version to 51. 2002-01-19 Mark Bradshaw * cygwin.din: Add recvmsg and sendmsg. * net.cc: Add cygwin_recvmsg and cygwin_sendmsg. * /usr/include/sys/socket.h: Add recvmsg and sendmsg. 2002-01-19 Corinna Vinschen * security.cc (create_token): Close processes token handle as soon as it's not used anymore. 2002-01-17 Corinna Vinschen * Makefile.in: Add fnmatch.o to DLL_OFILES. * cygwin.din: Add fnmatch export symbol. * fnmatch.c: New file. * include/fnmatch.h: Ditto. * include/cygwin/version.h: Bump API minor version to 50. 2002-01-15 Corinna Vinschen * path.cc (fchdir): Call chdir with full windows path. 2002-01-14 Corinna Vinschen * dir.cc: Use INVALID_FILE_ATTRIBUTES instead of "(DWORD) -1" for file attributes throughout. * fhandler.cc: Ditto. * fhandler_disk_file.cc: Ditto. * path.cc: Ditto. * path.h: Ditto. * syscalls.cc: Ditto. * times.cc (utimes): Use path_conv::isdir() instead of explicit GetFileAttributes() call. 2002-01-13 Christopher Faylor * dcrt0.cc (multiple_cygwin_problem): Clarify logic and make CYGWIN_MISMATCH_OK more powerful. 2002-01-10 Christopher Faylor * exceptions.cc (sig_handle): Accept a second argument indicating whether the signal came from this process or not. * sigproc.h: Reflect sig_handle arg change. * signal.cc (kill_pgrp): Add sigframe info. (abort): New function. Eliminates newlib function of same name. * sigproc.cc (wait_sig): Pass "signal from this process" value as arg 2. 2002-01-10 Corinna Vinschen * syscalls.cc (pathconf): Guard _PC_PATH_MAX branch against invalid file parameter. 2002-01-09 Christopher Faylor Robert Collins * exceptions.cc (early_stuff_init): Rename from misnamed set_console_handler. (ctrl_c_handler): Attempt to work around potential signal duplication during process startup. (sig_handle): Ignore SIGINT when we're just an "exec stub". * spawn.cc (spawn_guts): Store pid of spawned process in global for use by ctrl_c_handler. * dcrt0.cc (dll_crt0_1): Call renamed initialization function. * winsup.h: Reflect function name change. 2002-01-08 Corinna Vinschen * net.cc (cygwin_accept): Set sun_path for newly connected socket. 2002-01-07 Ralf Habacker * Makefile.in: Add uninstall target. 2002-01-07 Christopher Faylor * sigproc.cc (getsem): Clean up debugging output. 2002-01-07 Christopher Faylor * sigproc.cc (getsem): Set errno when unable to create own semaphore. Reorganize to make clearer that error should only come from initial creation of process semaphore. 2002-01-06 Christopher Faylor * dtable.cc (dtable::init_std_file_from_handle): Add some defensive code to invalid handle case. 2002-01-06 Corinna Vinschen * ioctl.cc (ioctl): Make third argument optional. * include/sys/ioctl.h: Ditto in declaration. * dtable.cc (dtable::init_std_file_from_handle): Revert previous bogus patch. * window.cc (WndProc): Raise SIGURG instead of SIGIO in case of FD_OOB message. 2002-01-05 Christopher Faylor * dir.cc (opendir): Guarantee release of alloced fhandler structure on error. 2002-01-05 Corinna Vinschen * exceptions.cc (sig_handle): Set default action for SIGURG to SIG_IGN. 2002-01-05 Corinna Vinschen * dtable.cc (dtable::init_std_file_from_handle): Don't treat NULL handle as errorneous. 2002-01-04 Christopher Faylor * cygmagic: Change logic for equality test. 2002-01-04 Christopher Faylor * dir.cc (opendir): Don't attempt to call sub-opendir if ENOENT. 2002-01-04 Corinna Vinschen * net.cc: Replace usage of AF_UNIX by Posix compliant AF_LOCAL throughout. (socketpair): Explicitly allow SOCK_STREAM and SOCK_DGRAM socket types in families AF_UNIX and AF_LOCAL. Explicitly allow PF_UNSPEC, PF_LOCAL and PF_INET protocols. Return error otherwise. Implement datagram socketpairs. 2002-01-01 Christopher Faylor * speclib: Remove temp files automatically. 2002-01-01 Corinna Vinschen * fhandler.h (fhandler_socket::sun_path): New private member. (fhandler_socket::set_sun_path): New method. (fhandler_socket::get_sun_path): Ditto. * fhandler_socket.cc (fhandler_socket::fhandler_socket): Initialize sun_path to NULL. (fhandler_socket::~fhandler_socket): Free sun_path if needed. (fhandler_socket::set_sun_path): New method. * net.cc (cygwin_bind): Set sun_path to path of local socket file. (cygwin_getsockname): Add code to return correct sockaddr for unix domain sockets.