>>1 乙です.

># 復帰/削除cgiなどについては、さてどっちかな => 今後の課題

bbsd に機能を実装するものはフロント側に置いた CGI から bbsd を呼んで,
bbsd に機能を実装しないものはバック側においた CGI を mod_proxy でそのまま呼ぶ,
って感じでしょうか.まぁこの点はとりあえず今後のことですね.

>>22
>ごめんなさいリミッター(datの数をreaddirで数えている)

これは,bbsd で保持している subject データと実際の dat 数に
乖離が生じるのは,サーバダウン後復帰かける前など限られた条件下のみと
思われるので,subject データからカウントする方が軽そうですが,どうでしょうか?

>スレッドの容量による制限(unless( -s $DATAFILE <= 512000))

このチェックはすでに bbsd に入ってますね(EDQUOT に相当する
エラーメッセージを返します).

>>33-34
1000 レスや 512kB に到達した時点でパーミッションは 0555 にするようになってます.
で,このパーミッションなら dat に書き込もうとすれば自ずと EACCES になりますね.

>>40
>現在のbbsdで「常時かかえて握っている」ファイルは、
>subject,txt / subback.html / index.html の3つだけで、よかったんでしたっけか。
>それとも SETTING.TXT も抱えちゃうんでしたっけ。

「仮に他のプログラムが変更しても bbsd によって上書きされる」ということなら
subject.txt / subback.html / index.html の3つですね.SETTING.TXT は
読み込み専用なのでそういうことはありません.ただ,設定読み込みのため
mmap() したままにするので,更新時にはいったん別ファイル名でうpしてから
rename という手順でやってもらった方がいいです.


以下,とりあえず現在実装されているものを列記します.

書き込み処理:
        my $errmsg = bbsd($bbs, $key, $datline, $footnote, "$logfilename:$logline");
レスの通常あぼーん:
        my $errmsg = bbsd($bbs, "delete:$key", $range, "$logfilename:$logline");
レスの透明あぼーん:
        my $errmsg = bbsd($bbs, "tdelete:$key", $range, "$logfilename:$logline");
スレッドのゴミ箱逝き:
        my $errmsg = bbsd($bbs, "delete:$key", '*', "$logfilename:$logline");
スレッドのファイル自体削除:
        my $errmsg = bbsd($bbs, "tdelete:$key", '*', "$logfilename:$logline");
スレを subject から消す:
        my $errmsg = bbsd($bbs, 'purge', $keys, "$logfilename:$logline");
subject.txt 等の再生成:
        my $errmsg = bbsd($bbs, 'repair', "$logfilename:$logline");
dat/*.dat から html/*.html を再生成:
        my $errmsg = bbsd($bbs, 'makehtml', "$logfilename:$logline");
ステータス情報の取得:
        my $statmsg = bbsd($bbs, 'stat', "$logfilename:$logline");