* autoload.cc (NetGetDCName): Change to make this an optional load function.
* cygheap.h (cygheap_user::logsrv): Return NULL when operation fails. (cygheap_user::winname): Ditto. (cygheap_user::domain): Ditto. * uinfo.cc (cygheap_user::env_logsrv): Save results in temp variable. (cygheap_user::env_userprofile): Ditto.
This commit is contained in:
parent
638180f51f
commit
efc1575ecd
|
@ -1,3 +1,13 @@
|
|||
2002-06-29 Christopher Faylor <cgf@redhat.com>
|
||||
|
||||
* autoload.cc (NetGetDCName): Change to make this an optional load
|
||||
function.
|
||||
* cygheap.h (cygheap_user::logsrv): Return NULL when operation fails.
|
||||
(cygheap_user::winname): Ditto.
|
||||
(cygheap_user::domain): Ditto.
|
||||
* uinfo.cc (cygheap_user::env_logsrv): Save results in temp variable.
|
||||
(cygheap_user::env_userprofile): Ditto.
|
||||
|
||||
2002-06-29 Christopher Faylor <cgf@redhat.com>
|
||||
|
||||
* environ.cc (spenv::retrieve): Detect return of env_dontadd from
|
||||
|
|
|
@ -371,7 +371,7 @@ LoadDLLfunc (SetSecurityDescriptorOwner, 12, advapi32)
|
|||
LoadDLLfunc (SetTokenInformation, 16, advapi32)
|
||||
|
||||
LoadDLLfunc (NetApiBufferFree, 4, netapi32)
|
||||
LoadDLLfunc (NetGetDCName, 12, netapi32)
|
||||
LoadDLLfuncEx (NetGetDCName, 12, netapi32, 1)
|
||||
LoadDLLfunc (NetLocalGroupEnum, 28, netapi32)
|
||||
LoadDLLfunc (NetLocalGroupGetMembers, 32, netapi32)
|
||||
LoadDLLfunc (NetUserGetGroups, 28, netapi32)
|
||||
|
|
|
@ -144,15 +144,18 @@ public:
|
|||
|
||||
const char *logsrv ()
|
||||
{
|
||||
return env_logsrv ("LOGONSERVER=", sizeof ("LOGONSERVER=") - 1);
|
||||
const char *p = env_logsrv ("LOGONSERVER=", sizeof ("LOGONSERVER=") - 1);
|
||||
return (p == almost_null) ? NULL : p;
|
||||
}
|
||||
const char *winname ()
|
||||
{
|
||||
return env_name ("USERNAME=", sizeof ("USERNAME=") - 1);
|
||||
const char *p = env_name ("USERNAME=", sizeof ("USERNAME=") - 1);
|
||||
return (p == almost_null) ? NULL : p;
|
||||
}
|
||||
const char *domain ()
|
||||
{
|
||||
return env_domain ("USERDOMAIN=", sizeof ("USERDOMAIN=") - 1);
|
||||
const char *p = env_domain ("USERDOMAIN=", sizeof ("USERDOMAIN=") - 1);
|
||||
return (p == almost_null) ? NULL : p;
|
||||
}
|
||||
BOOL set_sid (PSID new_sid);
|
||||
BOOL set_orig_sid ();
|
||||
|
|
|
@ -319,12 +319,14 @@ cygheap_user::env_logsrv (const char *name, size_t namelen)
|
|||
if (test_uid (plogsrv, name, namelen))
|
||||
return plogsrv;
|
||||
|
||||
if (!domain () || strcasematch (winname (), "SYSTEM"))
|
||||
const char *mydomain = domain ();
|
||||
const char *myname = winname ();
|
||||
if (!mydomain || strcasematch (myname, "SYSTEM"))
|
||||
return almost_null;
|
||||
|
||||
char logsrv[INTERNET_MAX_HOST_NAME_LENGTH + 3];
|
||||
cfree_and_set (plogsrv, almost_null);
|
||||
if (get_logon_server (domain (), logsrv, NULL))
|
||||
if (get_logon_server (mydomain, logsrv, NULL))
|
||||
plogsrv = cstrdup (logsrv);
|
||||
return plogsrv;
|
||||
}
|
||||
|
@ -363,7 +365,8 @@ cygheap_user::env_userprofile (const char *name, size_t namelen)
|
|||
char userprofile_env_buf[MAX_PATH + 1];
|
||||
cfree_and_set (puserprof, almost_null);
|
||||
/* FIXME: Should this just be setting a puserprofile like everything else? */
|
||||
if (!strcasematch (winname (), "SYSTEM")
|
||||
const char *myname = winname ();
|
||||
if (myname && strcasematch (myname, "SYSTEM")
|
||||
&& get_registry_hive_path (sid (), userprofile_env_buf))
|
||||
puserprof = cstrdup (userprofile_env_buf);
|
||||
|
||||
|
|
Loading…
Reference in New Issue