Mailing-List: contact cygwin-developers-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-developers-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin-developers AT sources DOT redhat DOT com To: cygdev Subject: Re: Proposal: check and read /etc/{passwd,group} less frequently. References: <20010914150107 DOT E25339 AT cygbert DOT vinschen DOT de> Mime-Version: 1.0 (generated by tm-edit 7.106) Content-Type: text/plain; charset=US-ASCII From: Kazuhiro Fujieda Date: 15 Sep 2001 06:11:27 +0900 In-Reply-To: Corinna Vinschen's message of Fri, 14 Sep 2001 15:01:07 +0200 Message-ID: Lines: 29 X-Mailer: Gnus v5.3/Emacs 19.34 >>> On Fri, 14 Sep 2001 15:01:07 +0200 >>> Corinna Vinschen said: > What about a long running server process e.g. started from cygrunsrv? > It runs uinfo_init() just once at the beginning. It would never get > the changes to /etc/passwd and /etc/group since it needs that info > _before_ changing the user context (which would call internal_getlogin() > directly from seteuid(), btw. -- no uinfo_init() at all). There is no problem in regard to inetd because it spawns real servers which refer /etc/{passwd,group}. Sshd can't have the chance to get the changes. But it less help sshd to check and read /etc/{passwd,group} in internal_getlogin(), because it calls getpwnam() before seteuid(). I don't hate to restart sshd so much. I feel it much more comfortable and reasonable than the previous way, that is, I must terminate all Cygwin processes to get changes to /etc/{passwd,group}. Anyway, I implemented my idea and got benchmarks on Win98 SE and WinNT 4.0 SP6a via compiling bash. The code became much simpler, but I couldn't observe any performance improvement on both platforms. So I withdraw my proposal. ____ | AIST Kazuhiro Fujieda | HOKURIKU Center for Information Science o_/ 1990 Japan Advanced Institute of Science and Technology