From 026329f85c6ebcbec743d526a0c46bd1c0aab8bb Mon Sep 17 00:00:00 2001
From: kcwu <kcwu@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>
Date: Mon, 14 Mar 2005 20:33:47 +0000
Subject: warning: searchuser() getuser() API change, don't change query string
 implicitly.

git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@2627 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
---
 include/proto.h     |  2 +-
 mbbsd/admin.c       |  6 +++---
 mbbsd/bbs.c         | 10 +++++-----
 mbbsd/cache.c       | 10 +++++-----
 mbbsd/cal.c         |  2 +-
 mbbsd/friend.c      |  6 +++---
 mbbsd/gamble.c      |  2 +-
 mbbsd/lovepaper.c   |  2 +-
 mbbsd/mail.c        | 19 ++++++++++---------
 mbbsd/passwd.c      |  2 +-
 mbbsd/register.c    |  6 +++---
 mbbsd/talk.c        |  8 ++++----
 mbbsd/user.c        |  8 ++++----
 util/BM_money.c     |  2 +-
 util/angel.c        |  2 +-
 util/chesscountry.c |  4 +---
 util/chkhbf.c       |  2 +-
 util/deluserfile.c  |  2 +-
 util/expire.c       |  1 +
 util/openticket.c   |  2 +-
 util/reaper.c       |  2 +-
 util/shmctl.c       |  2 +-
 util/xchatd.c       |  4 ++--
 23 files changed, 53 insertions(+), 53 deletions(-)

diff --git a/include/proto.h b/include/proto.h
index 1d8e667c..7d77439c 100644
--- a/include/proto.h
+++ b/include/proto.h
@@ -115,7 +115,7 @@ void brc_addlist(const char* fname);
 void sort_bcache(void);
 int getuser(char *userid, userec_t *xuser);
 void setuserid(int num, char *userid);
-int searchuser(char *userid);
+int searchuser(const char *userid, char *rightid);
 int getbnum(const char *bname);
 void reset_board(int bid);
 void touch_boards(void);
