diff options
author | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2010-10-24 00:38:19 +0800 |
---|---|---|
committer | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2010-10-24 00:38:19 +0800 |
commit | c328d558c77d7d5066d84d83ec0b397e7ae36d60 (patch) | |
tree | 4ac9b5db6c310eb7daf42c91c8b28581d4f0c2ba | |
parent | 8456e939e055be247bca74fd53594baa72098d2e (diff) | |
download | pttbbs-c328d558c77d7d5066d84d83ec0b397e7ae36d60.tar pttbbs-c328d558c77d7d5066d84d83ec0b397e7ae36d60.tar.gz pttbbs-c328d558c77d7d5066d84d83ec0b397e7ae36d60.tar.bz2 pttbbs-c328d558c77d7d5066d84d83ec0b397e7ae36d60.tar.lz pttbbs-c328d558c77d7d5066d84d83ec0b397e7ae36d60.tar.xz pttbbs-c328d558c77d7d5066d84d83ec0b397e7ae36d60.tar.zst pttbbs-c328d558c77d7d5066d84d83ec0b397e7ae36d60.zip |
add view of old log and check date overflow
git-svn-id: http://opensvn.csie.org/pttbbs/trunk@5150 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r-- | pttbbs/mbbsd/acl.c | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/pttbbs/mbbsd/acl.c b/pttbbs/mbbsd/acl.c index 0eed630c..ef8bf21b 100644 --- a/pttbbs/mbbsd/acl.c +++ b/pttbbs/mbbsd/acl.c @@ -138,8 +138,8 @@ edit_banned_list_for_board(const char *board) { while (1) { clear(); - vs_hdr2f(" 設定看板水桶 \t 看板: %s", board); - getdata(1, 0, "要 (A)增加 (D)提前清除 (L)列出水桶歷史 (Q)結束? [Q] ", + vs_hdr2f(" 設定看板水桶 \t 看板: %s ,名單上限: ∞", board); + getdata(1, 0, "要 (A)增加 (D)提前清除 (L)列出水桶歷史 (O)檢視舊水桶 (Q)結束? [Q] ", ans, sizeof(ans), LCECHO); if (*ans == 'q' || !*ans) break; @@ -160,7 +160,7 @@ edit_banned_list_for_board(const char *board) { move(4, 0); outs("目前接受的格式是 [數字][單位]。 單位有: 年(y), 月(m), 天(d)\n"); outs("範例: 3m (三個月), 180d (180天), 10y (10年)\n"); - outs("注意不可混合輸入(ex: 沒有三個半月這種東西,要換算成天數\n"); + outs("注意不可混合輸入(例:沒有三個半月這種東西,請換算成天數)\n"); getdata(2, 0, "請以數字跟單位(預設為天)輸入期限: ", datebuf, 8, DOECHO); trim(datebuf); if (!*datebuf) { @@ -183,15 +183,19 @@ edit_banned_list_for_board(const char *board) { vmsg("日期格式輸入錯誤或是小於一天無法處理。"); continue; } + if (now + val * DAY_SECONDS < now) { + vmsg("日期過大或無法處理,請重新輸入。"); + continue; + } expire = now + val * DAY_SECONDS; move(4, 0); clrtobot(); prints("水桶期限將設定為 %d 天後: %s", val, Cdatelite(&expire)); } - assert(sizeof(reason) >= TTLEN); + assert(sizeof(reason) >= BTLEN); // maybe race condition here, but fine. - getdata(5, 0, "請輸入理由(空白可取消): ", reason, TTLEN,DOECHO); + getdata(5, 0, "請輸入理由(空白可取消): ", reason, BTLEN,DOECHO); if (!*reason) { vmsg("未輸入理由,無法受理。"); continue; @@ -231,8 +235,8 @@ edit_banned_list_for_board(const char *board) { } move(1, 0); clrtobot(); prints("提前解除使用者 %s 於看板 %s 的水桶。", uid, board); - assert(sizeof(reason) >= TTLEN); - getdata(2, 0, "請輸入理由(空白可取消解除): ",reason,TTLEN,DOECHO); + assert(sizeof(reason) >= BTLEN); + getdata(2, 0, "請輸入理由(空白可取消解除): ",reason,BTLEN,DOECHO); if (!*reason) { vmsg("未輸入理由,無法受理。"); continue; @@ -250,6 +254,16 @@ edit_banned_list_for_board(const char *board) { vmsg("目前尚無水桶記錄。"); break; + case 'o': + { + char old_log[PATHLEN]; + setbfile(old_log, board, fn_water); + if (more(old_log, YEA) == -1) + vmsg("無舊水桶資料。"); + } + break; + + default: break; } |