回精華區
作者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
精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