diff --git a/mbbsd/admin.c b/mbbsd/admin.c
index 70018a2f..6251d239 100644
--- a/mbbsd/admin.c
+++ b/mbbsd/admin.c
@@ -127,7 +127,7 @@ search_key_user(char *passwdfile, int mode)
 		    return 0;
 		}
 		if (ch == 's' && !mode) {
-		    if ((ch = searchuser(user.userid))) {
+		    if ((ch = searchuser(user.userid, user.userid))) {
 			setumoney(ch, user.money);
 			passwd_update(ch, &user);
 			fclose(fp1);
@@ -151,7 +151,7 @@ search_key_user(char *passwdfile, int mode)
 				exit(1);
 			    }
 			    setuserid(allocid, user.userid);
-			    if (!searchuser(user.userid)) {
+			    if (!searchuser(user.userid, NULL)) {
 				fprintf(stderr, "�L�k�إ߱b��\n");
 				exit(1);
 			    }
@@ -1345,7 +1345,7 @@ give_id_money(char *user_id, int money, FILE * log_fp, char *mail_title, time4_t
 {
     char            tt[TTLEN + 1] = {0};
 
-    if (deumoney(searchuser(user_id), money) < 0) { // TODO if searchuser() return 0
+    if (deumoney(searchuser(user_id, NULL), money) < 0) { // TODO if searchuser() return 0
 	move(12, 0);
 	clrtoeol();
 	prints("id:%s money:%d ����a!!", user_id, money);
diff --git a/mbbsd/bbs.c b/mbbsd/bbs.c
index 3a43f74d..dd1aefb8 100644
--- a/mbbsd/bbs.c
+++ b/mbbsd/bbs.c
@@ -201,7 +201,7 @@ readdoent(int num, fileheader_t * ent)
 	(uentp = search_ulist_userid(ent->owner)) && isvisible(currutmp, uentp))
 	isonline = 1;
 #else
-    if (!strchr(ent->owner, '.') && (uid = searchuser(ent->owner)) &&
+    if (!strchr(ent->owner, '.') && (uid = searchuser(ent->owner, NULL)) &&
 	!SHM->GV2.e.noonlineuser &&
 	(uentp = search_ulist(uid)) && isvisible(currutmp, uentp))
 	isonline = 1;
@@ -860,7 +860,7 @@ invalid_brdname(char *brd)
 static int
 b_call_in(int ent, fileheader_t * fhdr, char *direct)
 {
-    userinfo_t     *u = search_ulist(searchuser(fhdr->owner));
+    userinfo_t     *u = search_ulist(searchuser(fhdr->owner, NULL));
     if (u) {
 	int             fri_stat;
 	fri_stat = friend_stat(currutmp, u);
@@ -1898,7 +1898,7 @@ del_post(int ent, fileheader_t * fhdr, char *direct)
                  * see do_general() */
         tusernum = fhdr->multi.anon_uid;
     else
-        tusernum = searchuser(fhdr->owner);
+        tusernum = searchuser(fhdr->owner, NULL);
 
     if (strcmp(bp->brdname, "Security") == 0)
 	return DONOTHING;
@@ -2379,7 +2379,7 @@ good_post(int ent, fileheader_t * fhdr, char *direct)
 	fhdr->filemode = (fhdr->filemode & ~FILE_DIGEST);
 	if (!strcmp(currboard, "Note") || !strcmp(currboard, "PttBug") ||
 	    !strcmp(currboard, "Artdsn") || !strcmp(currboard, "PttLaw")) {
-	    deumoney(searchuser(fhdr->owner), -1000); // TODO if searchuser() return 0
+	    deumoney(searchuser(fhdr->owner, NULL), -1000); // TODO if searchuser() return 0
 	    if (!(currmode & MODE_SELECT))
 		fhdr->multi.money -= 1000;
 	    else
@@ -2418,7 +2418,7 @@ good_post(int ent, fileheader_t * fhdr, char *direct)
 	fhdr->filemode = (fhdr->filemode & ~FILE_MARKED) | FILE_DIGEST;
 	if (!strcmp(currboard, "Note") || !strcmp(currboard, "PttBug") ||
 	    !strcmp(currboard, "Artdsn") || !strcmp(currboard, "PttLaw")) {
-	    deumoney(searchuser(fhdr->owner), 1000); // TODO if searchuser() return 0
+	    deumoney(searchuser(fhdr->owner, NULL), 1000); // TODO if searchuser() return 0
 	    if (!(currmode & MODE_SELECT))
 		fhdr->multi.money += 1000;
 	    else
diff --git a/mbbsd/cache.c b/mbbsd/cache.c
index 09116154..98a06563 100644
--- a/mbbsd/cache.c
+++ b/mbbsd/cache.c
@@ -192,7 +192,7 @@ remove_from_uhash(int n)
 #warning "searchuser() average chaining MAX_USERS/(1<<HASH_BITS) times."
 #endif
 int
-searchuser(char *userid)
+searchuser(const char *userid, char *rightid)
 {
     int             h, p, times;
     h = StringHash(userid)%(1<<HASH_BITS);
@@ -200,7 +200,7 @@ searchuser(char *userid)
 
     for (times = 0; times < MAX_USERS && p != -1 && p < MAX_USERS ; ++times) {
 	if (strcasecmp(SHM->userid[p], userid) == 0) {
-	    if(userid[0]) strcpy(userid, SHM->userid[p]);
+	    if(userid[0] && rightid) strcpy(rightid, SHM->userid[p]);
 	    return p + 1;
 	}
 	p = SHM->next_in_hash[p];
@@ -214,7 +214,7 @@ getuser(char *userid, userec_t *xuser)
 {
     int             uid;
 
-    if ((uid = searchuser(userid))) {
+    if ((uid = searchuser(userid, NULL))) {
 	passwd_query(uid, xuser);
 	xuser->money = moneyof(uid);
     }
@@ -795,7 +795,7 @@ void buildBMcache(int bid) /* bid starts from 1 */
     for( ptr = strtok(s, " "), i = 0 ;
 	 i < MAX_BMs && ptr != NULL  ;
 	 ptr = strtok(NULL, " "), ++i  )
-	if( (uid = searchuser(ptr)) != 0 )
+	if( (uid = searchuser(ptr, NULL)) != 0 )
 	    SHM->BMcache[bid-1][i] = uid;
     for( ; i < MAX_BMs ; ++i )
 	SHM->BMcache[bid-1][i] = -1;
@@ -1006,7 +1006,7 @@ hbflreload(int bid)
 		    break;
 		}
 	    if (strcasecmp("guest", buf) == 0 ||
-		(uid = searchuser(buf)) == 0) {
+		(uid = searchuser(buf, NULL)) == 0) {
 		--num;
 		continue;
 	    }
diff --git a/mbbsd/cal.c b/mbbsd/cal.c
index edc96a9c..1b2c054e 100644
--- a/mbbsd/cal.c
+++ b/mbbsd/cal.c
@@ -382,7 +382,7 @@ p_give(void)
 	tax = give_tax(money);
 	if (money - tax <= 0)
 	    return 0;		/* ú���|�N�S�����F */
-	deumoney(searchuser(id), money - tax); // TODO if searchuser(id) return 0
+	deumoney(searchuser(id, id), money - tax); // TODO if searchuser(id) return 0
 	demoney(-money);
 	log_file(FN_MONEY, LOG_CREAT | LOG_VF, "%s\t��%s\t%d\t%s",
                  cuser.userid, id, money - tax, ctime4(&now));
diff --git a/mbbsd/friend.c b/mbbsd/friend.c
index 2e487975..76d1fd88 100644
--- a/mbbsd/friend.c
+++ b/mbbsd/friend.c
@@ -268,7 +268,7 @@ inline void friend_load_real(int tosort, int maxf,
 	--maxf; /* �]���̫�@�ӭn�� 0, �ҥH�����@�Ӧ^�� */
 	while( fgets(genbuf, STRLEN, fp) && nFriends < maxf )
 	    if( strtok(genbuf, str_space) &&
-		(uid = searchuser(genbuf)) )
+		(uid = searchuser(genbuf, NULL)) )
 		tarray[nFriends++] = uid;
 	fclose(fp);
 
@@ -310,7 +310,7 @@ friend_water(char *message, int type)
 	    int             tuid;
 
 	    sscanf(line, "%s", userid); // XXX check buffer size
-	    if ((tuid = searchuser(userid)) && tuid != usernum &&
+	    if ((tuid = searchuser(userid, NULL)) && tuid != usernum &&
 		(uentp = (userinfo_t *) search_ulist(tuid)) &&
 		isvisible_uid(tuid))
 		my_write(uentp->pid, message, uentp->userid, WATERBALL_PREEDIT, NULL);
@@ -370,7 +370,7 @@ friend_edit(int type)
 	if (*uident == 'a') {
 	    move(1, 0);
 	    usercomplete(msg_uid, uident);
-	    if (uident[0] && searchuser(uident) && !InNameList(uident)) {
+	    if (uident[0] && searchuser(uident, uident) && !InNameList(uident)) {
 		friend_add(uident, type, NULL);
 		dirty = 1;
 	    }
diff --git a/mbbsd/gamble.c b/mbbsd/gamble.c
index 235cdf42..85761fa0 100644
--- a/mbbsd/gamble.c
+++ b/mbbsd/gamble.c
@@ -330,7 +330,7 @@ openticket(int bid)
 		snprintf(buf, sizeof(buf), "%s ������! $ %d", bh->brdname, money * i);
 	    } else
 		continue;
-	    if ((uid = searchuser(userid)) == 0)
+	    if ((uid = searchuser(userid, userid)) == 0)
 		continue;
 	    deumoney(uid, money * i);
 	    mail_id(userid, buf, "etc/ticket.win", "Ptt���");
diff --git a/mbbsd/lovepaper.c b/mbbsd/lovepaper.c
index 5d0eb59c..f9018464 100644
--- a/mbbsd/lovepaper.c
+++ b/mbbsd/lovepaper.c
@@ -25,7 +25,7 @@ x_love(void)
 
     if (!getdata(7, 0, "���H�H�G", receiver, sizeof(receiver), DOECHO))
 	return 0;
-    if (receiver[0] && !(searchuser(receiver) &&
+    if (receiver[0] && !(searchuser(receiver, receiver) &&
 			 getdata(8, 0, "�D  �D�G", save_title,
 				 sizeof(save_title), DOECHO))) {
 	move(10, 0);
diff --git a/mbbsd/mail.c b/mbbsd/mail.c
index 82263f74..9fb5ecca 100644
--- a/mbbsd/mail.c
+++ b/mbbsd/mail.c
@@ -66,7 +66,7 @@ mailalert(char *userid)
     userinfo_t     *uentp = NULL;
     int             n, tuid, i;
 
-    if ((tuid = searchuser(userid)) == 0)
+    if ((tuid = searchuser(userid, NULL)) == 0)
 	return -1;
 
     n = count_logins(tuid, 0);
@@ -357,7 +357,7 @@ multi_list(int *reciper)
 		move(2, 0);
 		clrtoeol();
 
-		if (!searchuser(uid))
+		if (!searchuser(uid, uid))
 		    outs(err_uid);
 		else if (!InNameList(uid)) {
 		    AddNameList(uid);
@@ -435,7 +435,7 @@ multi_send(char *title)
 		if (listing) {
 		    strtok(ptr = genbuf + 3, " \n\r");
 		    do {
-			if (searchuser(ptr) && !InNameList(ptr) &&
+			if (searchuser(ptr, ptr) && !InNameList(ptr) &&
 			    strcmp(cuser.userid, ptr)) {
 			    AddNameList(ptr);
 			    reciper++;
@@ -502,7 +502,7 @@ multi_send(char *title)
 		outc(' ');
 	    }
 	    outs(p->word);
-	    if (searchuser(p->word) && strcmp(STR_GUEST, p->word))
+	    if (searchuser(p->word, p->word) && strcmp(STR_GUEST, p->word))
 		sethomepath(genbuf, p->word);
 	    else
 		continue;
@@ -1417,20 +1417,21 @@ send_inner_mail(char *fpath, char *title, char *receiver)
 {
     char            genbuf[256];
     fileheader_t    mymail;
+    char            rightid[IDLEN+1];
 
-    if (!searchuser(receiver))
+    if (!searchuser(receiver, rightid))
 	return -2;
 
     /* to avoid DDOS of disk */
-    sethomedir(genbuf, receiver);
+    sethomedir(genbuf, rightid);
     // XXX should we use MAX_EXKEEPMAIL instead?
     if (dashs(genbuf) >= 2048 * sizeof(fileheader_t)) {
 	return -2;
     }
 
-    sethomepath(genbuf, receiver);
+    sethomepath(genbuf, rightid);
     stampfile(genbuf, &mymail);
-    if (!strcmp(receiver, cuser.userid)) {
+    if (!strcmp(rightid, cuser.userid)) {
 	strlcpy(mymail.owner, "[" BBSNAME "]", sizeof(mymail.owner));
 	mymail.filemode = FILE_READ;
     } else
@@ -1438,7 +1439,7 @@ send_inner_mail(char *fpath, char *title, char *receiver)
     strncpy(mymail.title, title, TTLEN);
     unlink(genbuf);
     Copy(fpath, genbuf);
-    sethomedir(genbuf, receiver);
+    sethomedir(genbuf, rightid);
     return append_record_forward(genbuf, &mymail, sizeof(mymail));
 }
 
diff --git a/mbbsd/passwd.c b/mbbsd/passwd.c
index 5f6100be..1c5ee2f8 100644
--- a/mbbsd/passwd.c
+++ b/mbbsd/passwd.c
@@ -102,7 +102,7 @@ int initcuser(char *userid)
 {
     // Ptt: setup cuser and usernum here
    if(userid[0]=='\0' ||
-   !(usernum = searchuser(userid)) || usernum > MAX_USERS)
+   !(usernum = searchuser(userid, NULL)) || usernum > MAX_USERS)
       return -1;
    passwd_query(usernum, &cuser);
    return usernum;
diff --git a/mbbsd/register.c b/mbbsd/register.c
index 7786c26e..8d47a30c 100644
--- a/mbbsd/register.c
+++ b/mbbsd/register.c
@@ -147,7 +147,7 @@ getnewuserid(void)
     clock = now;
 
     /* Lazy method : ����M�w�g�M�����L���b�� */
-    if ((i = searchuser("")) == 0) {
+    if ((i = searchuser("", NULL)) == 0) {
 	/* �C 1 �Ӥp�ɡA�M�z user �b���@�� */
 	if ((stat(fn_fresh, &st) == -1) || (st.st_mtime < clock - 3600)) {
 	    if ((fd = open(fn_fresh, O_RDWR | O_CREAT, 0600)) == -1)
@@ -169,7 +169,7 @@ getnewuserid(void)
 	}
     }
     passwd_lock();
-    i = searchuser("");
+    i = searchuser("", NULL);
     if ((i <= 0) || (i > MAX_USERS)) {
 	passwd_unlock();
 	vmsg("��p�A�ϥΪ̱b���w�g���F�A�L�k���U�s���b��");
@@ -217,7 +217,7 @@ new_register(void)
 	}
 	getdata(17, 0, msg_uid, newuser.userid,
 		sizeof(newuser.userid), DOECHO);
-        strcpy(passbuf, newuser.userid); //PTT: getuser�|�׭׭ץ�
+        strcpy(passbuf, newuser.userid);
 
 	if (bad_user_id(passbuf))
 	    outs("�L�k�����o�ӥN���A�Шϥέ^��r���A�åB���n�]�t�Ů�\n");
diff --git a/mbbsd/talk.c b/mbbsd/talk.c
index 00ff1c83..c89017d3 100644
--- a/mbbsd/talk.c
+++ b/mbbsd/talk.c
@@ -361,12 +361,12 @@ chicken_query(char *userid)
 	    time_diff(&(xuser.mychicken));
 	    if (!isdeadth(&(xuser.mychicken))) {
 		show_chicken_data(&(xuser.mychicken), NULL);
-		prints("\n\n�H�W�O %s ���d�����..", userid);
+		prints("\n\n�H�W�O %s ���d�����..", xuser.userid);
 	    }
 	} else {
 	    move(1, 0);
 	    clrtobot();
-	    prints("\n\n%s �èS���i�d��..", userid);
+	    prints("\n\n%s �èS���i�d��..", xuser.userid);
 	}
 	pressanykey();
     }
@@ -438,7 +438,7 @@ my_query(char *uident)
 	if ((uentp && ((fri_stat & HFM) || strcmp(muser.userid,cuser.userid) == 0) && !uentp->invisible))
 	    prints("�m ��  �O �n%-28.28s\n", sex[muser.sex % 8]);
 
-	showplans(uident);
+	showplans(muser.userid);
 	pressanykey();
 	return FULLUPDATE;
     }
@@ -2796,7 +2796,7 @@ t_talk(void)
 	return 0;
 
     move(3, 0);
-    if (!(tuid = searchuser(uident)) || tuid == usernum) {
+    if (!(tuid = searchuser(uident, uident)) || tuid == usernum) {
 	outs(err_uid);
 	pressanykey();
 	return 0;
diff --git a/mbbsd/user.c b/mbbsd/user.c
index 5205f6e2..2559bdc3 100644
--- a/mbbsd/user.c
+++ b/mbbsd/user.c
@@ -441,7 +441,7 @@ uinfo_query(userec_t * u, int real, int unum)
 			x.myangel);
 		if(buf[0] == 0 || (getuser(buf, &xuser) &&
 			    (xuser.userlevel & PERM_ANGEL))){
-		    strlcpy(x.myangel, buf, IDLEN + 1);
+		    strlcpy(x.myangel, xuser.userid, IDLEN + 1);
 		    ++i;
 		    break;
 		}
@@ -619,7 +619,7 @@ uinfo_query(userec_t * u, int real, int unum)
 		    outs("\n����J�h�L�k���\n");
 		    fail++;
 		    break;
-		} else if (!(uid = searchuser(witness[i]))) {
+		} else if (!(uid = searchuser(witness[i], NULL))) {
 		    outs("\n�d�L���ϥΪ�\n");
 		    fail++;
 		    break;
@@ -675,7 +675,7 @@ uinfo_query(userec_t * u, int real, int unum)
     case '5':
 	if (getdata_str(b_lines - 3, 0, "�s���ϥΪ̥N���G", genbuf, IDLEN + 1,
 			DOECHO, x.userid)) {
-	    if (searchuser(genbuf)) {
+	    if (searchuser(genbuf, NULL)) {
 		outs("���~! �w�g���P�� ID ���ϥΪ�");
 		fail++;
 	    } else
@@ -1350,7 +1350,7 @@ u_register(void)
 
 	if (strcmp(inregcode, getregcode(regcode)) == 0) {
 	    int             unum;
-	    if ((unum = searchuser(cuser.userid)) == 0) {
+	    if ((unum = searchuser(cuser.userid, NULL)) == 0) {
 		vmsg("�t��~�A�d�L���H�I");
 		u_exit("getuser error");
 		exit(0);
diff --git a/util/BM_money.c b/util/BM_money.c
index 7a8021e9..8421f8cf 100644
--- a/util/BM_money.c
+++ b/util/BM_money.c
@@ -86,7 +86,7 @@ int main(int argc, char **argv)
 	    char *ch1,uid	;
 	    if((ch1 = strchr(ch, '/')))
 		*ch1 = 0;
-            if ((uid=searchuser(ch))!=0)
+            if ((uid=searchuser(ch, ch))!=0)
 	    {
             
 		char genbuf[200];
diff --git a/util/angel.c b/util/angel.c
index 247f4f02..9e1f3880 100644
--- a/util/angel.c
+++ b/util/angel.c
@@ -57,7 +57,7 @@ void readData(){
     while (fread(&user, sizeof(userec_t), 1, fp) == 1) {
 	++j; /* j == uid */
 	if (user.myangel[0]) {
-	    i = searchuser(user.myangel);
+	    i = searchuser(user.myangel, NULL);
 	    if (i)
 		++total[i];
 	}
diff --git a/util/chesscountry.c b/util/chesscountry.c
index 605efdf3..478db07f 100644
--- a/util/chesscountry.c
+++ b/util/chesscountry.c
@@ -109,9 +109,8 @@ main(void)
 		strcpy(str, buf);
 		p = strtok(buf, " ");
 		name[0] = '\0';
-		if (p && *p != '#' && searchuser(p))
+		if (p && *p != '#' && searchuser(p, userid))
 		{
-		    strlcpy(userid, p, sizeof(userid));
 		    i = 1;
 
 		    if ((p = strtok(NULL, " ")))
@@ -131,7 +130,6 @@ main(void)
 		}
 		if (!strcmp("���W", name))
 		{
-		    // XXX if userid="../../......."
 		    sethomefile(buf, userid, photo_fname);
 		    unlink(buf);
 		    continue;
diff --git a/util/chkhbf.c b/util/chkhbf.c
index df3dc048..d4ad5e24 100644
--- a/util/chkhbf.c
+++ b/util/chkhbf.c
@@ -33,7 +33,7 @@ void informBM(char *userid, boardheader_t *bptr, int nEXP)
     char    filename[256], buf[64];
     fileheader_t mymail;
     FILE    *fp;
-    if( !(uid = searchuser(userid)) )
+    if( !(uid = searchuser(userid, userid)) )
 	return;
     sprintf(filename, BBSHOME "/home/%c/%s", userid[0], userid);
     stampfile(filename, &mymail);
diff --git a/util/deluserfile.c b/util/deluserfile.c
index 83849b6c..0fa33192 100644
--- a/util/deluserfile.c
+++ b/util/deluserfile.c
@@ -127,7 +127,7 @@ int main(int argc, char **argv)
 	    {
 		if (!(count++ % 300))
 		    printf(".\n");
-		if (!searchuser(ptr))
+		if (!searchuser(ptr, ptr))
 		    mv_user_home(ptr);
 		else
 		    del_file(ptr);
diff --git a/util/expire.c b/util/expire.c
index 7268b64f..7acb735a 100644
--- a/util/expire.c
+++ b/util/expire.c
@@ -77,6 +77,7 @@ void expire(life_t *brd)
 	total = state.st_size / sizeof(head);
 	sprintf(tmpfile, "%s.new", index);
 	unlink(tmpfile);
+	// TODO use fread/fwrite to reduce system calls
 	if ((fdw = open(tmpfile, O_WRONLY | O_CREAT | O_EXCL, 0644)) > 0)
 	{
 	    while (read(fdr, &head, sizeof head) == sizeof head)
diff --git a/util/openticket.c b/util/openticket.c
index 4bd761a3..2257911b 100644
--- a/util/openticket.c
+++ b/util/openticket.c
@@ -157,7 +157,7 @@ int main(int argc, char **argv)
 	    {
 		printf("���� %-15s�R�F%9d �i %s, ��o %d �T�޹�\n"
 		       ,userid, num, betname[mybet], money * num);
-                if((uid=searchuser(userid))==0) continue;
+                if((uid=searchuser(userid, userid))==0) continue;
 		deumoney(uid, money * num);
 		sprintf(genbuf, BBSHOME "/home/%c/%s", userid[0], userid);
 		stampfile(genbuf, &mymail);
diff --git a/util/reaper.c b/util/reaper.c
index 5c065a71..348224e9 100644
--- a/util/reaper.c
+++ b/util/reaper.c
@@ -31,7 +31,7 @@ int check(int n, userec_t *u) {
 		/* expired */
 		int unum;
 		
-		unum = searchuser(u->userid);
+		unum = searchuser(u->userid, u->userid);
 		strcpy(buf, ctime4(&u->lastlogin));
 		syslog(LOG_NOTICE, "kill user(%d): %s %s", unum, u->userid, buf);
 		sprintf(buf, "mv home/%c/%s tmp/", u->userid[0], u->userid);
diff --git a/util/shmctl.c b/util/shmctl.c
index 51f560c8..c4cb6870 100644
--- a/util/shmctl.c
+++ b/util/shmctl.c
@@ -195,7 +195,7 @@ int utmpfix(int argc, char **argv)
 	    clean = "too many/less friend";
 	    addkilllist(which);
 	}
-	else if( searchuser(SHM->uinfo[which].userid) == 0 ){
+	else if( searchuser(SHM->uinfo[which].userid, NULL) == 0 ){
 	    clean = "user not exist";
 	    addkilllist(which);
 	}
diff --git a/util/xchatd.c b/util/xchatd.c
index df91ccb6..4051b3d0 100644
--- a/util/xchatd.c
+++ b/util/xchatd.c
@@ -165,7 +165,7 @@ acct_load(ACCT *acct, char *userid)
     if(random()%8==0) acct->userlevel |= PERM_SYSOP;
     return atoi(userid);
 #endif
-    if((id=searchuser(userid))<0)
+    if((id=searchuser(userid, NULL))<0)
 	return -1;
     return get_record(FN_PASSWD, acct, sizeof(ACCT), id);  
 }
@@ -1559,7 +1559,7 @@ login_user(ChatUser *cu, char *msg)
 #ifdef SELFTEST
     utent = atoi(userid)+1;
 #else
-    utent = searchuser(acct.userid);
+    utent = searchuser(acct.userid, NULL);
 #endif
     assert(utent);
 
-- 
cgit v1.2.3