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
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2019-02-22 13:04:34 +0300
committerCorinna Vinschen <corinna@vinschen.de>2019-02-22 23:58:51 +0300
commit18c203fb6ebef6e363bb8633fe1673bf2b728e02 (patch)
treef82b6dd7d4ea6c86c90bdcd084d4edce94528d88
parent5fcbbf7ead615c116f8e08047093232b1325faf4 (diff)
Cygwin: passwd/group: drop fetching case-correct group names from LDAP
Commit 4e34a39b5cdf4c3f889486b7460bea063e579d10 made sure all user and group names are case-correct, but it introduced a hefty performance hit on starting the first Cygwin process. Adding an ldap call for each AD group in a user token takes its toll in bigger AD environments with lots of groups in a user token. Real-life example: 300 groups w/ roundtrip time to the LDAP server of 0.25 secs per call... Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
-rw-r--r--winsup/cygwin/uinfo.cc7
1 files changed, 1 insertions, 6 deletions
diff --git a/winsup/cygwin/uinfo.cc b/winsup/cygwin/uinfo.cc
index 53efc2117..bfcce00da 100644
--- a/winsup/cygwin/uinfo.cc
+++ b/winsup/cygwin/uinfo.cc
@@ -2427,12 +2427,7 @@ pwdgrp::fetch_account_from_windows (fetch_user_arg_t &arg, cyg_ldap *pldap)
if (is_domain_account)
{
- /* Overwrite group name to be sure case is same as in SAM */
- if (is_group()
- && cldap->fetch_ad_account (sid, true, domain)
- && (val = cldap->get_account_name ()))
- wcscpy (name, val);
- /* Skip the rest if creating group entries and for non-users. */
+ /* Skip this when creating group entries and for non-users. */
if (is_group() || acc_type != SidTypeUser)
break;
/* On AD machines, use LDAP to fetch domain account infos. */