delorie.com/archives/browse.cgi | search |
X-Recipient: | archive-cygwin AT delorie DOT com |
DomainKey-Signature: | a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id |
:list-unsubscribe:list-subscribe:list-archive:list-post | |
:list-help:sender:date:from:to:subject:message-id:reply-to | |
:references:mime-version:content-type:in-reply-to; q=dns; s= | |
default; b=B8M3E9glqYNMKTURarKNPg2fUEUXgnqntjVNRBGp9l5tXBkLPRmHV | |
oM+e1DJAxRpdYbC6LwNbdu+IZD13ZSMqQS9Si+7EzHL2jxpPpE8r6M5adh35Yfz+ | |
1qTNAf4Q287TGfQ8MHaBDMJ+8QAGw0x4GSx4jSX8PXedUYDsXQxkp0= | |
DKIM-Signature: | v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id |
:list-unsubscribe:list-subscribe:list-archive:list-post | |
:list-help:sender:date:from:to:subject:message-id:reply-to | |
:references:mime-version:content-type:in-reply-to; s=default; | |
bh=tcKFOSJ0G6jFkxwfJzKlF4H5rI0=; b=QvNEIobKC3QbK4ldHIPsygicLZF+ | |
598jBw5WnM4aD8T0spsdCf+YMdBIOfkpn6y4lgKuqVWTw7DK8OIh/v2xlSbfvaMf | |
wOzR85vYUgj2BJXiYVvb3fmAVW7DRB6DsKNw17wLV+hau13mCoAST8Azwej5R6AX | |
gqy04H1L2JkJFC8= | |
Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm |
List-Id: | <cygwin.cygwin.com> |
List-Subscribe: | <mailto:cygwin-subscribe AT cygwin DOT com> |
List-Archive: | <http://sourceware.org/ml/cygwin/> |
List-Post: | <mailto:cygwin AT cygwin DOT com> |
List-Help: | <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs> |
Sender: | cygwin-owner AT cygwin DOT com |
Mail-Followup-To: | cygwin AT cygwin DOT com |
Delivered-To: | mailing list cygwin AT cygwin DOT com |
Authentication-Results: | sourceware.org; auth=none |
X-Virus-Found: | No |
X-Spam-SWARE-Status: | No, score=-6.0 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.2 |
X-HELO: | calimero.vinschen.de |
Date: | Wed, 12 Feb 2014 20:59:31 +0100 |
From: | Corinna Vinschen <corinna-cygwin AT cygwin DOT com> |
To: | cygwin AT cygwin DOT com |
Subject: | Re: get rid of getpwent? (Was: cygwin-1.7.28 getpwent header declaration changes ?) |
Message-ID: | <20140212195931.GA2246@calimero.vinschen.de> |
Reply-To: | cygwin AT cygwin DOT com |
Mail-Followup-To: | cygwin AT cygwin DOT com |
References: | <8B7B5FE0-7413-4358-BA8A-E0B6E0B17653 AT etr-usa DOT com> <52F8B50E DOT 7040307 AT lysator DOT liu DOT se> <52F92D58 DOT 9030408 AT etr-usa DOT com> <52F95D1D DOT 4050108 AT tiscali DOT co DOT uk> <4510121021 DOT 20140211062515 AT mtu-net DOT ru> <52FAB14C DOT 8060800 AT tiscali DOT co DOT uk> <52FABAF5 DOT 2060701 AT etr-usa DOT com> <52FAD730 DOT 9090507 AT redhat DOT com> <20140212090804 DOT GM2821 AT calimero DOT vinschen DOT de> <52FB9E51 DOT 7030607 AT cornell DOT edu> |
MIME-Version: | 1.0 |
In-Reply-To: | <52FB9E51.7030607@cornell.edu> |
User-Agent: | Mutt/1.5.21 (2010-09-15) |
--h31gzZEtNLTqOjlF Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Feb 12 11:16, Ken Brown wrote: > On 2/12/2014 4:08 AM, Corinna Vinschen wrote: > >On Feb 11 19:06, Eric Blake wrote: > >>On 02/11/2014 05:06 PM, Warren Young wrote: > >>>On 2/11/2014 16:25, David Stacey wrote: > >>>>getpwent() is called in three different places. > >>> > >>>To those of you who have investigated these code paths: do any of them > >>>look like they couldn't be replaced by getpwnam() or other calls that > >>>would let cygwin1.dll do single-record AD/SAM lookups, rather than > >>>whole-table/tree scans? > >>> > >>>That is, do any of these programs really need to visit every record in > >>>/etc/passwd? > >> > >>libreadline wants to know how to tab-complete ~foo; to do that, it has > >>to find all usernames beginning with foo. How would you do that without > >>visiting every single record? > > > >This seems to be the major usage of getpwent these days. The question > >is, how bad is it if only a handful entries, or even only a single one > >(of oneself) show up? > > > >Either way, implementing a full getpwent requires to return the local > >users, the users of the primary domain, and the users of all trusted > >domains. I know of domains with 200K users and there are probably > >bigger ones. How long should a search take when a user presses <TAB> > >after the ~? And then, shall the process running the getpwent actually > >cache all of them? This seems really excessive. >=20 > What about the following compromise: If /etc/passwd exists, then > getpwent behaves as it does currently. This part is relatively easy to implement. > Otherwise, it returns a > handful of entries, or possibly just the current user. The handful entries would be the ones the process has cached at that point in time. The tricky part is that getpwent would have to keep track which entries from the file are in the cache so that those are not accidentally enumerated twice. > This gives > users a choice. If tab-completion in this situation is important to > them, they can keep their /etc/passwd file. There's only one tiny problem. Whatever I think about the full enumerate being right or wrong, I have this vague feeling that I'd like to have this implemented fully at one point. My cat disapproves, but we can't agree on everything, I guess. Another configuration option in /etc/nsswitch.conf might comfort her. Corinna --=20 Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Maintainer cygwin AT cygwin DOT com Red Hat --h31gzZEtNLTqOjlF Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBAgAGBQJS+9KjAAoJEPU2Bp2uRE+gm5QP/is6gP4XYLiiljshs383O2Kc 2f4qHUiFZ0IvzfIV+GkUW93X5bdqLet5fdO0O6ELZssXn+uPgHzsX4gp1sGMoIZi 3UW3EESB/rbpsFKCuMQof0FEty+v7UZLxBA8kWBVwPTp+uLnV2+460uZBsiLu9OI MqzXdnBPnKcKGo+5QslCfTrjxHr6MZ9vX/pQy5NeV5QcrSfmqHmyoimoPm/c1FBX nCkrqSKgDiHU0aqA/UgmajWAi+tku6sFvT9Qmcew9sQAhaFZZFuIswmVI1xF8grU 00j1M3inzdd9KsaqUm8r4enTuIfPAbsBN9DD4k4kv8rKPM5otfW6KZ/TLoLDbwtp 7FECwTXuCYqGHQHv4uEJ+cGQqWdVljhCgbyqpOUW8UfOZQQa0F1ATtS7UNqcdzAi a0UxILlbyOMwXR687UkdThDtUb1IS7Wj7Uzv/XuF/tiT0SvWRwuJoSWbtEOv66+4 kwl7FuQd1E3IXYG+6zyoJ81SSgc9ZwLlYQUAF4iGBiVqjamvxyYDOGBnz0uC7h8n lyy3Ge0rLz3IHhgaMx/7LRXYDuBSHw5Gl1ox4NlXpPVSKMhXwquArPerjK71etVT cpADUK7CNnOtIhS+ze7aCUdsXfR7gKJIDGWMicTndtFPOJcYE5G6Fp8TNwoDJxcx +YXQUN8829lQvCY7mehT =ba2j -----END PGP SIGNATURE----- --h31gzZEtNLTqOjlF--
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |