Date: Mon, 16 Oct 1995 22:54:04 +0100 From: Olof Johansson <offe@dawnrazor.campus.luth.se> To: "Justin T. Gibbs" <gibbs@freefall.FreeBSD.org> Cc: hackers@freebsd.org Subject: Re: wtmp efficiency Message-ID: <199510162154.WAA08655@dawnrazor.campus.luth.se> In-Reply-To: Your message of "Mon, 16 Oct 1995 14:14:34 MST." <199510162114.OAA19312@aslan.cdrom.com>
next in thread | previous in thread | raw e-mail | index | archive | help
I've found (and fixed) the problem. It's the fact that ftp and uucp connections get 'ftp' or 'uucp' + pid as tty_line in wtmp. The pid isn't removed when looking up the tty, so the list gets bigger and bigger. For 'ftp-only' wtmp files the time for parsing the file is proportional to n^2, where n is the number of entries in the file... (I have an exam on data structures and algorithms next week *grin*). The following patch fixes the problem. *** last.c Mon Aug 7 19:08:00 1995 --- lastold.c Mon Oct 16 22:43:48 1995 *************** *** 202,207 **** --- 202,215 ---- continue; } /* + * Fix tty-line for ftp and uucp entries. + * (same as in want(), see there for more info) + */ + if (!strncmp(bp->ut_line, "ftp", 3)) + bp->ut_line[3] = '\0'; + else if (!strncmp(bp->ut_line, "uucp", 3)) + bp->ut_line[4] = '\0'; + /* * if the line is '{' or '|', date got set; see * utmp(5) for more info. */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199510162154.WAA08655>