From 95c883dbfd9319b317477e2aef4a46ccff212249 Mon Sep 17 00:00:00 2001 From: bbs Date: Tue, 20 May 2003 01:51:01 +0000 Subject: search_ulist_userid() git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@883 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- mbbsd/cache.c | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'mbbsd/cache.c') diff --git a/mbbsd/cache.c b/mbbsd/cache.c index 3a011825..a5c6c43c 100644 --- a/mbbsd/cache.c +++ b/mbbsd/cache.c @@ -1,4 +1,4 @@ -/* $Id: cache.c,v 1.60 2003/02/27 05:52:51 in2 Exp $ */ +/* $Id: cache.c,v 1.61 2003/05/20 01:51:01 bbs Exp $ */ #include "bbs.h" #ifndef __FreeBSD__ @@ -432,6 +432,31 @@ search_ulistn(int uid, int unum) } return 0; } +userinfo_t * +search_ulist_userid(char *userid) +{ + register int i = 0, j, start = 0, end = SHM->UTMPnumber - 1; + register userinfo_t **ulist; + if (end == -1) + return NULL; + ulist = SHM->sorted[SHM->currsorted][0]; + for (i = ((start + end) / 2);; i = (start + end) / 2) { + j = strcasecmp(userid, ulist[i]->userid); + if (!j) { + return (userinfo_t *) (ulist[i]); + } + if (end == start) { + break; + } else if (i == start) { + i = end; + start = end; + } else if (j > 0) + start = i; + else + end = i; + } + return 0; +} int count_logins(int uid, int show) -- cgit v1.2.3