雪だるま作戦において開発をすすめているbbsdでは、
+- [ フロントエンドサーバlive22x1 ] -- ユーザは
[ バックエンドサーバlive22 ] -+- [ フロントエンドサーバlive22x2 ] -- live22xという代表名で
制御プログラムbbsd +- [ フロントエンドサーバlive22x3 ] -- これらにアクセス
| | | dat直読みや、
dat subject.txt subback.html bbs.cgiやread.cgiやofflaw.cgi、
書きこみログ(芋掘り)ファイルなど (こちらは基本的に書き込み操作なし)
(書き込み操作はこちらで)
# 復帰/削除cgiなどについては、さてどっちかな => 今後の課題
という形で「ユーザの相手」と「各種ファイル処理」を複数のサーバに分業することにより、
さらなるパフォーマンスの向上を目論んでいます。
つまりこの場合、dat/subject.txt/subback.htmlは
バックエンドサーバで動作するbbsdというプログラムがリクエストに応じて生成し、
更新や場合によっては削除する形となります。
ということで、bbs.cgiをはじめとする従来2ちゃんねるで動いているcgiでは、
これらが同じサーバにあるつもりでファイル操作をしていましたが、
上記に示すように、少なくとも元本は同じサーバにはなくなるため、
何らかの形で対策を考慮する必要があります。
また現在、ID生成の種やSamba24や
timcount/timeclose等の規制関係で使用している一時ファイル等、
複数のフロントエンドサーバが同じ情報を、
何らかの形で共有する必要があるものもあります。
このスレッドではこれらの処理方法や実装方法について考えながら、
bbsdに持たせたい・持つべきな機能をあぶり出し、実装仕様を詰めていくことを目標にしています。
探検
【雪だるま】bbsd⇔各cgi間のI/F仕様について考え・詰めていくスレッド
■ このスレッドは過去ログ倉庫に格納されています
1root▲ ★
NGNG145root▲ ★
NGNG >>143-144
> この API 用の DB はオンメモリで完結ということでもいいのでしょうか
こういう仕様だといいかもです。
1) bbsdが終了する時に、HDDに吐き出して終了する
場所・場所は public_html/test/bbsdのDBとわかるもの.cgi あたりで
2) bbsdは起動時にそのDBがあるか調べて、あれば読み込んでスタート
あとはオンメモリで動作
> Samba24 と ● のデータを1つの DB に混在させる形でもいいのでしょうか,
これは >>144 のご指摘のとおり、DB名を指定できるとすばらしいです。
今後何か装置を開発した時に、DB名を変えていろいろとDBを増やせそうなので。
ということで、>>136 はこんな汎用APIになりますか。
(続く)
> この API 用の DB はオンメモリで完結ということでもいいのでしょうか
こういう仕様だといいかもです。
1) bbsdが終了する時に、HDDに吐き出して終了する
場所・場所は public_html/test/bbsdのDBとわかるもの.cgi あたりで
2) bbsdは起動時にそのDBがあるか調べて、あれば読み込んでスタート
あとはオンメモリで動作
> Samba24 と ● のデータを1つの DB に混在させる形でもいいのでしょうか,
これは >>144 のご指摘のとおり、DB名を指定できるとすばらしいです。
今後何か装置を開発した時に、DB名を変えていろいろとDBを増やせそうなので。
ということで、>>136 はこんな汎用APIになりますか。
(続く)
146root▲ ★
NGNG (続き)
a+b) Samba24用汎用API、●でスレッド立て過ぎにも使用
書き込みリクエストがあると呼ばれる。
引数: DB, bname, ID, s, w, k
DB: 文字列(例: samba24)
bname: 板名
ID: IPアドレスまたは携帯固有番号またはp2の番号または●セッションID
(任意の文字列として取り扱えればOK)
s: 秒数 (s > 0)
w: 注意回数 (w >= 0)
k: 規制回数 (k >= w >= 0)
処理内容:
今まで1回もそのIDで問い合わせを受けたことがなければ、
DBで指定されたDBに「ID、1回、その時間」を登録して、正常終了を呼び出し元に返す。
そのIDで問い合わせを受けたことがある場合は、
もし、前に問い合わせを受けてからs秒以上経過していた場合には、
指定されたDBのそのIDのエントリをリセット(*2)して、正常終了を呼び出し元に返す
(*2)「ID、1回、その時間」にする。
a+b) Samba24用汎用API、●でスレッド立て過ぎにも使用
書き込みリクエストがあると呼ばれる。
引数: DB, bname, ID, s, w, k
DB: 文字列(例: samba24)
bname: 板名
ID: IPアドレスまたは携帯固有番号またはp2の番号または●セッションID
(任意の文字列として取り扱えればOK)
s: 秒数 (s > 0)
w: 注意回数 (w >= 0)
k: 規制回数 (k >= w >= 0)
処理内容:
今まで1回もそのIDで問い合わせを受けたことがなければ、
DBで指定されたDBに「ID、1回、その時間」を登録して、正常終了を呼び出し元に返す。
そのIDで問い合わせを受けたことがある場合は、
もし、前に問い合わせを受けてからs秒以上経過していた場合には、
指定されたDBのそのIDのエントリをリセット(*2)して、正常終了を呼び出し元に返す
(*2)「ID、1回、その時間」にする。
148root▲ ★
NGNG で、先回りして言っておくと、広告には「取り扱い的に」種類が大きく二つあるです。
a) 所定のファイルを読み込んでいる広告
b) bbs.cgiにハードコーディングで埋め込まれている報告
a) は、bbsdで無理なく対応可能ですが、
b) を、さてどうするかと。
というわけでこのへんは、動かしながら調整かなぁと。
a) 所定のファイルを読み込んでいる広告
b) bbs.cgiにハードコーディングで埋め込まれている報告
a) は、bbsdで無理なく対応可能ですが、
b) を、さてどうするかと。
というわけでこのへんは、動かしながら調整かなぁと。
149root▲ ★
NGNG ということで、今日はこのへんで二度寝するです。
なんか寝床からムニャーとしながら京ぽんでアクセスしたら、
何か漏れてたみたいで、PC出してごそごそと。
なんか寝床からムニャーとしながら京ぽんでアクセスしたら、
何か漏れてたみたいで、PC出してごそごそと。
150root▲ ★
2005/11/21(月) 16:22:49ID:???0 で、bbs.cgiに埋め込まれている広告問題ですが、
a) このさいだから、bbs.cgiから切り出す
b) bbs.cgi から bbsd に何らかの方法で渡す
の2つが考えられるですね。
でかいのは a) にするとして、b) もある程度残りそうな予感も少し。
a) このさいだから、bbs.cgiから切り出す
b) bbs.cgi から bbsd に何らかの方法で渡す
の2つが考えられるですね。
でかいのは a) にするとして、b) もある程度残りそうな予感も少し。
151▲ ◆cZfSunOs.U
2005/11/21(月) 20:54:54ID:+sSOM0E80 >>145-150 乙です.では DB 用 API はそういう形で実装していきます.
これが完了すると,とりあえず bbsd 側では動かせる形になるってところですかね.
広告については,確かに大きく固まってる部分は切り出しも容易でしょうけど,
細かくちりばめられてる部分をどうするかってのは考えどころですね......
これが完了すると,とりあえず bbsd 側では動かせる形になるってところですかね.
広告については,確かに大きく固まってる部分は切り出しも容易でしょうけど,
細かくちりばめられてる部分をどうするかってのは考えどころですね......
152root▲ ★
2005/11/22(火) 01:56:57ID:???0 >>151
了解です。よろしくおねがいしますです。
で、それ(広告)をうまく切り出せるようにすることをめざして、
作業をすすめています。
しかし、
MakeWorkFile
MakeIndex4Keitai
MakeIndex4PC
いずれも、割と神の領域だったりするんだな、これが。
了解です。よろしくおねがいしますです。
で、それ(広告)をうまく切り出せるようにすることをめざして、
作業をすすめています。
しかし、
MakeWorkFile
MakeIndex4Keitai
MakeIndex4PC
いずれも、割と神の領域だったりするんだな、これが。
153root▲ ★
2005/11/24(木) 17:54:43ID:???0 厳密にはスレ違いですが。
read.cgi と offlaw.cgi は、とりあえずmor_proxy経由でバックエンドで動かして、
mod_cache を通さないようにする、という、アドホックな路線でいってみようかと。
で、ひとつSunOSさんにというか、Apacheをわかっている方に質問なのですが、
<IfModule mod_cache.c>
CacheDisable /livejupiter/SETTING.TXT
CacheEnable disk /livejupiter/
CacheRoot /md/cache
CacheSize 65536
</IfModule>
なんて書いた場合、/md/cache のオーナーとかパーミッションって、
どうすればよかったんでしたっけか。
なんか、キャッシュされないみたいなんで。
read.cgi と offlaw.cgi は、とりあえずmor_proxy経由でバックエンドで動かして、
mod_cache を通さないようにする、という、アドホックな路線でいってみようかと。
で、ひとつSunOSさんにというか、Apacheをわかっている方に質問なのですが、
<IfModule mod_cache.c>
CacheDisable /livejupiter/SETTING.TXT
CacheEnable disk /livejupiter/
CacheRoot /md/cache
CacheSize 65536
</IfModule>
なんて書いた場合、/md/cache のオーナーとかパーミッションって、
どうすればよかったんでしたっけか。
なんか、キャッシュされないみたいなんで。
155▲ ◆cZfSunOs.U
2005/11/24(木) 21:06:02ID:g6I3uHOe0 Samba24 用汎用 DB チェック&登録:
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");
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");
156▲ ◆cZfSunOs.U
2005/11/24(木) 21:06:47ID:g6I3uHOe0 スレスト:
my $errmsg = bbsd($bbs, "stop:$key", $datline, "$logfilename:$logline");
スレ再開:
my $errmsg = bbsd($bbs, "restart:$key", $datline, "$logfilename:$logline");
$datline は dat に追記する内容(通常書き込み時と同フォーマット).
スレ移動:
my $errmsg = bbsd($bbs, "move:$key", $newbbs, "$logfilename:$logline");
----------------------------------------------------------------------
以上実装しますた.別鯖へのスレ移動を除いて一通り実装できたかと思います.
>>153 乙です.
>/md/cache のオーナーとかパーミッション
httpd プロセスが読み書き可能なオーナ・パーミッションであれば Ok かと.
>なんか、キャッシュされないみたいなんで。
とりあえず "LogLevel debug" にしてみると手がかりが得られるかも知れません.
>read.cgi と offlaw.cgi は、とりあえずmor_proxy経由でバックエンドで動かして、
>mod_cache を通さないようにする、という、アドホックな路線でいってみようかと。
これやるなら,Last-Modified を吐くようにしてキャッシュを効かせる形の方が良さそうな気もしますけどね.
my $errmsg = bbsd($bbs, "stop:$key", $datline, "$logfilename:$logline");
スレ再開:
my $errmsg = bbsd($bbs, "restart:$key", $datline, "$logfilename:$logline");
$datline は dat に追記する内容(通常書き込み時と同フォーマット).
スレ移動:
my $errmsg = bbsd($bbs, "move:$key", $newbbs, "$logfilename:$logline");
----------------------------------------------------------------------
以上実装しますた.別鯖へのスレ移動を除いて一通り実装できたかと思います.
>>153 乙です.
>/md/cache のオーナーとかパーミッション
httpd プロセスが読み書き可能なオーナ・パーミッションであれば Ok かと.
>なんか、キャッシュされないみたいなんで。
とりあえず "LogLevel debug" にしてみると手がかりが得られるかも知れません.
>read.cgi と offlaw.cgi は、とりあえずmor_proxy経由でバックエンドで動かして、
>mod_cache を通さないようにする、という、アドホックな路線でいってみようかと。
これやるなら,Last-Modified を吐くようにしてキャッシュを効かせる形の方が良さそうな気もしますけどね.
157root▲ ★
2005/11/25(金) 00:13:21ID:???0158root▲ ★
2005/11/25(金) 00:13:41ID:???0 で、live22のbbsdを更新しました。
いっぽ、いっぽ。
いっぽ、いっぽ。
159root▲ ★
2005/11/25(金) 02:52:48ID:???0 bbs.cgi とにらめっこ中、、、。
単純な質問で申し訳ないのですが、
$logfilename:$logline は、その「行為」ごとにとられる、ということかしら。
つまり、ログとらなくてもいい場合は、どうすればいいのかなと。
単純な質問で申し訳ないのですが、
$logfilename:$logline は、その「行為」ごとにとられる、ということかしら。
つまり、ログとらなくてもいい場合は、どうすればいいのかなと。
160root▲ ★
2005/11/25(金) 02:56:25ID:???0 こんなふうでいいのかな。
my $md5line = &bbsd($GB->{FORM}->{'bbs'}, 'getmd5seed', "/dev/null:");
my $md5line = &bbsd($GB->{FORM}->{'bbs'}, 'getmd5seed', "/dev/null:");
161root▲ ★
2005/11/25(金) 03:08:20ID:???0 $md5line = &bbsd($bbs, 'getmd5seed', "/dev/null:");
しこんだ。
しこんだ。
162root▲ ★
2005/11/25(金) 03:44:33ID:???0 とれるみたい。
%./bbs.pl livejupiter getmd5seed /dev/null:test | cat -v
2005_11_25<>M-XM-{Y=M-^E^@.M-^_TcM-QM-/<M-^EM--0
で、どうしてこれはとれないのかな。
%./bbs.pl livejupiter chkthr (むぎゅー) 256 AAAAAAAA This_is_test /dev/null:test
Invalid argument
%./bbs.pl livejupiter getmd5seed /dev/null:test | cat -v
2005_11_25<>M-XM-{Y=M-^E^@.M-^_TcM-QM-/<M-^EM--0
で、どうしてこれはとれないのかな。
%./bbs.pl livejupiter chkthr (むぎゅー) 256 AAAAAAAA This_is_test /dev/null:test
Invalid argument
163root▲ ★
2005/11/25(金) 03:57:34ID:???0 %./bbs.pl livejupiter chkid kuromarusuretate AAAAAAAA 3600 6 6 /dev/null:test
164root▲ ★
2005/11/25(金) 04:04:16ID:???0 ./bbs.pl livejupiter getndats /dev/null:test
0
0
167▲ ◆cZfSunOs.U
2005/11/25(金) 06:49:32ID:M1pAccsZ0 >>159-166 乙です.
>$logfilename:$logline は、その「行為」ごとにとられる、ということかしら。
>つまり、ログとらなくてもいい場合は、どうすればいいのかなと。
"$logfilename:$logline" のところに ':' を含まない文字列を適当に指定すれば Ok です.
/dev/null でもログ出力はしませんが,ファイルオープンは試みてしまうので
':' を含まない文字列指定の方がわずかですがムダは少ないかと思います.
>で、どうしてこれはとれないのかな。
>
>%./bbs.pl livejupiter chkthr (むぎゅー) 256 AAAAAAAA This_is_test /dev/null:test
>Invalid argument
>>124
> my $value = bbsd($bbs, 'chkthr', $file, $key, $value, "$logfilename:$logline");
>
> ・ 引数 $n を廃止し,FIFO 段数として BBS_THREAD_TATESUGI 値を使用するよう変更.
引数が1個余分ですね.$n は廃止で,$key は整数値です.
>$logfilename:$logline は、その「行為」ごとにとられる、ということかしら。
>つまり、ログとらなくてもいい場合は、どうすればいいのかなと。
"$logfilename:$logline" のところに ':' を含まない文字列を適当に指定すれば Ok です.
/dev/null でもログ出力はしませんが,ファイルオープンは試みてしまうので
':' を含まない文字列指定の方がわずかですがムダは少ないかと思います.
>で、どうしてこれはとれないのかな。
>
>%./bbs.pl livejupiter chkthr (むぎゅー) 256 AAAAAAAA This_is_test /dev/null:test
>Invalid argument
>>124
> my $value = bbsd($bbs, 'chkthr', $file, $key, $value, "$logfilename:$logline");
>
> ・ 引数 $n を廃止し,FIFO 段数として BBS_THREAD_TATESUGI 値を使用するよう変更.
引数が1個余分ですね.$n は廃止で,$key は整数値です.
169root▲ ★
NGNG というわけで、ひとつ、仕様追加のお願いがあります。
>>155 ですが、
> Samba24 用汎用 DB チェック&登録:
> my $statnum = bbsd($bbs, 'chkid', $dbname, $id, $seconds, $nwarn, $nkick, "$logfilename:$logline");
を、
Samba24 用汎用 DB チェック&登録:
my ($statnum, $count, $second) = bbsd($bbs, 'chkid', $dbname, $id, $seconds, $nwarn, $nkick, "$logfilename:$logline");
にしていただくことは可能でしょうか。
$count, $second はSamba24でそれぞれ、
($count回目、$second sec しかたってない)
に、使っているです。
つまり、問い合わせ回数が何回目か($count)と、
前回の問い合わせからのインターバルが$second秒だったよ、という情報を、bbs.cgi側に返していただきたいなと。
>>155 ですが、
> Samba24 用汎用 DB チェック&登録:
> my $statnum = bbsd($bbs, 'chkid', $dbname, $id, $seconds, $nwarn, $nkick, "$logfilename:$logline");
を、
Samba24 用汎用 DB チェック&登録:
my ($statnum, $count, $second) = bbsd($bbs, 'chkid', $dbname, $id, $seconds, $nwarn, $nkick, "$logfilename:$logline");
にしていただくことは可能でしょうか。
$count, $second はSamba24でそれぞれ、
($count回目、$second sec しかたってない)
に、使っているです。
つまり、問い合わせ回数が何回目か($count)と、
前回の問い合わせからのインターバルが$second秒だったよ、という情報を、bbs.cgi側に返していただきたいなと。
170root▲ ★
NGNG あと、もう一つI/Fがほしいです。
・板名とスレッドキーで指定してbbsdを呼ぶと、該当するdatの1行目をそのまま返す
これができると、トラックバックに対応できます。
さみだれ式ですみませんが、よろしくおながいしますです。
・板名とスレッドキーで指定してbbsdを呼ぶと、該当するdatの1行目をそのまま返す
これができると、トラックバックに対応できます。
さみだれ式ですみませんが、よろしくおながいしますです。
171root▲ ★
NGNG それから、、、広告か。
ここに晒していいかどうかわからないから、メールしておくです。
ここに晒していいかどうかわからないから、メールしておくです。
173root▲ ★
NGNG175root▲ ★
NGNG おしりの
アニメ | CM | ゲーム | 映画 | 音楽 | テレビ | 日記
は、bbs.cgi から教えることにしたです(対応済み)。
アニメ | CM | ゲーム | 映画 | 音楽 | テレビ | 日記
は、bbs.cgi から教えることにしたです(対応済み)。
176root▲ ★
NGNG purge...
とか、なってしまうのですね。< footnote
ちと、微妙かも。
とか、なってしまうのですね。< footnote
ちと、微妙かも。
177root▲ ★
NGNG …あと、Over1000やらスレストやら何やらで、書き込みリクエストがしくった場合の
エラー処理ハンドリングって、どうやればいいのかしら、、、。
エラー処理ハンドリングって、どうやればいいのかしら、、、。
2005/11/25(金) 17:29:36ID:i7XT2rQk0
★★ 頑張って!rootさん! ★★
179▲ ◆cZfSunOs.U
2005/11/25(金) 22:08:00ID:M1pAccsZ0 >>169 実装完
Samba24 用汎用 DB チェック&登録:
my ($statnum, $count, $second) = split(/,/, bbsd($bbs, 'chkid', $dbname, $id, $seconds, $nwarn, $nkick, "$logfilename:$logline"));
Samba24 用汎用 DB チェック:
my ($statnum, $count, $second) = split(/,/, bbsd($bbs, 'peekid', $dbname, $id, $seconds, $nwarn, $nkick, "$logfilename:$logline"));
bbsd は直接 Perl 配列を返せないため CSV 文字列で返しますので,split() をかまして下さい.
>>170 実装完
>>1取得:
my $datline = bbsd($bbs, 'get1', $key, "$logfilename:$logline");
>>171-172 えーと,届いてません......というか,もし旧 E-mail (〜(at)super.win.ne.jp) 宛に
お送り頂いていたとすると,ISP が事実上破綻状態となっているため利用できなくなってます.
お手数ですがとりあえず sunos(at)saita.ma 宛に再度お送り下さい.折り返し新 E-mail もお知らせします.
>>177 $errmsg が空文字列以外ならエラーで,例えば 1000 レス越えや 512kB 越えなら
"Disc quota exceeded" (EDQUOT) を返し,スレストなら "Permission denied" (EACCES) を
返しますので,それに沿って処理すればいいかと.
Samba24 用汎用 DB チェック&登録:
my ($statnum, $count, $second) = split(/,/, bbsd($bbs, 'chkid', $dbname, $id, $seconds, $nwarn, $nkick, "$logfilename:$logline"));
Samba24 用汎用 DB チェック:
my ($statnum, $count, $second) = split(/,/, bbsd($bbs, 'peekid', $dbname, $id, $seconds, $nwarn, $nkick, "$logfilename:$logline"));
bbsd は直接 Perl 配列を返せないため CSV 文字列で返しますので,split() をかまして下さい.
>>170 実装完
>>1取得:
my $datline = bbsd($bbs, 'get1', $key, "$logfilename:$logline");
>>171-172 えーと,届いてません......というか,もし旧 E-mail (〜(at)super.win.ne.jp) 宛に
お送り頂いていたとすると,ISP が事実上破綻状態となっているため利用できなくなってます.
お手数ですがとりあえず sunos(at)saita.ma 宛に再度お送り下さい.折り返し新 E-mail もお知らせします.
>>177 $errmsg が空文字列以外ならエラーで,例えば 1000 レス越えや 512kB 越えなら
"Disc quota exceeded" (EDQUOT) を返し,スレストなら "Permission denied" (EACCES) を
返しますので,それに沿って処理すればいいかと.
180▲ ◆cZfSunOs.U
2005/11/25(金) 22:24:56ID:M1pAccsZ0181む@食事中 P211018235238.ppp.prin.ne.jp
2005/11/25(金) 22:52:19ID:u8Lne6GM0 おー、帰ったら早速組み込むです。
で、すぐメール出しなおします。
で、すぐメール出しなおします。
182▲ ◆cZfSunOs.U
2005/11/25(金) 23:11:38ID:M1pAccsZ0 bbsd 側の SO_SNDBUF も大きくした方がよさそうなので,その点も変更.
183root▲ ★
NGNG 洋ぽん問題の対応を先にするです。
まずは、メールフォワードしておくです。
まずは、メールフォワードしておくです。
184▲ ◆cZfSunOs.U
2005/11/26(土) 00:52:45ID:NBQj9pON0 >>183 メール受け取りました.で,広告の件ですが......
インクルードファイルの情報は非公開とのことなんですが,bbsd.c 自体が
今のところソース公開状態なんで,それを直接 bbsd.c に埋め込むと
結果的には公開してしまうことになってしまうんですよね......
ということで,いくつか方策を考えたんですが
1. bbsd.c も非公開化する.
2. 広告テキストだけでなく,インクルードファイル名も bbsd 呼び出し時の
引数として渡すようにする.
3. index.html のテンプレートは bbsd.c にハードコーディングではなく,
外部ファイル化してそれを利用する形にする.
4. その他何かいい方法.
さて,どういう形がいいでしょうか......
インクルードファイルの情報は非公開とのことなんですが,bbsd.c 自体が
今のところソース公開状態なんで,それを直接 bbsd.c に埋め込むと
結果的には公開してしまうことになってしまうんですよね......
ということで,いくつか方策を考えたんですが
1. bbsd.c も非公開化する.
2. 広告テキストだけでなく,インクルードファイル名も bbsd 呼び出し時の
引数として渡すようにする.
3. index.html のテンプレートは bbsd.c にハードコーディングではなく,
外部ファイル化してそれを利用する形にする.
4. その他何かいい方法.
さて,どういう形がいいでしょうか......
185root▲ ★
NGNG >>184
私は、広告の場所も公開して問題ないとは思うのですが、、、。
1. は、いやですね。
2. がいい気がします。
基本的に、広告は3ブロックなので、
'ad1'
'ad2'
'ad3'
みたいな引数で、DOCROOTからの相対パスで
広告のファイル名指定できるようにしておくというのはどうでしょう。
で、それをそのまま読んでいただければと。
私は、広告の場所も公開して問題ないとは思うのですが、、、。
1. は、いやですね。
2. がいい気がします。
基本的に、広告は3ブロックなので、
'ad1'
'ad2'
'ad3'
みたいな引数で、DOCROOTからの相対パスで
広告のファイル名指定できるようにしておくというのはどうでしょう。
で、それをそのまま読んでいただければと。
186root▲ ★
NGNG187▲ ◆cZfSunOs.U
2005/11/26(土) 01:15:14ID:NBQj9pON0 >>185-186 では,インクルードファイル名も引数化ってことですね.
ただ,bbsd に渡すパス名は,$logfilename も touch コマンドの引数も
$DOCUMENT_ROOT/test/ からの相対パスという形になってますので,
それに統一した方がいいと思います.これは,bbs.cgi 自体の場所からの
相対パスってことですね.
ただ,bbsd に渡すパス名は,$logfilename も touch コマンドの引数も
$DOCUMENT_ROOT/test/ からの相対パスという形になってますので,
それに統一した方がいいと思います.これは,bbs.cgi 自体の場所からの
相対パスってことですね.
190root▲ ★
NGNG あと、datを chmod 444 すると、
書けたように見えて書けないというのが、発生するみたいです。
書けたように見えて書けないというのが、発生するみたいです。
191▲ ◆cZfSunOs.U
2005/11/26(土) 02:31:37ID:NBQj9pON0193▲ ◆cZfSunOs.U
2005/11/26(土) 02:41:05ID:NBQj9pON0194root▲ ★
NGNG %./bbs.pl livejupiter 1132860497 'a<>a<>a<>a<>' foot log
Permission denied
ふうむ。ってことはbbs.cgi側すね。
すんませーん。でなおしてきます。
Permission denied
ふうむ。ってことはbbs.cgi側すね。
すんませーん。でなおしてきます。
195root▲ ★
NGNG bbs.cgiの虫でした。
さっきのは、虫していただければと。カサコソ
--------------------
書込み中・・・
--------------------
ERROR!
ERROR:このスレッドには書き込めません。
ホストbanana637.maido3.com
名前: ◆MUMUMUhnYI
E-mail: sage
内容:
ほい。
こちらでリロードしてください。 GO!
分からないことがあったら2ちゃんねるガイドへ。。。
アクセス規制・プロキシー制限等規制は、2ちゃんねるビューアを使うと回避できることがあります。自分で解決してみよう! 書き込めない時の早見表
さっきのは、虫していただければと。カサコソ
--------------------
書込み中・・・
--------------------
ERROR!
ERROR:このスレッドには書き込めません。
ホストbanana637.maido3.com
名前: ◆MUMUMUhnYI
E-mail: sage
内容:
ほい。
こちらでリロードしてください。 GO!
分からないことがあったら2ちゃんねるガイドへ。。。
アクセス規制・プロキシー制限等規制は、2ちゃんねるビューアを使うと回避できることがあります。自分で解決してみよう! 書き込めない時の早見表
196▲ ◆cZfSunOs.U
2005/11/26(土) 09:58:37ID:NBQj9pON0 広告対応しますた.書き込み API の引数追加になります.
# ずいぶん引数が多くなってきました(w
my $errmsg = bbsd($bbs, $key, $datline, $footnote, $adfile1, $adfile2, $adfile3, $adline, "$logfilename:$logline");
$adline が一番下の小さいやつです.
ただ,現状では $adfile1 には外枠が含まれておらず(つまり bbsd 側で枠を作成),
一方 $adfile2, $adfile3 には外枠が含まれ(つまり bbsd 側では枠を作成せず),
そのため今のままでは枠の外観が不統一になってしまいますね.
# ずいぶん引数が多くなってきました(w
my $errmsg = bbsd($bbs, $key, $datline, $footnote, $adfile1, $adfile2, $adfile3, $adline, "$logfilename:$logline");
$adline が一番下の小さいやつです.
ただ,現状では $adfile1 には外枠が含まれておらず(つまり bbsd 側で枠を作成),
一方 $adfile2, $adfile3 には外枠が含まれ(つまり bbsd 側では枠を作成せず),
そのため今のままでは枠の外観が不統一になってしまいますね.
>>196
> # ずいぶん引数が多くなってきました(w
リファレンスで渡すといぃかも?
my $errmsg = bbsd(
[
BBS => $bbs,
KEY => $key,
DATLINE => $datline,
:
:
]
);
みたいな。。。
> # ずいぶん引数が多くなってきました(w
リファレンスで渡すといぃかも?
my $errmsg = bbsd(
[
BBS => $bbs,
KEY => $key,
DATLINE => $datline,
:
:
]
);
みたいな。。。
198▲ ◆cZfSunOs.U
2005/11/26(土) 11:03:31ID:NBQj9pON0 >>197 単純に引数を羅列するよりリファレンスで渡す方が
無駄なコピーとかは発生しないようになるんですかね.
ただ,sub bbsd {} 自体はあまりインテリジェントではなく,
単純に引数を連結して bbsd にパケット投げてるだけなんで,
ハッシュリスト形式にするメリットはあまりないかも......
無駄なコピーとかは発生しないようになるんですかね.
ただ,sub bbsd {} 自体はあまりインテリジェントではなく,
単純に引数を連結して bbsd にパケット投げてるだけなんで,
ハッシュリスト形式にするメリットはあまりないかも......
199● iv66.opt2.point.ne.jp(222.225.56.66) stream ◆PNstream2s
2005/11/26(土) 12:35:38ID:z1nSq/XO0 live22xでスレ立てしようとしたらこうなりました。
●ログインしてました
ERROR!
ERROR:不明なエラーが発生しました。
(board:livejupiter key:1132976035 errmsg:1132976035)
このメッセージをコピペして、運用情報板で報告していただけるとありがたいです。
ホストiv66.opt2.point.ne.jp
sss
名前: 名無しさん@お腹いっぱい。
E-mail:
内容:
test
これはこっちでいいのかな
それともbbs.cgiスレかな?
Monazilla/1.00 (JaneLovely/0.1.6)
●ログインしてました
ERROR!
ERROR:不明なエラーが発生しました。
(board:livejupiter key:1132976035 errmsg:1132976035)
このメッセージをコピペして、運用情報板で報告していただけるとありがたいです。
ホストiv66.opt2.point.ne.jp
sss
名前: 名無しさん@お腹いっぱい。
E-mail:
内容:
test
これはこっちでいいのかな
それともbbs.cgiスレかな?
Monazilla/1.00 (JaneLovely/0.1.6)
200stream ◆PNstream2s
2005/11/26(土) 12:36:52ID:z1nSq/XO0201stream ◆PNstream2s
2005/11/26(土) 12:37:52ID:z1nSq/XO0 うーん、IFをつめてくスレだったからやっぱbbs.cgiスレのほうが良かったですね
203root▲ ★
NGNG で、ちょっと対応します。
そうか、新スレの時はスレッドキーが返るのを忘れてた。
そうか、新スレの時はスレッドキーが返るのを忘れてた。
205▲ ◆cZfSunOs.U
2005/11/26(土) 13:50:47ID:NBQj9pON0 >204 ふむふむ......確かに可読性はよくなりそうですね.特に >>196 ぐらいになると
単純な引数羅列では混乱しそうで(w ただ,bbsd 側でも単純な引数羅列ならデリミタで
ちょん切るだけなのに対し,key-value ペアだともうちょっと働かないといけなくなりそう
というのもあるんで......引数の過不足には現状でも "Invalid argument" を返すんで(ex.>>162),
とりあえず例えばコメントで引数について注釈付けておくとかしておいてもらえば
my $errmsg = bbsd(
$bbs, # 板名
$key, # スレッドキー
$datline, # dat への追記内容
:
:
);
何とかなるかなぁという気もしたりしなかったり......
単純な引数羅列では混乱しそうで(w ただ,bbsd 側でも単純な引数羅列ならデリミタで
ちょん切るだけなのに対し,key-value ペアだともうちょっと働かないといけなくなりそう
というのもあるんで......引数の過不足には現状でも "Invalid argument" を返すんで(ex.>>162),
とりあえず例えばコメントで引数について注釈付けておくとかしておいてもらえば
my $errmsg = bbsd(
$bbs, # 板名
$key, # スレッドキー
$datline, # dat への追記内容
:
:
);
何とかなるかなぁという気もしたりしなかったり......
206root▲ ★
NGNG >>205
ソ、ソースをごらんになったのですか(w。
# bbsdに書き込みコマンドを送る
my $errmsg = &bbsd(
$GB->{FORM}->{'bbs'},
$GB->{FORM}->{'key'},
$GB->{OUTDAT},
$GB->{version},
$FOX->{headadfile},
$FOX->{putadfile},
$FOX->{maido3adfile},
$FOX->{lastad},
"$DATALOG:$GB->{LOGDAT}"
);
ソ、ソースをごらんになったのですか(w。
# bbsdに書き込みコマンドを送る
my $errmsg = &bbsd(
$GB->{FORM}->{'bbs'},
$GB->{FORM}->{'key'},
$GB->{OUTDAT},
$GB->{version},
$FOX->{headadfile},
$FOX->{putadfile},
$FOX->{maido3adfile},
$FOX->{lastad},
"$DATALOG:$GB->{LOGDAT}"
);
207root▲ ★
NGNG >>196
ということで、広告対応しました。
真ん中の広告はbbs.cg内にハードコーディングで
単独ファイルとして切り出されてないので、まだ出ないです。
(ちょっと、切り出してみるか)
あとはご指摘の通り、外観が不統一問題ですか。
どうすればいいんだろう。
ということで、広告対応しました。
真ん中の広告はbbs.cg内にハードコーディングで
単独ファイルとして切り出されてないので、まだ出ないです。
(ちょっと、切り出してみるか)
あとはご指摘の通り、外観が不統一問題ですか。
どうすればいいんだろう。
208▲ ◆cZfSunOs.U
2005/11/26(土) 14:35:47ID:NBQj9pON0 >>207
>あとはご指摘の通り、外観が不統一問題ですか。
>どうすればいいんだろう。
広告ファイルを手直しできるなら,ファイル側で枠ありか枠なしのどちらかで
統一すればいいんでしょうけど......
>あとはご指摘の通り、外観が不統一問題ですか。
>どうすればいいんだろう。
広告ファイルを手直しできるなら,ファイル側で枠ありか枠なしのどちらかで
統一すればいいんでしょうけど......
209root▲ ★
NGNG ファイル側に、原因があるですか。
広告部分は管理人の管轄で、私がどうがんがっても「神の領域」だからなぁ。
ううむ。
広告部分は管理人の管轄で、私がどうがんがっても「神の領域」だからなぁ。
ううむ。
210▲ ◆cZfSunOs.U
2005/11/26(土) 15:27:47ID:NBQj9pON0 広告ですが,CSS を使った力業ってのをちょっとやってみますた.
bbsd を更新後,いったん index.css を消してから復帰をかけてみて下さい.
bbsd を更新後,いったん index.css を消してから復帰をかけてみて下さい.
212▲ ◆cZfSunOs.U
2005/11/26(土) 15:46:52ID:NBQj9pON0 2番目のはまぁまぁの感じですが,3番目のがちょっとってとこですか......
213root▲ ★
NGNG215root▲ ★
NGNG 板トップから read.cgi をクリックで起動すると(例えば「全部読む」を押す)、
名前欄のクッキーが文字化けするようです。
文字コードの問題かしら。
名前欄のクッキーが文字化けするようです。
文字コードの問題かしら。
216▲ ◆cZfSunOs.U
2005/11/26(土) 16:31:34ID:NBQj9pON0 再び力業......再度 bbsd 更新,index.css 消去の上復帰かけてみて下さい.
>>215 read.cgi の JavaScript 部分も
http://www2.2ch.net/snow/index.js
を利用するようにすれば解消するのではないかと......
>>215 read.cgi の JavaScript 部分も
http://www2.2ch.net/snow/index.js
を利用するようにすれば解消するのではないかと......
217root▲ ★
NGNG >>216 前半
やりました。
http://live22x.2ch.net/livejupiter/
おぉ。
>>216 後半
これって、今の時点で全部のread.cgiにやると、いまいちなんでしたっけ。
やりました。
http://live22x.2ch.net/livejupiter/
おぉ。
>>216 後半
これって、今の時点で全部のread.cgiにやると、いまいちなんでしたっけ。
218▲ ◆cZfSunOs.U
2005/11/26(土) 16:43:10ID:NBQj9pON0220▲ ◆cZfSunOs.U
2005/11/26(土) 16:47:00ID:NBQj9pON0 >>219 現状のエンコードしていない Cookie 設定では Firefox や Mozilla などで
文字化けが発生しますが,その index.js のようにエンコードするとその問題が解消します.
文字化けが発生しますが,その index.js のようにエンコードするとその問題が解消します.
221▲ ◆cZfSunOs.U
2005/11/26(土) 16:48:44ID:NBQj9pON0 ただ,NAME と MAIL の Cookie 設定はクライアント側 JavaScript にお任せになるので,
bbs.cgi 側ではそれらの Cookie 設定はしないようにしてもらった方がいいです.
bbs.cgi 側ではそれらの Cookie 設定はしないようにしてもらった方がいいです.
223root▲ ★
NGNG ひとつ、質問です。
今Samba24で「永久」になっちゃった場合って、
そのレコードはどのタイミングでexpireがなされるんでしたっけか。
今Samba24で「永久」になっちゃった場合って、
そのレコードはどのタイミングでexpireがなされるんでしたっけか。
224root▲ ★
NGNG 自己解決しました。
上に、ちゃんと書いてあるですね。
ちと休憩しながら、ロードバランシングのことでも調べるか。
上に、ちゃんと書いてあるですね。
ちと休憩しながら、ロードバランシングのことでも調べるか。
2005/11/26(土) 18:30:16ID:X1zHFGGX0
ここいらで2ch wiki雪だるま作戦ページに現状を書いていきたいのですが、よろしいでしょうかね?
2005/11/26(土) 18:36:33ID:X1zHFGGX0
2005/11/26(土) 19:37:36ID:X1zHFGGX0
実装の箇条書きだけあげておきました。
実装の詳細ははしょるつもり。
# 220レスのチェックはかなりつらいですわw
あと僭越ながら概要図を描いてみました。
wiki添付でupできんのでispへあげときました。
ttp://v.isp.2ch.net/up/9827b66877cf.jpg
実装の詳細ははしょるつもり。
# 220レスのチェックはかなりつらいですわw
あと僭越ながら概要図を描いてみました。
wiki添付でupできんのでispへあげときました。
ttp://v.isp.2ch.net/up/9827b66877cf.jpg
230root▲ ★
NGNG 1001 名前:1001[] 投稿日:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
これ、今までと同じにしてくださいです。
全角で1000とか、そういうの。
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
これ、今までと同じにしてくださいです。
全角で1000とか、そういうの。
2005/11/26(土) 20:06:29ID:X1zHFGGX0
>>231
うわ、早速ばれてるw
うわ、早速ばれてるw
235root▲ ★
NGNG 大丈夫みたいです。
1001 名前:1001[] 投稿日:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
1001 名前:1001[] 投稿日:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
236root▲ ★
NGNG このへんが、出たみたいです。
質問・雑談スレ208@運用情報板
http://qb5.2ch.net/test/read.cgi/operate/1132976990/46
46 名前:動け動けウゴウゴ2ちゃんねる[] 投稿日:2005/11/26(土) 20:01:04 ID:zBsPZFmx0
こんなん出たから貼るけど、ここでいいのかなぁ?
ERROR:不明なエラーが発生しました。
(board:livejupiter key:1133001202 errmsg:No such file or directory)
このメッセージをコピペして、運用情報板で報告していただけるとありがたいです。
【しゃけ】雪だるま作戦に思いを馳せながら雑談するスレッド Part27
http://aa5.2ch.net/test/read.cgi/nanmin/1132754646/458
458 名前:名無し草[] 投稿日:2005/11/26(土) 23:53:29
ERROR:不明なエラーが発生しました。
(board:livejupiter key:1133016767 errmsg:File exists)
このメッセージをコピペして、運用情報板で報告していただけるとありがたいです。
質問・雑談スレ208@運用情報板
http://qb5.2ch.net/test/read.cgi/operate/1132976990/46
46 名前:動け動けウゴウゴ2ちゃんねる[] 投稿日:2005/11/26(土) 20:01:04 ID:zBsPZFmx0
こんなん出たから貼るけど、ここでいいのかなぁ?
ERROR:不明なエラーが発生しました。
(board:livejupiter key:1133001202 errmsg:No such file or directory)
このメッセージをコピペして、運用情報板で報告していただけるとありがたいです。
【しゃけ】雪だるま作戦に思いを馳せながら雑談するスレッド Part27
http://aa5.2ch.net/test/read.cgi/nanmin/1132754646/458
458 名前:名無し草[] 投稿日:2005/11/26(土) 23:53:29
ERROR:不明なエラーが発生しました。
(board:livejupiter key:1133016767 errmsg:File exists)
このメッセージをコピペして、運用情報板で報告していただけるとありがたいです。
237root▲ ★
NGNG 質問・雑談スレ208@運用情報板
http://qb5.2ch.net/test/read.cgi/operate/1132976990/66-67
ということは、ENOENTの時は「そんなスレッドないです。」かな。
EEXISTS は、、、。
http://qb5.2ch.net/test/read.cgi/operate/1132976990/66-67
ということは、ENOENTの時は「そんなスレッドないです。」かな。
EEXISTS は、、、。
238▲ ◆cZfSunOs.U
2005/11/27(日) 10:30:32ID:Q5XEP8aN0 >>236-237 ENOENT は存在しないはずのスレに書き込みしようとした時に出ますね.
EEXIST はスレ立て時にリトライ回数上限(16)に達してしまった場合に起こりますね.
EEXIST はスレ立て時にリトライ回数上限(16)に達してしまった場合に起こりますね.
239root▲ ★
2005/11/27(日) 12:45:08ID:???0240root▲ ★
NGNG241▲ ◆cZfSunOs.U
2005/11/28(月) 07:12:46ID:Ki+x4bGX0 >>240 乙です.わかるかと思いますが一応......タイムアウト時間は
use constant BBSD_TIMEOUT => second;
のところで調整できます.あと
use constant BBSD_HOST => inet_aton('host');
use constant BBSD_PORT => port;
というのが現在は定数になってますが,これは今後 live22 以外にも雪だるまを
使うようになったら,各ホストに対応する接続先に切り替えられるように
した方がいいですね.
use constant BBSD_TIMEOUT => second;
のところで調整できます.あと
use constant BBSD_HOST => inet_aton('host');
use constant BBSD_PORT => port;
というのが現在は定数になってますが,これは今後 live22 以外にも雪だるまを
使うようになったら,各ホストに対応する接続先に切り替えられるように
した方がいいですね.
242root▲ ★
2005/11/28(月) 11:09:03ID:???0243root▲ ★
2005/11/28(月) 11:15:35ID:???0 で、先日ちょっと書いたトラックバックへの対応ですが、
http でバックエンドにdatをとりにいくように bbs.cgi で対応したので、
bbsd での対応は、不要になったです。
http でバックエンドにdatをとりにいくように bbs.cgi で対応したので、
bbsd での対応は、不要になったです。
244▲ ◆cZfSunOs.U
2005/11/29(火) 00:30:54ID:xl2IcKRm0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「性犯罪マップ」が物議 事件・加害者情報などマッピング、誰でも閲覧可能 個人情報保護の観点で疑問の声 [おっさん友の会★]
- 【JA全農】「備蓄米」明記しないよう販売要請へ 取り合いになる可能性懸念 “スポット価格”は依然高止まりか ★2 [牛乳トースト★]
- 【食糧】スーパーのコメ5kg4000円突破 値上がり続く 史上最高値を更新 農水省★4 [シャチ★]
- 【高知】放課後はキャバクラ嬢、小学校の新人教諭を停職処分 「いざ給与をもらうと物足りず」 [牛乳トースト★]
- 【立花孝志】「もう街頭に立てない」頭部の傷痕公開 攻撃は2回だった! “無反応の他党”に不満も ★5 [煮卵★]
- 「隣の席の男性がかわいいと思った」 高速バス車内で性的暴行 容疑で兵庫の男(56)逮捕 [おっさん友の会★]
- ホテルで死亡した4歳男児晄大ちゃん。起きたらパパがいない!→部屋を飛び出す→オートロックだから戻れない→探すうち落ちる [485187932]
- 【悲報】中小企業が賃上げしないせいで実質賃金マイナスに😭 [851446405]
- 日本人気づく「高IQの人が子供作らずに低IQの人が子供作る。つまり日本は低IQだらけになる。てかうちの地域そうなってる」 [856698234]
- 風邪で高熱出して寝込んでる時に誰か世話してくれる人がいるっていいよな!
- EV競争、終わる。BYDが最新EV発表会で満充電まで6分の最強バッテリー発表。5分の充電で400km走行を実現 [838847604]
- 東大教授「財務省解体デモのインフルエンサーは過去に偽情報や誤解を招く投稿をしたことが多い」 [718678614]