diff options
author | kcwu <kcwu@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2005-03-15 04:33:47 +0800 |
---|---|---|
committer | kcwu <kcwu@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2005-03-15 04:33:47 +0800 |
commit | 026329f85c6ebcbec743d526a0c46bd1c0aab8bb (patch) | |
tree | 6f76835cc10bfa49f943a50f5c3db9d36c6c2459 /mbbsd | |
parent | b26fbc65ed9d7cbca50f8758712a9b9b6b2bf853 (diff) | |
download | pttbbs-026329f85c6ebcbec743d526a0c46bd1c0aab8bb.tar pttbbs-026329f85c6ebcbec743d526a0c46bd1c0aab8bb.tar.gz pttbbs-026329f85c6ebcbec743d526a0c46bd1c0aab8bb.tar.bz2 pttbbs-026329f85c6ebcbec743d526a0c46bd1c0aab8bb.tar.lz pttbbs-026329f85c6ebcbec743d526a0c46bd1c0aab8bb.tar.xz pttbbs-026329f85c6ebcbec743d526a0c46bd1c0aab8bb.tar.zst pttbbs-026329f85c6ebcbec743d526a0c46bd1c0aab8bb.zip |
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
Diffstat (limited to 'mbbsd')
-rw-r--r-- | mbbsd/admin.c | 6 | ||||
-rw-r--r-- | mbbsd/bbs.c | 10 | ||||
-rw-r--r-- | mbbsd/cache.c | 10 | ||||
-rw-r--r-- | mbbsd/cal.c | 2 | ||||
-rw-r--r-- | mbbsd/friend.c | 6 | ||||
-rw-r--r-- | mbbsd/gamble.c | 2 | ||||
-rw-r--r-- | mbbsd/lovepaper.c | 2 | ||||
-rw-r--r-- | mbbsd/mail.c | 19 | ||||
-rw-r--r-- | mbbsd/passwd.c | 2 | ||||
-rw-r--r-- | mbbsd/register.c | 6 | ||||
-rw-r--r-- | mbbsd/talk.c | 8 | ||||
-rw-r--r-- | mbbsd/user.c | 8 |
12 files changed, 41 insertions, 40 deletions
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, "無法建立帳號\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 不對吧!!", 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; /* 繳完稅就沒錢給了 */ - 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; /* 因為最後一個要填 0, 所以先扣一個回來 */ 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, "收信人:", receiver, sizeof(receiver), DOECHO)) return 0; - if (receiver[0] && !(searchuser(receiver) && + if (receiver[0] && !(searchuser(receiver, receiver) && getdata(8, 0, "主 題:", 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 : 先找尋已經清除的過期帳號 */ - if ((i = searchuser("")) == 0) { + if ((i = searchuser("", NULL)) == 0) { /* 每 1 個小時,清理 user 帳號一次 */ 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("抱歉,使用者帳號已經滿了,無法註冊新的帳號"); @@ -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("無法接受這個代號,請使用英文字母,並且不要包含空格\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以上是 %s 的寵物資料..", userid); + prints("\n\n以上是 %s 的寵物資料..", xuser.userid); } } else { move(1, 0); clrtobot(); - prints("\n\n%s 並沒有養寵物..", userid); + prints("\n\n%s 並沒有養寵物..", 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("《 性 別 》%-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不輸入則無法更改\n"); fail++; break; - } else if (!(uid = searchuser(witness[i]))) { + } else if (!(uid = searchuser(witness[i], NULL))) { outs("\n查無此使用者\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, "新的使用者代號:", genbuf, IDLEN + 1, DOECHO, x.userid)) { - if (searchuser(genbuf)) { + if (searchuser(genbuf, NULL)) { outs("錯誤! 已經有同樣 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("系統錯誤,查無此人!"); u_exit("getuser error"); exit(0); |