* 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>
+
+ * 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
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)
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 ();
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;
}
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);