From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 124679 invoked by alias); 22 Feb 2019 22:34:13 -0000 Mailing-List: contact cygwin-cvs-help@cygwin.com; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: cygwin-cvs-owner@cygwin.com Received: (qmail 124663 invoked by uid 9078); 22 Feb 2019 22:34:13 -0000 Date: Fri, 22 Feb 2019 22:34:00 -0000 Message-ID: <20190222223412.124662.qmail@sourceware.org> Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Corinna Vinschen To: cygwin-cvs@sourceware.org Subject: [newlib-cygwin] Cygwin: passwd/group: drop fetching case-correct group names from LDAP X-Act-Checkin: newlib-cygwin X-Git-Author: Corinna Vinschen X-Git-Refname: refs/heads/master X-Git-Oldrev: 5fcbbf7ead615c116f8e08047093232b1325faf4 X-Git-Newrev: 18c203fb6ebef6e363bb8633fe1673bf2b728e02 X-SW-Source: 2019-q1/txt/msg00177.txt.bz2 https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=18c203fb6ebef6e363bb8633fe1673bf2b728e02 commit 18c203fb6ebef6e363bb8633fe1673bf2b728e02 Author: Corinna Vinschen Date: Fri Feb 22 11:04:34 2019 +0100 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 Diff: --- winsup/cygwin/uinfo.cc | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/winsup/cygwin/uinfo.cc b/winsup/cygwin/uinfo.cc index 53efc21..bfcce00 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. */