我是不太記得當年 XoPost 長怎樣
但現在的版本 因為在最前面就先判斷 currboard 沒換過就都不重設了
不改的話 那判斷 -1 等於沒用:~
: board.c:XoPost()
- if (currbno != bno) /* 看板沒換通常是因為 every_Z() 回原看板 */
- {
#ifdef HAVE_MODERATED_BOARD
if (!(bits & BRD_R_BIT))
{
vmsg("對不起,此板只准板友進入,請向板主申請入境許\可");
return -1;
}
#endif
/* 處理權限 */
bbstate = STAT_STARTED;
if ((bits & BRD_M_BIT) && (bits & BRD_X_BIT))
....
#ifdef HAVE_MODERATED_BOARD
if (brd->readlevel == PERM_SYSOP || brd->readlevel == PERM_BOARD)
bbstate |= STAT_MODERATED;
#endif
+ if (currbno != bno) /* 看板沒換通常是因為 every_Z() 回原看板 */
+ {
mantime_add(currbno, bno);
...
現在 xover.c 那也要改一下
: xover.c:every_Z()
...
if (cmd == XZ_POST)
- XoPost(currbno);
+ {
+ if (XoPost(currbno) < 0) /* 傳回-1 代表 無閱讀權限 */
+ {
+ z_status--;
+ return XO_FOOT; /* 若在 xover() 中取消呼叫 every_Z() 則送回
XO_FOOT 即可重繪 */
+ }
+ }
...
※ 引述《itoc.bbs@xeon.tfcis.org (核心動力)》之銘言:
> ※ 引述《cpd.bbs@pitch.twbbs.org (Seasons)》之銘言:
> > 要是 某看板 原本是 公開看板...guest上站後正在瀏覽該看板...
> > 板主將看板設為 好友 或 秘密 看板後...
> > 儘管 guest 已經退到主選單,但由於 guest 的 currboard 仍然為該看板...
> > 在分類及所有看板列表確實是沒辦法進入,並提示以下訊息...
> > "對不起,此板只准看板好友進入,請向板主申請入境許可"
> > 但 guest 卻可以在主選單 按 "r" xover(XZ_POST) 進入該看板...
> > 即使該看板已經被板主設為 好友 或 秘密 看板...
> > 我把 menu.c 中做點修改就不會了...或者說根本不用改這裡??@@"
> 你是對的 :)
> 同理,還有這裡
> xover.c:every_Z()
> case 'b':
> if (xz[XZ_POST - XO_ZONE].xo) /* 若已選定看板,進入看板,否則到看板列表 */
> {
> - XoPost(currbno);
> + if (XoPost(currbno) < 0)
> + break;
> cmd = XZ_POST;
> break;
> }
--
▃▄▅▆▇▅▄▃▂▁ ◣ ◢ █◣◢█ ● bbs.cis95.net
▇▅▄▂▁ˍ▃▅▆ 居無定所的雲 ◥█◤ ◤◥ █◥◤█ ▲ █▇◣ 遊民之家
飄自 blog.cs.nctu.edu.tw █ ◣◢ █ █ █ █ █‧twbbs‧org