作者amaki.bbs@luna.twbbs.org (午覺羊) 看板: plan
標題[修改]進入名單時做userno檢查
時間月下夜想 (2003/12/15 Mon 22:04:19) Updated: 2004/05/11
如果你有做把.USR放入shm這篇修改,那麼pal_body()就可以順便做檢查userno而且不
需讀硬碟,免得把.ACCT操爆。
: pal.c
前面加一下
extern XZ xz[];
+extern SCACHE *schema_shm;
改pal_body()
static int
pal_body(xo)
XO *xo;
{
PAL *pal;
BRD *brd;
+ SCHEMA *schema;
char *dir, buf[80];
int num, max, tail;
......
......
do
{
+ schema = schema_shm->schema + (pal->userno - 1);
+ if (str_ncmp(schema->userid, pal->userid, strlen(pal->userid)))
+ {
+ rec_del(xo->dir, sizeof(PAL), num, NULL, NULL);
+ sprintf(buf, "您的名單裡%s(No.%d)這個ID已經變更過或是被砍掉", pal->userid, pal->userno);
+ vmsg(buf);
+ return XO_LOAD; /* amaki. 重新讀一次檔案,因為xpool已經不對 */
+ }
+ else
pal_item(++num, pal++);
} while (num < max);
--
Origin: luna.twbbs.org