Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/winsup
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2002-03-07 17:32:53 +0300
committerCorinna Vinschen <corinna@vinschen.de>2002-03-07 17:32:53 +0300
commitc8c3824dc883d32c96053d5e9a7e44490374fc38 (patch)
tree9cce0880cb5808082f57464460df2becbe2f0e26 /winsup
parentb56dedef3ef4219f4e0ffcd5e548b62bcc17f49c (diff)
* autoload.cc (NetGetDCName): Add symbol.
(NetServerEnum): Remove symbol. * security.cc (get_lsa_srv_inf): Call NetGetDCName() instead of NetServerEnum() since it's faster. Don't call it at all if machine is not a domain member.
Diffstat (limited to 'winsup')
-rw-r--r--winsup/cygwin/ChangeLog8
-rw-r--r--winsup/cygwin/autoload.cc2
-rw-r--r--winsup/cygwin/security.cc13
3 files changed, 16 insertions, 7 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index a8e45ab48..3029b839e 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,11 @@
+2002-03-07 Corinna Vinschen <corina@vinschen.de>
+
+ * autoload.cc (NetGetDCName): Add symbol.
+ (NetServerEnum): Remove symbol.
+ * security.cc (get_lsa_srv_inf): Call NetGetDCName() instead of
+ NetServerEnum() since it's faster. Don't call it at all if machine
+ is not a domain member.
+
2002-03-06 Christopher Faylor <cgf@redhat.com>
* path.cc (normalize_posix_path): Avoid runs of '.'s > 2.
diff --git a/winsup/cygwin/autoload.cc b/winsup/cygwin/autoload.cc
index ec71b6641..3a82e3873 100644
--- a/winsup/cygwin/autoload.cc
+++ b/winsup/cygwin/autoload.cc
@@ -365,9 +365,9 @@ LoadDLLfunc (SetSecurityDescriptorOwner, 12, advapi32)
LoadDLLfunc (SetTokenInformation, 16, advapi32)
LoadDLLfunc (NetApiBufferFree, 4, netapi32)
+LoadDLLfunc (NetGetDCName, 12, netapi32)
LoadDLLfunc (NetLocalGroupEnum, 28, netapi32)
LoadDLLfunc (NetLocalGroupGetMembers, 32, netapi32)
-LoadDLLfunc (NetServerEnum, 36, netapi32)
LoadDLLfunc (NetUserGetGroups, 28, netapi32)
LoadDLLfunc (NetUserGetInfo, 16, netapi32)
LoadDLLfunc (NetWkstaUserGetInfo, 12, netapi32)
diff --git a/winsup/cygwin/security.cc b/winsup/cygwin/security.cc
index b33360d1a..83c8f2080 100644
--- a/winsup/cygwin/security.cc
+++ b/winsup/cygwin/security.cc
@@ -200,8 +200,7 @@ static BOOL
get_lsa_srv_inf (LSA_HANDLE lsa, char *logonserver, char *domain)
{
NET_API_STATUS ret;
- LPSERVER_INFO_101 buf;
- DWORD cnt, tot;
+ WCHAR *buf;
char name[INTERNET_MAX_HOST_NAME_LENGTH + 1];
WCHAR account[INTERNET_MAX_HOST_NAME_LENGTH + 1];
WCHAR primary[INTERNET_MAX_HOST_NAME_LENGTH + 1];
@@ -224,11 +223,13 @@ get_lsa_srv_inf (LSA_HANDLE lsa, char *logonserver, char *domain)
}
lsa2wchar (primary, pdi->Name, INTERNET_MAX_HOST_NAME_LENGTH + 1);
LsaFreeMemory (pdi);
- if ((ret = NetServerEnum (NULL, 101, (LPBYTE *) &buf, MAX_PREFERRED_LENGTH,
- &cnt, &tot, SV_TYPE_DOMAIN_CTRL, primary, NULL))
- == STATUS_SUCCESS && cnt > 0)
+ /* If the SID given in the primary domain info is NULL, the machine is
+ not member of a domain. The name in the primary domain info is the
+ name of the workgroup then. */
+ if (pdi->Sid &&
+ (ret = NetGetDCName(NULL, primary, (LPBYTE *) &buf)) == STATUS_SUCCESS)
{
- sys_wcstombs (name, buf[0].sv101_name, INTERNET_MAX_HOST_NAME_LENGTH + 1);
+ sys_wcstombs (name, buf, INTERNET_MAX_HOST_NAME_LENGTH + 1);
if (domain)
sys_wcstombs (domain, primary, INTERNET_MAX_HOST_NAME_LENGTH + 1);
}