summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin
Commit message (Collapse)AuthorAgeFilesLines
* * fhandler.cc (fhandler_base::set_flags): Change priority of "linked in"Christopher Faylor2002-06-202-27/+34
| | | | default binmode setting so that it has priority over optional setting.
* Use hMainProc where appropriate, throughout.Christopher Faylor2002-06-199-86/+112
| | | | | | | * environ.cc (spenv::retrieve): Add debugging statements. * pinfo.cc (set_myself): Don't call strace.hello if already stracing. * strace.cc (strace): Move NO_COPY keyword so that it will actually take effect.
* * uinfo.cc (cygheap_user::ontherange): Call NetUserGetInfo() only withCorinna Vinschen2002-06-192-23/+24
| | | | non-NULL logserver parameter.
* rewordChristopher Faylor2002-06-161-2/+2
|
* * cygheap.h (cygheap_user::issetuid): New method.Christopher Faylor2002-06-167-26/+51
| | | | | | | | | | | | | * dtable.cc (dtable::vfork_child_dup): Use new method to determine if we are in "setuid mode." * fork.cc (fork_parent): Ditto. * spawn.cc (spawn_guts): Ditto. * syscalls.cc (seteuid32): Ditto. (setegid32): Ditto. * environ.cc (spenv::retrieve): (Suggested by Pierre Humblet) Do potential recalculation of cygheap_user stuff when in setuid mode. Return special value when environment variable exists but should not be added. (build_env): Don't add retrieved value to dstp if it is 'dont_add'.
* Changes suggested by Pierre Humblet.Christopher Faylor2002-06-162-26/+37
| | | | | | | | | | * environ.cc (NL): New macro. (conv_envvars): Use NL macro to fill in name and namelen. (spenv::namelen): New field. (spenvs): Use NL to fill in name and namelen. (spenv::retrieve): Eliminate length argument. Instead, use namelen throughout. (build_env): Don't calculate length of initial FOO= part of environment. Accommodate spenv::retrive argument change.
* * cygheap.h (cygheap_user::winname): New field.Christopher Faylor2002-06-164-8/+29
| | | | | | | | | * cygheap.cc (cygheap_user::set_name): Clear winname when name changes. * uinfo.cc (cygheap_user::env_logsrv): Avoid calculating server when Windows user == SYSTEM. (cygheap_user::env_domain): Set winname here too. (cygheap_user::env_userprofile): Eliminate superfluous tests. (cygheap_user::env_name): Seed winname by calling env_domain().
* * spawn.cc (spawn_guts): Revert removal of ciresrv.moreinfo->uid = ILLEGAL_UID.Christopher Faylor2002-06-162-0/+6
|
* * child_info.h (child_proc_info): Declare as base class.Christopher Faylor2002-06-158-46/+71
| | | | | | | | | | | | | | | | | (spawn_info): Declare as alias of child_proc_info to aid debugging. (fork_info): Ditto. * cygheap.cc (cygheap_fixup_in_child): Use child_proc_info global rather than parameter. * cygheap.h (cygheap_fixup_in_child): Reflect above change in declaration. * dcrt0.cc (_dll_crt0): Move 'si' definition here. Assign child_proc_info. (dll_crt0_1): Accommodate cygheap_fixup_in_child and *_info changes. * environ.cc (spenv::retrieve): Make regparm. * environ.h (environ_init): Ditto. (win_env::add_cache): Ditto. (build_env): Ditto. (getwinenv): Ditto. * fork.cc (sync_with_parent): Use fork_info global. (fork_child): Ditto.
* * uinfo.cc (cygheap_user::ontherange): Don't set HOMEDRIVE or HOMEPATH unlessChristopher Faylor2002-06-152-0/+6
| | | | one or the other is specified.
* * cygheap.h (cygheap_user::userprofile_env_buf): New static member.Christopher Faylor2002-06-145-7/+20
| | | | | | | * environ.cc (build_env): Add debugging statement. (spenvs): Switch functions for USERDOMAIN and USERNAME. * spawn.cc (spawn_guts): Move environment initialization prior to cygheap_setup_for_child or environment info will never be copied to child.
* * cygheap.h (cygheap_user): Add static members to hold home{drive,path} info.Christopher Faylor2002-06-143-24/+38
| | | | | * uinfo.cc (cygheap_user::ontherange): Use static class members for local HOME* storage.
* * cygheap.cc (cygheap_user::set_logsrv): Remove.Christopher Faylor2002-06-148-265/+164
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (cygheap_user::set_domain): Ditto. * cygheap.h (cygheap_user::set_logsrv): Remove declaration. (cygheap_user::set_domain): Ditto. (cygheap_user::env_domain): Declare new method. (cygheap_user::env_name): Ditto. * environ.cc (spenvs): Add two environment variables. * spawn.cc (spawn_guts): Call build_env after RevertToSelf. Always set ciresrv.mount_h. (cygheap_user::ontherange): Recalculate homedrive/homepath if they are empty. Use env_logsrv to get logon server. (cygheap_user::env_logsrv): Calculate server name here rather than relying on it having been previously calculated. (cygheap_user::env_domain): Ditto for domain name. (cygheap-user::env_name): New method. * syscalls.cc (seteuid32): Do not get or set the environment. Do not call LookupAccountSid nor internal_getlogin. Set cygheap->user name and sid from the passwd entry. * uinfo.cc (uinfo_init): Only call internal_getlogin when starting from a non Cygwin process and use the values returned in user. (internal_getlogin): Simplify to case where starting from a non Cygwin process. Store return values in user and return void. Do not set the Windows default environment. * dcrt0.cc (dll_crt0_1): Call uinfo_init only when needed. Do not set myself->uid nor reset user.sid. * spawn.cc (spawn_guts): Get the sid from cygheap->user. Always RevertToSelf(). Don't set uid in impersonated case. * cygheap.cc (cygheap_user::set_sid): Do not set orig_sig. (cygheap_user::set_orig_sid): New. * cygheap.h: Declare cygheap_user::set_sid. * winsup.h: Add argument to uinfo_init().
* * environ.cc (build_env): If realloc moves envblock, move s with it.Corinna Vinschen2002-06-142-1/+14
|
* fix typoChristopher Faylor2002-06-131-1/+1
|
* * winver.rc: Add more words to copyright.Christopher Faylor2002-06-137-6/+9
|
* * cygheap.cc (cygheap_user::set_name): Revert previous change.Corinna Vinschen2002-06-133-1/+10
| | | | | * environ.cc (spenv::retrieve): Check return value of call to cygheap->user.*from_cygheap().
* * cygheap.cc (cygheap_user::set_name): Remove setting homedrive andCorinna Vinschen2002-06-133-4/+11
| | | | | | | homepath to NULL. (cygheap_user::set_logsrv): Fix free'ing of plogsrv. * cygheap.h (cygheap_user::cygheap_user): Initialize homedrive and homepath to NULL.
* * security.cc (get_logon_server): Use strcasematch rather than strcasecmp.Christopher Faylor2002-06-132-5/+10
|
* * path.cc (chdir): Minor cleanup.Christopher Faylor2002-06-133-4/+8
|
* * environ.cc (build_env): Correctly fill out windows environment block withChristopher Faylor2002-06-132-29/+64
| | | | win32 paths rather than posix paths.
* * cygheap.cc (cygheap_user::set_name): Set homedrive and homepath to NULL onChristopher Faylor2002-06-127-179/+344
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | user name change. (cygheap_user::set_logsrv): Allocate enough space for leading \\ so that we can put this in the environment, if needed. * cygheap.h (homebodies): New enum. (cygheap_user::homedrive): New field. (cygheap_user::homepath): Ditto. (cygheap_user::env_logsrv): New method. (cygheap_user::env_homepath): New method. (cygheap_user::env_homedrive): New method. (cygheap_user::env_userprofile): New method. (cygheap_user::ontherange): New method. * environ.cc (envsize): Eliminate debugging argument. (environ_init): Assume that envc counts number of elments not total size. (spenv): New class. (spenvs): New array, renamed from forced_winenv_vars, using spenv. (spenv::retrieve): New method. (build_env): Rename from 'winenv' -- one stop shopping for building new environment blocks for both windows and "unix". * environ.h (build_env: Declare. (winenv): Delete declaration. (envsize): Ditto. * spawn.cc (spawn_guts): Use build_env to build windows and cygwin environment blocks. * uinfo.cc (internal_getlogin): Eliminate environment manipulation. Default to info from GetUserName if it exists. Move HOMEPATH and HOMEDRIVE stuff elsewhere. Move HOME setting elsewhere. Only set HOME environment variable in processes that are not parented by a cygwin process. (cygheap_user::ontherange): Define new method. (cygheap_user::env_logsrv): Ditto. (cygheap_user::env_homepath): Ditto. (cygheap_user::env_homedrive): Ditto. (cygheap_user::env_userprofile): Ditto.
* fix commentChristopher Faylor2002-06-111-8/+1
|
* * spawn.cc (spawn_guts): More hToken removal cleanup.Christopher Faylor2002-06-114-31/+30
|
* * spawn.cc (spawn_guts): Define sec_attribs and call sec_user_nih() only once.Christopher Faylor2002-06-112-11/+14
|
* * Makefile.in: Ensure that -MD gets added to CFLAGS regardless of CFLAGSChristopher Faylor2002-06-118-170/+55
| | | | | | | | | | | | | | command-line setting. * cygwin.din: Export sexec* functions as function which returns ENOSYS (i.e., sexec* is deprecated). * dtable.cc (dtable::vfork_child_dup): Ensure that impersonation is restored even on failure. * exec.cc: Throughout, remove references to sexec* and _spawnve. * pinfo.h: Remove _spawnve declaration. * spawn.cc: Rename _spawnve to spawnve and use throughout. (spawn_guts): Eliminate hToken argument and processing of same. Just perform special actions if impersonating. (spawnve): Rename from _spawnve.
* revert erroneous checkinChristopher Faylor2002-06-101-1/+1
|
* * include/sys/strace.h (strace): Avoid use of constructor.Christopher Faylor2002-06-104-3/+6
|
* * dcrt0.cc (dll_crt0_1): Initialize wincap and check for sanity before runningChristopher Faylor2002-06-104-4/+12
| | | | | | | global ctors. * wincap.h (wincap): Eliminate constructor. Default is to zero memory, anyway. * wincap.cc (wincap): Copy this on fork to avoid initialization in forked processes.
* * fhandler.h (fhandler_socket::fixup_after_fork): Revert patch fromCorinna Vinschen2002-06-104-15/+17
| | | | | | | 2002-06-04. * fhandler_socket.cc (fhandler_socket::fixup_after_fork): Ditto. (fhandler_socket::dup): Ditto. * net.cc (fdsock): Make sockets explicitely noninheritable on NT.
* /tmp/cvs610a0a90.1Robert Collins2002-06-103-42/+90
|
* * fhandler_disk_file.cc (fhandler_disk_file::fstat_helper): Correctly setChristopher Faylor2002-06-102-11/+17
| | | | number of links for directory, if appropriate.
* 2002-06-10 Robert Collins <rbtcollins@hotmail.com>Robert Collins2002-06-106-34/+142
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * cygwin.din: Add _pthread_cleanup_push and _pthread_cleanup_pop. * pthread.cc: Change __pthread_self to pthread::self() thruoghout. (_pthread_cleanup_push): New function. (_pthread_cleanup_pop): Ditto. * thread.cc: Thanks to Thomas Pfaff for the pthread cleanup_push,_pop patch, this work is derived from that. Change __pthread_self to pthread::self() thruoghout. (__pthread_self): Rename to pthread::self. (pthread::self): New method. (pthread::pthread): Initialize new member. (pthread::push_cleanup_handler): New method. (pthread::pop_cleanup_handler): New method. (pthread::pop_all_cleanup_handlers): New method. (__pthread_exit): Pop all cleanup handlers. * thread.h (pthread::push_cleanup_handler): Declare. (pthread::pop_cleanup_handler): Ditto. (pthread::pop_all_cleanup_handlers): Ditto. (pthread::self): New static method. (__pthread_exit): Give C++ linkage. (__pthread_join): Ditto. (__pthread_detach): Ditto. (__pthread_self): Remove. 2002-04-24 Thomas Pfaff <tpfaff@gmx.net> * include/pthread.h (__pthread_cleanup_handler): New structure (pthread_cleanup_push): Rewritten . (pthread_cleanup_pop): Ditto. (_pthread_cleanup_push): New prototype. (_pthread_cleanup_pop) Ditto. 2002-04-24 Thomas Pfaff <tpfaff@gmx.net> * thread.cc (thread_init_wrapper): Check if thread is already joined. (__pthread_join): Set joiner first. (__pthread_detach): Ditto.
* 2002-06-10 Robert Collins <rbtcollins@hotmail.com>Robert Collins2002-06-092-1/+7
| | | | | | * cygserver_transport.cc (create_server_transport): Finish the split out of sockets code from transport_layer_base. Thanks to Nicholas Wourms and Conrad Scott for catching this.
* * pinfo.cc (pinfo_dummy): Initialize to correct size.Christopher Faylor2002-06-092-1/+5
|
* * path.cc: Change MOUNT_AUTO to MOUNT_CYGDRIVE throughout.Christopher Faylor2002-06-093-11/+16
| | | | * shared_info.h (CURR_MOUNT_MAGIC): Update.
* * external.cc (cygwin_internal): Make v1 mount table access invalid.Christopher Faylor2002-06-095-89/+17
| | | | | | | | | | * path.cc (mount_info::init): Remove had_to_create_mount_areas initialization. (mount_info::from_registry): Remove v1 table import. (mount_info::read_v1_mounts): Eliminate. (mount_info::import_v1_mounts): Ditto. * shared_info.h (mount_info): Ditto for both of above. * sys/mount.h (MOUNT_DEVFS): New enum. (MOUNT_PROC): Ditto.
* * include/wchar.h: Define __need_size_t.Christopher Faylor2002-06-082-0/+5
|
* coerceChristopher Faylor2002-06-081-1/+1
|
* * fhandler_socket.cc (fhandler_socket::fstat): Don't assume that socket isChristopher Faylor2002-06-083-4/+23
| | | | | | unix-domain socket. * times.cc (hires_ms::prime): Set init flag. * times.cc (hires_ms::prime): Adjust epoch of initime_us from 1601 to 1970.
* * autoload.cc (timeGetDevCaps): Define new autoload function.Christopher Faylor2002-06-075-8/+91
| | | | | | | | | | | | | | | | (timeGetTime): Ditto. (timeBeginPeriod): Ditto. (timeEndPeriod): Ditto. * hires.h (hires_base): New class. Renamed from hires. (hires_us): New class. (hires_ms): New class. * strace.cc (strace::microseconds): Use hires_us class. * times.cc (gettimeofday): Use hires-ms class. (hires_us::prime): Renamed from hires::prime. (hires_us::usecs): Renamed from hires:usecs. (hires_ms::prime): New method. (hires_ms::usecs): New method. (hires_ms::~hires_ms): New destructor.
* * autoload.cc (noload): Correctly save argument count register.Christopher Faylor2002-06-064-14/+19
|
* * fhandler.cc (fhandler_base::fstat): Initialise tv_nsec member ofCorinna Vinschen2002-06-0610-29/+90
| | | | | | | | | | | | | | | | | | st_atim, st_mtim, and st_ctim fields. * fhandler_disk_file.cc (fhandler_disk_file::fstat_helper): Ditto. * fhandler_process.cc (fhandler_process::fstat): Ditto. * glob.c (stat32_to_STAT): Copy across the whole st_atim, st_mtime, and st_ctim fields. * syscalls.cc (stat64_to_stat32): Ditto. * times.cc (to_timestruc_t): New function. (time_as_timestruc_t): New function. * winsup.h: Add to_timestruc_t and time_as_timestruc_t functions. * include/cygwin/stat.h: Replace time_t with timestruc_t throughout for all file times, removing the st_spare1, st_spare2, and st_spare3 fields in the process. Add macros to access tv_sec fields by old names. * include/cygwin/types.h: Typedef timespec_t and timestruc_t as struct timespec.
* * sec_helper.cc (lookup_name): Suppress.Corinna Vinschen2002-06-067-28/+47
| | | | | | | | | | | | | | | | | | | | | * security.cc (alloc_sd): Remove logsrv argument. Remove two calls to lookup_name. (set_security_attribute): Remove logsrv argument. Remove logsrv argument in call to alloc_sd. (set_nt_attribute): Remove logsrv argument. Remove logsrv argument in call to set_security_attribute. (set_file_attribute): Remove logsrv argument. Remove logsrv argument in call to set_nt_attribute. (set_file_attribute): Remove logsrv argument. Remove logsrv argument in call to set_file_attribute. * syscalls.cc (chown_worker): Remove logserver argument in call to set_file_attribute. (chmod): Ditto. * shm.cc (shmget): Remove logsrv argument in call to alloc_sd. * uinfo.cc (internal_getlogin): Replace calls to lookup_name by call to LookupAccountName. * security.h: Remove logsrv in declarations of set_file_attribute and alloc_sd. Remove declaration of lookup_name.
* Fix ChangeLog entry.Corinna Vinschen2002-06-061-5/+5
|
* * child_info.h (CHILD_INFO_MAGIC): Oops. Revert previous change. gcc 3.1 bug?Christopher Faylor2002-06-063-3/+8
|
* * child_info.h (CHILD_INFO_MAGIC): Update.Christopher Faylor2002-06-062-1/+5
|
* * strace.cc (strace::hello): Set inited, when appropriate.Christopher Faylor2002-06-063-2/+7
|
* * cygwin.din: Eliminate some newlib wrappers.Christopher Faylor2002-06-064-27/+29
| | | | | | | * path.cc (get_devn): Only consider first 99 potential com devices. (get_device_number): Ditto. * times.cc (_times): Eliminate. (_times): Renamed from times().
* * dir.cc (rmdir): Streamline. Detect attempts to remove directories fromChristopher Faylor2002-06-053-26/+34
| | | | | | "read-only" virtual devices. (Suggested by Pavel Tsekov) * syscalls.cc (unlink): Detect attempts to remove directories from "read-only" virtual devices. (From Pavel Tsekov)