diff options
Diffstat (limited to 'winsup/cygwin/uinfo.cc')
-rw-r--r-- | winsup/cygwin/uinfo.cc | 200 |
1 files changed, 0 insertions, 200 deletions
diff --git a/winsup/cygwin/uinfo.cc b/winsup/cygwin/uinfo.cc deleted file mode 100644 index fbf2eca2a..000000000 --- a/winsup/cygwin/uinfo.cc +++ /dev/null @@ -1,200 +0,0 @@ -/* uinfo.cc: user info (uid, gid, etc...) - - Copyright 1996, 1997, 1998 Cygnus Solutions. - -This file is part of Cygwin. - -This software is a copyrighted work licensed under the terms of the -Cygwin license. Please consult the file "CYGWIN_LICENSE" for -details. */ - -#include <pwd.h> -#include "winsup.h" -#include <utmp.h> -#include <limits.h> -#include <unistd.h> -#include "autoload.h" -#include <stdlib.h> -#include <wchar.h> -#include <lm.h> - -/* FIXME: shouldn't violate internal object space -- these two - should be static inside grp.cc */ -void read_etc_group (); -extern int group_in_memory_p; - -char * -internal_getlogin (struct pinfo *pi) -{ - DWORD username_len = MAX_USER_NAME; - LPWKSTA_USER_INFO_1 ui = NULL; - - if (! pi) - api_fatal ("pinfo pointer is NULL!\n"); - - if (os_being_run == winNT) - { - int ret = NetWkstaUserGetInfo (NULL, 1, (LPBYTE *)&ui); - if (! ret) - { - wcstombs (pi->domain, - ui->wkui1_logon_domain, - (wcslen (ui->wkui1_logon_domain) + 1) * sizeof (WCHAR)); - debug_printf ("Domain: %s", pi->domain); - wcstombs (pi->logsrv, - ui->wkui1_logon_server, - (wcslen (ui->wkui1_logon_server) + 1) * sizeof (WCHAR)); - if (! *pi->logsrv) - { - LPWSTR logon_srv = NULL; - - if (!NetGetAnyDCName (NULL, - ui->wkui1_logon_domain, - (LPBYTE *)&logon_srv)) - wcstombs (pi->logsrv, - logon_srv, // filter leading double backslashes - (wcslen (logon_srv) + 1) * sizeof (WCHAR)); - if (logon_srv) - NetApiBufferFree (logon_srv); - debug_printf ("AnyDC Server: %s", pi->logsrv); - } - else - debug_printf ("Logon Server: %s", pi->logsrv); - wcstombs (pi->username, - ui->wkui1_username, - (wcslen (ui->wkui1_username) + 1) * sizeof (WCHAR)); - debug_printf ("Windows Username: %s", pi->username); - NetApiBufferFree (ui); - } - else - { - debug_printf ("%d = NetWkstaUserGetInfo ()\n", ret); - if (! GetUserName (pi->username, &username_len)) - strcpy (pi->username, "unknown"); - } - if (!lookup_name (pi->username, pi->logsrv, pi->psid)) - { - debug_printf ("myself->psid = NULL"); - pi->psid = NULL; - } - else if (allow_ntsec) - { - extern BOOL get_pw_sid (PSID, struct passwd*); - struct passwd *pw; - char psidbuf[40]; - PSID psid = (PSID) psidbuf; - - while ((pw = getpwent ()) != NULL) - if (get_pw_sid (psid, pw) && EqualSid (pi->psid, psid)) - { - strcpy (pi->username, pw->pw_name); - break; - } - endpwent (); - } - } - else - { - debug_printf ("myself->psid = NULL"); - pi->psid = NULL; - if (! GetUserName (pi->username, &username_len)) - strcpy (pi->username, "unknown"); - } - debug_printf ("Cygwins Username: %s\n", pi->username); - return pi->username; -} - -void -uinfo_init () -{ - struct passwd *p; - - if (myself->username[0]) - return; - - myself->psid = (PSID) myself->sidbuf; - if ((p = getpwnam (internal_getlogin (myself))) != NULL) - { - /* calling getpwnam assures us that /etc/password has been - read in, but we can't be sure about /etc/group */ - - if (!group_in_memory_p) - read_etc_group (); - - myself->uid = p->pw_uid; - myself->gid = p->pw_gid; - } - else - { - myself->uid = DEFAULT_UID; - myself->gid = DEFAULT_GID; - } -} - -extern "C" char * -getlogin (void) -{ -#ifdef _MT_SAFE - char *this_username=_reent_winsup()->_username; -#else - static NO_COPY char this_username[MAX_USER_NAME]; -#endif - - uinfo_init (); - return strcpy (this_username, myself->username); -} - -extern "C" uid_t -getuid (void) -{ - return myself->uid; -} - -extern "C" gid_t -getgid (void) -{ - return myself->gid; -} - -extern "C" uid_t -geteuid (void) -{ - return getuid (); -} - -extern "C" gid_t -getegid (void) -{ - return getgid (); -} - -/* Not quite right - cuserid can change, getlogin can't */ -extern "C" char * -cuserid (char *src) -{ - if (src) - { - strcpy (src, getlogin ()); - return src; - } - else - { - return getlogin (); - } -} - -LoadDLLinitfunc (netapi32) -{ - HANDLE h; - - if ((h = LoadLibrary ("netapi32.dll")) != NULL) - netapi32_handle = h; - else if (! netapi32_handle) - api_fatal ("could not load netapi32.dll. %d", GetLastError ()); - return 0; -} -LoadDLLinit (netapi32) -LoadDLLfunc (NetWkstaUserGetInfo, NetWkstaUserGetInfo@12, netapi32) -LoadDLLfunc (NetGetAnyDCName, NetGetAnyDCName@12, netapi32) -LoadDLLfunc (NetApiBufferFree, NetApiBufferFree@4, netapi32) - |