my $statnum = bbsd($bbs, 'chkid', $dbname, $id, $seconds, $nwarn, $nkick, "$logfilename:$logline");
・ このような流れ:
if ($id エントリ存在) {
if ($id_entry->n == 規制発動)
$statnum = 3;
else if (現在時刻 - $id_entry->time >= $seconds) {
$id_entry->n = 1;
$statnum = 0;
}
else if (++$id_entry->n <= $nwarn)
$statnum = 1;
else if ($id_entry->n <= $nkick)
$statnum = 2;
else {
$id_entry->n = 規制発動;
$statnum = 3;
}
}
else {
$id エントリ作成;
$id_entry->n = 1;
$statnum = 0;
}
$id_entry->time = 現在時刻;
return $statnum;
・ (現在時刻 - $id_entry->time >= 3600 秒) のエントリは削除.
・ データは $DOCUMENT_ROOT/$bbs/bbsd_dbs/$dbname にストア.
次回起動時にそのファイルがあれば読み込んで利用.
bbsd_dbs ディレクトリが存在しなければ自動的に作成し,
その際 "Deny from all" という内容の .htaccess も自動作成.
# これでファイル名を *.cgi にしたりダミーの index.html を作成したりも不要かと.
Samba24 用汎用 DB チェック:
my $statnum = bbsd($bbs, 'peekid', $dbname, $id, $seconds, $nwarn, $nkick, "$logfilename:$logline");
・ エントリ登録・更新を行わないが,それ以外は chkid と同じ.
Samba24 用汎用 DB クリア:
my $errmsg = bbsd($bbs, 'clearids', $dbname, "$logfilename:$logline");
Samba24 用汎用 DB エントリ数カウント:
my $n = bbsd($bbs, 'countids', $dbname, "$logfilename:$logline");