X



トップページ運用情報
498コメント239KB
【雪だるま】bbsd⇔各cgi間のI/F仕様について考え・詰めていくスレッド
■ このスレッドは過去ログ倉庫に格納されています
0001root▲ ★垢版NGNG
雪だるま作戦において開発をすすめている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に持たせたい・持つべきな機能をあぶり出し、実装仕様を詰めていくことを目標にしています。
0002動け動けウゴウゴ2ちゃんねる垢版2005/10/28(金) 16:03:47ID:TergQv970
↓スレスト
0003root▲ ★垢版NGNG
ということでちょっとだけ覚悟を決めて、bbs.cgi を少しずつ読んでみたりしています。

私はまずは「今のbbs.cgiの実装そのままでは雪だるま仕様で動きそうもない」と思った件について、
ここにひとつずつ、書き込んでいくことにしようかなと思っています。

本業しながらなのでたぶんだらだらと進んでいくことになると思いますが、何卒ご容赦くださいです。
特に、bbsd の実装をすすめていただいている SunOS さんには、
今後ともおつきあいをよろしくお願いいたします。

で、dat直読みをどうするかについては、別スレでやりたいと思っています。
(たぶんApacheのmod_proxyを使うような気がしています)
0004root▲ ★垢版NGNG
ということで、まずはぼちぼちとすすめていこうかなと。
0009動け動けウゴウゴ2ちゃんねる垢版2005/10/28(金) 16:49:29ID:HU0HoH7B0
もう dat は google base に投げ入れてしまえ
0012root▲ ★垢版NGNG
とりあえず、パターン分けしていくです。

・ファイルの単位
A 板ごとに一つ(1単位)
B サーバごとに一つ(1単位)
...
Z その他

・更新頻度
a たまに
b 1日に1回
c 1スレ立つごとに更新
d 1書きこみごとに更新
...
z その他

(イメージをつかんだいただくための例)
1-A-a SETTING.TXT
1-B-a キャップのデータ(news18, news19を除く)
1-A-d timecount/timecloseのデータ
1-B-d Samba24のデータ

ということで要素を洗い出して、こんなふうに場合わけして、
そのうえで、

一) バックエンドで一元管理しないといけなそうなもの
二) バックエンドにある原本を、ゆっくりフロントエンドに配布すればよいもの
三) 別のところで作ったものを、フロントエンドに個別に配布すればよいもの
...
百) その他

というふうに場合わけして、上記 一) になったものを、bbsd の配下に入れることになるのかなと。
0015動け動けウゴウゴ2ちゃんねる垢版2005/10/28(金) 17:53:13ID:OhUu29NH0
2. 恋人よ半年が過ぎ 逢えないが泣かないでくれ

ついに bbs.cgi に触れる覚悟を決めたむむむ。
しかし、そこに待ち受けていたのは巨大なカオスソース。
読み始めたむむむにはもはや引き返す道は無くなっていた。
果たして、bbs.cgi はどうなる?!

〜 第14章 むむむの覚悟 〜
0016root▲ ★垢版NGNG
今まで読んでわかったもの その1

整理番号 タイプ ファイル 分類
[1-1] 1-A-a SETTING.TXT 二
[1-2] 1-A-b IDを作るための種ファイル 一
[1-3] 1-B-a index.htmlの広告ファイル1 三
[1-4] 1-B-a index.htmlの広告ファイル2 三
[1-5] 1-B-a ●規制用ファイル 三
[1-6] 1-B-a リモホ規制用ファイル 三
[1-7] 1-B-a Rock54用データファイル 三
0017◆SANUKI/VII 垢版NGNG
live22xに鯖の情報入れて置いて、板に書き込むとその鯖のdatフォルダに行くようにしたりするの?
0018root▲ ★垢版NGNG
単位新規追加
C bbspinkのサーバごとに一つ(1単位)

[1-8] 1-C-a bbspinkのみの広告ファイル 三
0021root▲ ★垢版NGNG
[1-9] 1-A-c スレッド立てすぎです、のための記録用ファイル 一
[1-10] 1-A-d timecount/timecloseのための記録用ファイル 一
0022root▲ ★垢版NGNG
メモ:
・datそのものや、datが入っているディレクトリを直接触っているものは、
何らかの対策を行う必要あり。

例:
ごめんなさいリミッター(datの数をreaddirで数えている)
スレッドの容量による制限(unless( -s $DATAFILE <= 512000))
0023root▲ ★垢版NGNG
メモ:
・立てようとしたスレッドキーじゃないキーでスレッドが立つケースの考慮要。

例えば1100000000でリクエストしたけど、1100000001でスレッドが立つ場合。
ごめんなさいリミッター2のところともからむ。
参考:
http://qb5.2ch.net/test/read.cgi/operate/1113117347/951 あたり
0024root▲ ★垢版NGNG
[1-11] 1-B-a キャップのデータ(news18, news19のみ1-A-a) 二
[1-12] 1-B-c ●でスレッド立てすぎです、またにしてくださいの作業用ファイルとフォルダ 一
[1-13] 1-B-d Samba24の作業用ファイルとフォルダ 一
0025root▲ ★垢版NGNG
datに追記する/新規作成するところは、既にbbsdにおいて実装済みですね。

で、広告関係はbbsdが読み込んでindex.htmlを作るから、バックエンド側か。
以下修正。場合わけ追加。

四) バックエンドにだけ置けばいいもの

[1-3] 1-B-a index.htmlの広告ファイル1 四
[1-4] 1-B-a index.htmlの広告ファイル2 四
[1-8] 1-C-a bbspinkのみの広告ファイル 四
0026root▲ ★垢版NGNG
で、既にわかっているものとして、

・指定したdatをageる => スレッド924で使用
・指定したdatの大きさを得る => 512k制限で使用
・指定した板のdat数を得る => ごめんなさいリミッターで使用

かな。
0027root▲ ★垢版NGNG
あと、クラシックさんが入れた板飛びチェックの部分があるか。
でもこれは、>>23 により必要ないかもです。

・指定した板名・キーを持つdatがあるか調べる => 板飛び防止策で使用
0028root▲ ★垢版NGNG
芋堀り用のログファイルデータを突っ込むところは、既にbbsdで実装済みのはず。

…とりあえず以上かな。
しばらく、本業します。
0029root▲ ★垢版NGNG
・指定したファイルをtouchする => キャップのあぶり出しで使用

なので、>>26 も含めて、指定したファイルをtouchできる仕組みがあるといいかもです。
0030root▲ ★垢版NGNG
さて、仕事に戻る前に。

bbsd 的には、分類 一 と >>26 >>29 に対応するためのAPIを実装いただいて、
分類 四 については、こちらから情報を出して bbsd に入れていただくというのが、
よいと思いますです。

ということで、ここまでのばしておけば即死もなさげかしら。
あとは、またあとで。
0031root▲ ★垢版NGNG
…で、外から見て思いあたったところや、
これ忘れてるんじゃないの? と思ったことは、
どんどんここに書いていただけると助かりますです。

このスレの目的は個別のコミュニケーションじゃなくて、
みんなでわいわいしながらすすめていくことなんで。
0032動け動けウゴウゴ2ちゃんねる垢版2005/10/28(金) 18:54:46ID:ezRLTwJk0
(1)調べなきゃいけない項目について個別にbbs.cgiがbbsdに質問するのと
(2)書き込みデータをさっさとbbs.cgiからbbsdに渡して、bbsdが各項目をチェックする(1つでも駄目だったらエラーを返す)のと

どっちがええの?
なんでかっていうとさ、512k制限で思った。
1000超えたスレッドとかスレストされたスレッドもbbs.cgiかbbsdかで調べなきゃいけないんじゃ?
003332垢版2005/10/28(金) 19:02:23ID:ezRLTwJk0
俺の記憶だと
スレストや、レス数1000を超えたでパーミッションが落とされるんじゃなかったっけ?

エラーメッセージが1000超えとスレストは
ERROR!
ERROR:このスレッドには書き込めません。


512kだと
ERROR!
ERROR:このスレッドは512kを超えているので書けません!

どうせ書き込み時毎回サイズ調べてるんだったら、サイズオーバーを検出した時点でパーミッション落とすとか。

…なんか本題とずれちゃった
0034root▲ ★垢版NGNG
>>32
たぶん、事象により個別に考える必要があるですね。
というかまさに「考えどころ」な気がするです。

指摘のとおり、1000超えやスレストのところの判定は、
unless(-w $DATAFILE) とかしているので、
何らかのAPIにより事前に判定するか(1)、bbsdがエラーを戻すか(2)、
いずれにせよどっちが必要ですね。
0036root▲ ★垢版NGNG
>>25 場合わけ修正

四) 別のところで作ったものを、バックエンドにだけ置けばいいもの
0037動け動けウゴウゴ2ちゃんねる垢版2005/10/28(金) 19:44:54ID:YoVlyfOv0
ここはrootの独り言スレですか?
0038動け動けウゴウゴ2ちゃんねる垢版2005/10/28(金) 19:47:44ID:3oPsG9+x0
>>37
こういうこと始めますよと公言して皆さんの意見も取り入れーのみたいな
基本的にrootたんが新しい事やる時は抜き打ちはない
0040root▲ ★垢版NGNG
あとは、、、。各種呪文ですね。

dat、subject.txt、subback.html、index.htmlを触るものは、
何らかの対策が必要かもしれません(必要じゃないかもしれません)。

・各種呪文というか、スキルですか。
- 復帰系
- レス削除
- 透明削除
- スレ削除
- スレ移動
- スレスト・スレスト解除
- サーバまたぎ移動(もうあるのかな)
- 手動むぎゅ

自動なもの

・F22
- dat落ちの際に復帰がかかっている
- いろんなお掃除系

で、SunOSさんにここで一つ質問ですが、
現在のbbsdで「常時かかえて握っている」ファイルは、
subject,txt / subback.html / index.html の3つだけで、よかったんでしたっけか。
それとも SETTING.TXT も抱えちゃうんでしたっけ。
0041動け動けウゴウゴ2ちゃんねる垢版2005/10/28(金) 21:18:59ID:/s1pxg4g0
ほんど事情の分かっていないシロートですが。

Samba24は一部の板が違う設定になっているサーバがあるようです。
 bubble4 (archivesのみ120秒、その他は30秒)
 news19 (newsplusのみ120秒、その他は30秒)
 tv8 (tvのみ120秒、その他は45秒)
こういう設定と「Samba24のデータ」は別物? それとも一部の例外?
0042 ◆TWARamEjuA 垢版NGNG
(´-`).。oO(Rock54のファイルも抱え込むとまずいのかなぁ。。。)
0044動け動けウゴウゴ2ちゃんねる垢版2005/10/28(金) 22:01:36ID:/s1pxg4g0
>>43
なるほど。そういうことか。

確かに、archives@bubble4とtv@tv8は、
>BBS_BE_TYPE2=checked
ですね。

でも、newsplus@news19は
>BBS_BE_TYPE2=
みたい。ここは、さらに別の場所で設定しているのか?
0045◆cZfSunOs.U 垢版2005/10/28(金) 22:44:10ID:t62IzKuV0
>>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");
0046動け動けウゴウゴ2ちゃんねる垢版2005/10/28(金) 23:20:40ID:2H+WxHhx0
>>ごめんなさいリミッター(datの数をreaddirで数えている)
>
>これは,bbsd で保持している subject データと実際の dat 数に
>乖離が生じるのは,サーバダウン後復帰かける前など限られた条件下のみと
>思われるので,subject データからカウントする方が軽そうですが,どうでしょうか?

不可視スレとかよくあるから、厳密にやるならやはりdatを数えた方が
いいと思います。
削除や移動でも、subjectにスレタイが残って、datは消えてるという
パターンもあったりします。
(結局そういうのは復帰してもらってでないと直らない)
0047◆cZfSunOs.U 垢版2005/10/28(金) 23:42:47ID:t62IzKuV0
>>46 ん〜と,現状で発生しているそうした subject.txt と実際の dat との
乖離というのは,スレ立てや削除・移動など subject.txt 更新のタイミングの
バッティングで発生しているのではないかと思うのですが,bbsd では
subject 更新を一元管理するため,原理的にはそうしたバッティングは発生しないはずなんです.
で,乖離が生じるとしたらサーバダウン後の復帰前などの限られた条件下だろうと.
0049◆cZfSunOs.U 垢版2005/10/29(土) 00:28:15ID:CK7XWoMC0
とりあえず,今までに挙がった要実装のものはこんなところでしょうか.

>>16
>[1-2] 1-A-b IDを作るための種ファイル 一
>>21
>[1-9] 1-A-c スレッド立てすぎです、のための記録用ファイル 一
>[1-10] 1-A-d timecount/timecloseのための記録用ファイル 一
>>23
>・立てようとしたスレッドキーじゃないキーでスレッドが立つケースの考慮要。
>>24
>[1-12] 1-B-c ●でスレッド立てすぎです、またにしてくださいの作業用ファイルとフォルダ 一
>[1-13] 1-B-d Samba24の作業用ファイルとフォルダ 一
>>25
>[1-3] 1-B-a index.htmlの広告ファイル1 四
>[1-4] 1-B-a index.htmlの広告ファイル2 四
>[1-8] 1-C-a bbspinkのみの広告ファイル 四
>>26
>・指定したdatをageる => スレッド924で使用
>・指定した板のdat数を得る => ごめんなさいリミッターで使用
>>29
>・指定したファイルをtouchする => キャップのあぶり出しで使用
>>40
>あとは、、、。各種呪文ですね。
0050root▲ ★垢版NGNG
>>41 >>43-44
板別のSambaの秒数データは、bbs.cgi が持っているです。
bbs.cgiを雪だるま仕様にしても、概ねそのまま動くと思っています。

>>42
Rock54のデータ従来通り、
>>16
> [1-7] 1-B-a Rock54用データファイル 三

は、個々のフロント側bbs.cgi(の船)で抱え込めばOKと思います。
つまり、既にbbs.cgiで抱え込んでいるので、
bbs.cgiを雪だるま仕様にしても、概ねそのまま動くと思っています。
0051root▲ ★垢版NGNG
>>45
> bbsd に機能を実装するものはフロント側に置いた CGI から bbsd を呼んで,
> bbsd に機能を実装しないものはバック側においた CGI を mod_proxy でそのまま呼ぶ,
> って感じでしょうか.まぁこの点はとりあえず今後のことですね.

そういうことになりますね。

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

それで問題ないと思います。
下記にもありますが、subject.txtが信用できるなら、そのほうが軽そうです。

> >スレッドの容量による制限(unless( -s $DATAFILE <= 512000))
> このチェックはすでに bbsd に入ってますね(EDQUOT に相当する
> エラーメッセージを返します).

了解です。
つまり雪だるま仕様では「書いてみて EDQUOT だったらこのエラーにすればよい」と。

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

つまり雪だるま仕様では「書いてみて EACCESS だったらこのエラーにすればよい」と。
0052root▲ ★垢版NGNG
>>45 続き
> >>40
> >現在のbbsdで「常時かかえて握っている」ファイルは、
> >subject,txt / subback.html / index.html の3つだけで、よかったんでしたっけか。
> >それとも SETTING.TXT も抱えちゃうんでしたっけ。
> 「仮に他のプログラムが変更しても bbsd によって上書きされる」ということなら
> subject.txt / subback.html / index.html の3つですね.SETTING.TXT は
> 読み込み専用なのでそういうことはありません.ただ,設定読み込みのため
> mmap() したままにするので,更新時にはいったん別ファイル名でうpしてから
> rename という手順でやってもらった方がいいです.

なるほど。
「常時抱えて握っている」というのは、mmap() したままにする、とか、
open() したままにする、という意味でした。

個々の dat は、握らないのですね。

言い替えれば「bbsdにお伺いを立てずに今まで通り更新してもよいのか、
上記のようにアトミック性を考慮した更新をする必要があるのか、ということを
言っていました。

わかったこと: SETTING.TXT を変更する cgi は、変更する必要あり。
手でむぎゅる場合も、cp してそっちをいじって mv する必要がある。
0053root▲ ★垢版NGNG
>>45 さらに続き
> 以下,とりあえず現在実装されているものを列記します.
> 書き込み処理:
> my $errmsg = bbsd($bbs, $key, $datline, $footnote, "$logfilename:$logline");

これで、スレ立ても大丈夫なのかしら。
あと、それぞれのAPIの戻り値の意味を教えていただけると助かります。

> レスの通常あぼーん:
> 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.txt のつじつまは、合うのかしら。

あとは、スレスト処理ですかね。

> スレを 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");

これは、何が戻って来るんでしたっけか。
0055◆cZfSunOs.U 垢版2005/10/29(土) 00:59:03ID:CK7XWoMC0
>>52
>個々の dat は、握らないのですね。

握りませんです.

>>53
> > 書き込み処理:
> > my $errmsg = bbsd($bbs, $key, $datline, $footnote, "$logfilename:$logline");
>
>これで、スレ立ても大丈夫なのかしら。
>あと、それぞれのAPIの戻り値の意味を教えていただけると助かります。

これはスレ立て・レス追加兼用ですね(どちらであるかは $datline 中のスレタイフィールドに
文字列が入っているか否かで判断しています).$errmsg とあるのはすべて,成功時は空文字列,
失敗時はそれを示すエラーメッセージとなります.ただし,スレ立ての成功時は
>>23によりスレッドキーを返すよう変更する方向となりますかね.

> > レスの通常あぼーん:
> > レスの透明あぼーん:
> > スレッドのゴミ箱逝き:
> > スレッドのファイル自体削除:
>
>削除系は、このへんを呼べばよいと。
>subject.txt のつじつまは、合うのかしら。

そうですね.subject も含めて処理します.

> > スレを subject から消す:
>
>これは、スレ削除すると必要?

上記 API によるスレ削除の場合は不要です.F22 による dat 落ちなどによる
利用を想定したものです.

> > subject.txt 等の再生成:
> > dat/*.dat から html/*.html を再生成:
>
>このへんは復帰処理に組み込む、ってことですね。

そうですね.

> > ステータス情報の取得:
>
>これは、何が戻って来るんでしたっけか。

これは各種 CGI の処理とは直接関係ないですが,チューニングなどの際に
参考になるように各種情報を返します.まぁ百聞は一見にしかずで
実際に呼んでみるとわかるかと思います.
0056削除屋@放浪人 ★垢版2005/10/29(土) 01:00:12ID:???0
>>53
中身を見てないで、動作だけのお話しですが、
スレッド移動は、恐らくdatを移動した後、subject.txtの
一番下に、直接スレッドキー+タイトルを書き込んでる
と思います(必ず移動後に、subject.txtの一番下に
移転したスレッドが現れますので)。

スレストは、subject.txtに対しては何もしてません(多分)。
スレ削除は、subject.txtからスレッドキー+タイトルも
削除しているようです。
0057root▲ ★垢版NGNG
>>55
> 握りませんです.

なるほど、F22は従来通りdatを落としてよいと。
# で、つじつま合わせのためのAPIもあると(下記)。

> (どちらであるかは $datline 中のスレタイフィールドに
> 文字列が入っているか否かで判断しています).

了解です。
新スレかどうかの判定部分ではこんなかんじ↓のことをしているので、
bbs.cgiとも親和性がよいです。

#subjectがあれば新規スレッド
if($GB->{FORM}->{'subject'} ne ""){

で、
> ただし,スレ立ての成功時は
> >>23によりスレッドキーを返すよう変更する方向となりますかね.

としていただけるとありがたいです。

> そうですね.subject も含めて処理します.

了解です。
であれば、削除後の復帰処理は要らないというか、
呪文を対応させる時はそういうふうにする必要があると。

> F22 による dat 落ちなどによる
> 利用を想定したものです.

さすがです。

> まぁ百聞は一見にしかずで実際に呼んでみるとわかるかと思います.

やってみます。
というか、ソース読んでみればいいのか。
0058root▲ ★垢版NGNG
>>56
情報提供助かります。

このへんは、対応APIを組み込めばいけそうなかんじですね。
呪文の名前とか使い方とか、全然知らない(というか、調べないようにしている)私。

# 各種呪文を誰が雪だるまに対応させるのかとか、、、。

# 呪文のを知っている人が自然にやってくれますよ、うん。
# …などと、奈良県のほうを向いて、唱えておこう。そうしよう。
0070◆cZfSunOs.U 垢版2005/10/31(月) 02:06:22ID:4tjMop6J0
とりあえず,仕様がはっきりしていて実装も比較的容易なものから順次やっていきます.
----------------------------------------------------------------------
指定した板の dat 数を得る:
        my $ndats = bbsd($bbs, 'getndats', "$logfilename:$logline");

指定した dat を age る:
        my $errmsg = bbsd($bbs, 'raise', $key, "$logfilename:$logline");

指定したファイルを touch する:
        my $errmsg = bbsd($path, 'touch', $mtime, "$logfilename:$logline");
        # $mtime は Unix 時間(0 なら現在時刻にする)

スレ立ての成功時はスレッドキーを返すよう変更
----------------------------------------------------------------------
ここまで実装しますた.


で,以下のはどのような仕様にするのがいいんでしょう.引数・戻り値や処理内容など......

[1-2] 1-A-b IDを作るための種ファイル 一
[1-9] 1-A-c スレッド立てすぎです、のための記録用ファイル 一
[1-10] 1-A-d timecount/timecloseのための記録用ファイル 一
[1-12] 1-B-c ●でスレッド立てすぎです、またにしてくださいの作業用ファイルとフォルダ 一
[1-13] 1-B-d Samba24の作業用ファイルとフォルダ 一
0071root▲ ★垢版NGNG
>>70
おつです、おつです。

そのへんについては、bbs.cgiで扱っている情報の種別・内容などを
書ける範囲でここに書いていくです。
今日はちと遅いので、明日以降にでも。
0072('A`) ◆jOBMANDKSA 垢版2005/11/01(火) 04:13:44ID:lNSUZa7JO
壁|A`).oO(なんか面白そうなスレだな・・・・見守ってみるか
0073root▲ ★垢版NGNG
さて、いよいよ「詰めていく」をはじめようかと。
まずは、

[1-2] 1-A-b IDを作るための種ファイル 一

についてです。

IDの種は、板ごとにファイル(以下、種ファイルと呼ぶことにします)で持っていて、
そのフォーマットは、

YYYY_MM_DD<>xxバイトのバイナリ

となっています。
# YYYY になったのは、今日からです(w。

<> はセパレータです。
ようは、「日付」と「xxバイトの種」を、
板ごとに一セット、ファイルで記録していると考えていただければ、よいと思います。

(続く)
0074root▲ ★垢版NGNG
で、bbs.cgiは、このような動作をするようです。

まずbbs.cgi船が出航すると、
いっとう最初の初期化のところで、種ファイルのチェックにいきます。

で、種ファイルがない(最初の状態)、あるいは読み込んだ種ファイルの
日付が今日じゃなかったら、bbs.cgiは種ファイルを作り直して、
作った日付と新しい種をファイルに記録して、以降その種を使います。
この時、xxバイトの種が変わります。つまり、IDが変わります。

で、読み込んだ種ファイルの日付が今日だったら、
読み込んだ種をそのまま使います。つまり、IDは前と変わらないわけです。

で、このファイルは基本的にbbs.cgi船の出航時にしか読み込まないようになっています。
(おじさんならではの、無駄なI/Oをできるだけ少なくする工夫)
つまり、船の再利用(2回目以降の実行)の時は、既に読んでいる種ファイルの
日付(2回目以降の実行なので、既にメモリ上にあります)のチェックだけをして、
2回目以降に起動された時の日付と比較しています。
その結果「まだ同じ日付」だったら、今メモリ上にある種を使い回すことにして、
ファイルの作り直し・読み直しをしません。
日付が違っていたら、作り直しをします。

ということで、日付が変わったら、その時点で船が生きていてもIDだけは変わるように、
私の知らない間に、いつの間にか改良が施されていたようです。
0075root▲ ★垢版NGNG
で、雪だるま環境では、この種ファイルは、複数あるフロントエンドで
同じものを共有する必要があります。
でないと、担当したクライアントごとに、IDが変わってしまいます。

しかも、0:00になったことをbbs.cgiが検知すると、
ファイルを更新する操作がかかります(サブルーチンになっています)。

なので、雪だるま環境では、こんな動きになると思います。

・bbs.cgiは最初のいっぱつめでbbsdに「板名」「今日のID種ちょうだい」と言う
・bbsdは「その板の今日のIDの種はこれだよ」と、16バイトのバイナリをbbs.cgiに返す
・bbs.cgiはディスク上(メモリディスクがベター)に、今まで同様に記録する
・bbs.cgiの動き的には、あとは今までと一緒

(続く)
0076root▲ ★垢版NGNG
ということでbbsdでは、

・bbs.cgi に該当リクエストを聞かれた時点で、
もしファイルがなければ、public_html/板名/md5.cgi などという名前で、
>>73 のフォーマットのファイルを作成する

・もし>>73のファイルが既にあり、今日の日付だったら、
その中身の種を返す

・日付が変わっていたら、ファイルを作り直して、作り直した結果の種を返す

のように動く API を、一つ用意していただくとよいと思うです。

種は例えば /dev/random いくばくか読むなどして、16バイトのバイナリを、
板ごとにユニークに作っていただければよいです。

まずはこんなところで。
0077root▲ ★垢版NGNG
>>76 補足
> ・bbs.cgi に該当リクエストを聞かれた時点で、
> もしファイルがなければ、public_html/板名/md5.cgi などという名前で、
> >>73 のフォーマットのファイルを作成する
作成したうえで、呼び出し元に種を返さないといけませんね。はい。

そんでは、今日はねるです。
0078root▲ ★垢版NGNG
> [1-9] 1-A-c スレッド立てすぎです、のための記録用ファイル 一

のところを少しずつ読みはじめています。
ふーむ、、、。
0079root▲ ★垢版NGNG
簡単にいえば、行単位でのスタック処理ですね、これ。

> [1-10] 1-A-d timecount/timecloseのための記録用ファイル 一

も、同じようなスタック処理の様子。

汎用スタックルーチンを bbsd 側で作ってもらうのが、よさげな予感。
0080root▲ ★垢版NGNG
スタックというか、FIFOか。
少なくとも [1-9] はそういう動き。
0081root▲ ★垢版NGNG
[1-9] 1-A-c スレッド立てすぎです、のための記録用ファイル 一

これは、以下のようなFIFO用汎用APIをbbsd側で作っていただければいけると思います。

・板別FIFOへのデータ登録・チェックAPI

- 「板名」「FIFOファイル」「FIFO段数」「登録キー」「登録データ」を引数として、bbs.cgiから呼び出し
(例)
* 板名 operate
* FIFOファイル ほにゃらか.cgi (バックエンド側で public_html/operate/ほにゃらか.cgi となる)
* FIFO段数 数字(整数)
* 登録キー 数字(整数)
* 登録データ 文字列

1) FIFOファイルがなければ作成する
2) FIFOファイルがあった場合、中を調べて、
2-1) 既にFIFO中に同じ「登録キー」があったら、「もうそのキーはあるよ」をbbs.cgiに返す、
FIFOの順番はいじらない
2-2) 「登録キー」がなかったら、指定された「登録キー」「登録データ」をFIFOファイルに記録し、
「正常に登録できた」をbbs.cgiに返す
指定されたFIFO段数を超えた分は、古いものから順にFIFOから削除する
0082root▲ ★垢版NGNG
FIFOファイルは、以下のフォーマットにしていただけるとありがたいです。

登録キー,登録データ
登録キー,登録データ
...
(FIFO段数分これが存在)
登録キー,登録データ

登録データとしては、, や ( ) が入ったりすることもありえます。
0083root▲ ★垢版NGNG
これで、bbsd で「スレッド立てすぎです」のためのFIFOを一元管理し、
各フロントエンドの bbs.cgi からスレ立て時に問い合わせることになります。

まだきちんと読んでいませんが、timecount/timeclose のところも
基本的にはこれまたはこれのバリアントで、いけるような気がしています。
0085root▲ ★垢版NGNG
ただ、バリアントとはいえ、微妙なことはいくつかしているようです。
たぶん、FIFOとはいえ、[1-10] は [1-9] ほど簡単な構造ではないですね。

いずれにせよ、以降は明日以降とゆうことで。
0086root▲ ★垢版NGNG
で、基本路線を書いておこうと。
基本的には、

dat直読みやsubject.txtはApacheの機能で、

すべてのフロントエンドで共有しなければいけないデータで、
かつすばやい同期・反映・浸透が求められるものは bbsd で一元管理し、

すべてのフロントエンドで共有しなければいけないデータで、
バックエンドからゆっくり同期すればいいもの(例: SETTING.TXT やキャップデータ)は、
rsync とかでゆくーり配る

別のマスターから配布しているもの(Rock54のデータとか)は、基本的に今までどおり

といったかんじで。
0088◆cZfSunOs.U 垢版2005/11/01(火) 23:44:09ID:WRnidKIn0
>>73-87 乙です.ぼちぼちやっていきます.

ところで,各データについてリブートをまたいで保持する必要があるか否か
ということについてはどうなりますでしょうか.リブートをまたいだ保持が
不要なデータについては,ファイルに記録せずオンメモリで完結させてしまった方が
簡単かも知れませんので......
0089root▲ ★垢版NGNG
>>88
基本的には、これまでここで出たものはファイルを持たせる方向でお願いしますです。
0090root▲ ★垢版NGNG
うぉ、暴発。

IDの種やスレッド立て抑制のためのデータは、さすがに揮発するとまずいです。
IDが変わってしまったり、リブート後にスレッド立ちまくりになったりしてしまうんで、、、。

明日以降ぼちぼちやっていこうと思っている、timecount/timecloseとかは、
場合によってはオンメモリだけでもいいかもしんないです。
これは私もまだ読みきってないんで、別途考慮ってかんじですか。
0092root▲ ★垢版NGNG
[1-12] 1-B-c ●でスレッド立てすぎです、またにしてくださいの作業用ファイルとフォルダ 一
[1-13] 1-B-d Samba24の作業用ファイルとフォルダ 一

これやろうかと。
0093◆cZfSunOs.U 垢版2005/11/05(土) 21:55:21ID:JPA5x/Zh0
[1-2] 1-A-b IDを作るための種ファイル 一 (>>73-77):
my $md5seed = bbsd($bbs, 'getmd5seed', "$logfilename:$logline");

・ $DOCUMENT_ROOT/$bbs/md5.cgi がなければ作成("yyyy_mm_dd<>16bytes-seed"),あればそれを読み込む.
・ yyyy_mm_dd を現在の日付と比較し,同じならそのまま返し,違っていたら作り直した上で返す.

[1-9] 1-A-c スレッド立てすぎです、のための記録用ファイル 一 (>>81-82):
my $value = bbsd($bbs, 'chkthr', $file, $n, $key, $value, "$logfilename:$logline");

・ $DOCUMENT_ROOT/$bbs/$file があればそれを読み込む.
・ $key というキーを持つデータが存在すれば,それと対になって記録されていた $value を戻り値として返す.
  FIFO データは変更せず.(FIFO の順番だけでなく $value も更新しないということでいいんですよね?)
・ $key というキーを持つデータが存在しなければ,それを FIFO の末尾に追加する.
  FIFO 段数が $n より多ければ余剰分を先頭から順に削除.
  更新結果をファイルに書き出す.空文字列を戻り値として返す.
----------------------------------------------------------------------
ここまで実装しますた.

で,念のため [1-9] の $value の最大サイズがどの程度になるか教えておいて下さい.
あと,[1-10], [1-12], [1-13] の記録データの最大サイズも同様におながいします.
0094root▲ ★垢版2005/11/05(土) 23:21:16ID:???0
>>93
おつです。おつです。

> (FIFO の順番だけでなく $value も更新しないということでいいんですよね?)

よいです。

> で,念のため [1-9] の $value の最大サイズがどの程度になるか教えておいて下さい.

ホストネームの最大長 + α ぐらいでよいと思います。
安全をみて、512 Bytes とかでよいかと。

> あと,[1-10], [1-12], [1-13] の記録データの最大サイズも同様におながいします.

了解です。
仕様指定時に改めて指定させていただきますです。
0095動け動けウゴウゴ2ちゃんねる垢版2005/11/06(日) 20:25:11ID:oVNuRozN0
>>75-76

日付を管理するサーバが複数あると誤動作の元。

bbs.cgi で日付を管理、bbsd はbbs.cgiからもらった日付と板名をキーにして
テーブル等から種を検索する方法を提案します。
0096root▲ ★垢版NGNG
>>95
bbs.cgi は複数のサーバ(live22x1〜live22x3)で動くんで、
それだと、かえって混乱しちゃうような。
0097動け動けウゴウゴ2ちゃんねる垢版2005/11/06(日) 22:58:29ID:yvSWRg1b0
>>96
live22x1〜live22x3とlive22はntpで時間合わせしてる前提なので
それほどサーバ間で時間に差があることはないので、レアケースですが、

例えば、以下の状況だと、live22x1だけ一日前の種を使うことにならない?

live22x1:
日付が変わったので bbsd を呼ぶ (2005年11月07日00:00:00)
live22:
まだ日付が変わっていない (2005年11月06日23:59:59)

他の対策としては、bbsd側の種の更新タイミングを、bbs.cgiより1分ほど
早く設定すれば回避出来なくはないかな。
0098root▲ ★垢版NGNG
>>97
なるほど、

だとすると、

> ・bbsdは「その板の今日のIDの種はこれだよ」と、16バイトのバイナリをbbs.cgiに返す

の時に、bbsdからbbs.cgiに日付と種を両方返すことにして、
bbsdから戻ってきた日付が万一bbs.cgiの意図したものじゃなかったら、
その結果は捨てることにすればいいのかな。
009996垢版2005/11/06(日) 23:39:26ID:sDcfiRZ20
>>98

いい感じですね

bsd.cgi は返って来たものが意図したものと違ってたら捨てて、
何回かリトライさせればOKだと思う

ところで、bsd.cgi は絶対に種は必要なのかな。
bbsd が保持してるだけじゃ駄目?

; H"の回線が切れたので、ID変わってます
0101◆cZfSunOs.U 垢版2005/11/06(日) 23:44:42ID:iq8V25O30
bbsd が返すのは現状でも "yyyy_mm_dd<>16bytes-seed" になってますね.
# というか,最初の仕様は 16bytes-seed の部分だけ返すという意図だったんですか......
0102root▲ ★垢版NGNG
>>99-101
了解です。

該当部分は、

if(open(MD5FILE, "<$md5datefile"))
{
my $md5line = <MD5FILE>;
close(MD5FILE);
my ($a, $b) = split(/<>/, $md5line, 2);
if ($a eq $md5date) {return $b;}
}

return &foxCreateMD5id($bbs,$md5date) ;

という感じなので、現状の仕様でよいと思います。

# 私の仕様指定があいまいだったわけですが、ちゃんと意図どおりになっていてよかたです。
0103root▲ ★垢版NGNG
>>99
> ところで、bsd.cgi は絶対に種は必要なのかな。
> bbsd が保持してるだけじゃ駄目?

そういう仕様(毎回bbsdに伺う)でも悪くはないですが、
IDの種は1日に1回しか変わらないので(通常運用では1日に1回だけリフレッシュすればよい)、
キャッシュさせたほうがいいのかなと。

で、IDをbbsd側でつけるというのも、なんか微妙にセンス悪いとゆうか、
bbs.cgi側の都合で変えたくなった時に、微妙にフレキシブルじゃないとゆうか。
0104root▲ ★垢版NGNG
>>103
> 毎回bbsdに伺う

正確には「船出航時に毎回bbsdに伺う」ですね。
SpeedyCGIだから。
0105動け動けウゴウゴ2ちゃんねる垢版2005/11/07(月) 22:43:28ID:KqEOS0ue0
>>104

そういう意味ではなく、種が必要な処理は全てbbsdに任せて、bbs.cgiは
種を使った処理をしないという選択もありでは?

種を使う処理が仮に書き込み時だけだとすると、書き込み時に bbsd が
変換すればOKなので。

と、各々の細かい役割を知らないのに勝手なこと言ってすいません。
0106 ◆TWARamEjuA 垢版NGNG
>>105
個人的にbbs.cgiは内容には一切触れずに規制処理(DNS系統:省Rock54+BBR)だけ行えば?なぁんて妄想もしていたりします。
単一bbsdでは負担が掛かるようなら子供を産んでも良さそうな。とかとか。。。
0107105垢版2005/11/07(月) 23:36:28ID:qaYfXUl/0
同じこと言ってましたね。
ちゃんと読んでませんでした、申し訳ない。

bbsdとのI/Fは変えずに、単純に、bbs.cgi を frontend/backend に役割を分けて
しまう手もありますね。

0108root▲ ★垢版2005/11/08(火) 02:05:40ID:???0
>>105
書きこみ時に bbsd で共通部分の処理をするというセンスは、
次の段階としては、ありなのかな。

ただ、基本的にファイルI/Oと共通データベース処理に専念してほしい予感も。
そもそも、bbsd.cgiのバックエンド的な位置づけなわけだし。
0109root▲ ★垢版2005/11/08(火) 16:31:58ID:???0
bbsdって1000超えした時って、どういう処理をするんでしたっけ。

1) このスレッドは1000を超えました。 <br> \
もう書けないので、新しいスレッドを立ててくださいです。。。
を書くかどうか
2) 板名/1000.txt を読むかどうか
0110◆cZfSunOs.U 垢版2005/11/08(火) 21:32:03ID:+RowFQSH0
>>109 1000.txt が存在すればそれを用い,なければ 1) の内容で dat に書き込みます.
0113動け動けウゴウゴ2ちゃんねる垢版2005/11/11(金) 14:27:16ID:lQB+cJ3w0
久しぶりに来たが、ぜんぜん進展してないの?
つうか、まとめサイトは?
テンプレすら張ってないし。
0115root▲ ★垢版2005/11/11(金) 14:54:00ID:???0
>>113
もうすこしかな。

Check_HardPosting (連続投稿ですか?) のところの
しくみの洗い出しと理解を、先にやりたいです。

それができると、雪だるまのためのbbs.cgi洗い出しは、
概ねできたことになるはず。
0116root▲ ★垢版NGNG
timecount/timeclose の処理も、FIFOですね。
ここに書こうと。
0117root▲ ★垢版NGNG
簡単にいうと、こんなかんじ。

1) timecount分のFIFOを準備しておく
2) 投稿に固有のID(*1)をキーに、FIFOを探す
3) FIFO内にそのIDがtimeclose個以上あったら「連続投稿ですか? (見つかった回数)回」エラー
4) IDをFIFOに積む、古いものからところてん式に押し出されていく

(*1)IPアドレスまたは携帯固有番号またはp2の番号

これなら、先だって用意していただいたものと同じようなのを
もひとつ準備していただければ、できそうですね。
0118root▲ ★垢版NGNG
[1-10] 1-A-d timecount/timecloseのための記録用ファイル 一

についてです。

ということで、bbsdでは、

・SETTING.TXTを読んで、板ごとにtimecount段数分のFIFOを準備する
・FIFOには、何か文字列(とりあえず256バイト以内ぐらい)が積まれる
・bbs.cgiは「板」「ID」を引数とし、bbsdに「これについて調べてちょ」と聞く
・bbsdは指定された板のFIFOを検索して、指定されたIDがtimeclose個以上見つかったら、
 その旨をbbs.cgiに返す。ただし、このときはbbsdはIDをFIFOに積まない
=> bbs.cgi はエラー処理(連続投稿ですか)をする
・timeclose個未満だったら、そのIDをFIFOに積み、bbs.cgiには正常を返す
=> bbs.cgi は正常系の処理をする

という形のAPIをbbsd側で作っていただけると助かります。

で、これは「記録用ファイル」と書きましたが、bbsd的にはメモリ上のみでよいと考えます。
0119root▲ ★垢版NGNG
あとは、>>92 ですか。

これらは基本的には、データベースですね。

ID、時間の要素、回数の要素

というDBをbbsd側で作っていただき、フロントからはそれに登録したり、
参照したりするかんじになるかなと。

詳細は、読みきったところで。
0120◆cZfSunOs.U 垢版2005/11/13(日) 19:10:56ID:s+Rpgd2P0
>>115-119 乙です.そちらもぼちぼち実装していきます.

ところでふと思ったんですが,timecount / timeclose データの FIFO の段数は
SETTING.TXT の timecount 値ということですが,となるとスレッド立てすぎデータ (>>93)
の FIFO 段数 $n も,ひょっとするとやはり SETTING.TXT の BBS_THREAD_TATESUGI 値
だったりするのでしょうか? もしそうだとすると......当初仕様通り bbsd 呼び出し時の
引数として $n を渡すのがいいのか,それとも bbsd 側で SETTING.TXT から取得するのがいいのか,
どうなんでしょうね.微妙なところかも知れませんが......
0122root▲ ★垢版NGNG
読み直しました。

ご指摘のとおり、段数はbbs.cgi側からは要らないですね。

> - 「板名」「FIFOファイル」「FIFO段数」「登録キー」「登録データ」を引数として、bbs.cgiから呼び出し

を、

> - 「板名」「FIFOファイル」「登録キー」「登録データ」を引数として、bbs.cgiから呼び出し

つまり、

> my $value = bbsd($bbs, 'chkthr', $file, $n, $key, $value, "$logfilename:$logline");

の、$n は bbs.cgi 側から指定しないことにして、
bbsd が SETTING.TXT から TATESUGI を読んで、それを使う

ことにしていただければと思います。
0124◆cZfSunOs.U 垢版2005/11/14(月) 22:24:59ID:tChr8Idl0
[1-10] 1-A-d timecount/timecloseのための記録用ファイル 一 (>>118)
    my $n = bbsd($bbs, 'chktimecount', $id, "$logfilename:$logline");

    ・ 段数 timecount の FIFO をオンメモリで作成.
    ・ $id のデータ数が timeclose 以上ならば戻り値としてそのデータ数を返す.
      FIFO データは変更せず.
    ・ $id のデータ数が timeclose 未満ならば戻り値として 0 を返す.
      FIFO に $id のデータを追加.

[1-9] 1-A-c スレッド立てすぎです、のための記録用ファイル 一 (>>93, >>122)
    my $value = bbsd($bbs, 'chkthr', $file, $key, $value, "$logfilename:$logline");

    ・ 引数 $n を廃止し,FIFO 段数として BBS_THREAD_TATESUGI 値を使用するよう変更.
----------------------------------------------------------------------
ここまで実装しますた.
0126root▲ ★垢版NGNG
Samba24の処理

a) Samba24用DB初期化用API

bbsdはbbs.cgi船が起動する時に指令を受ける
(bbs.cgiは最初にこの指令を出すように組まれる)
入力: 板名bname、秒数s

bbsdが起動して最初に指令を受けたら板別にDBを作り、
秒数sや回数nが異なった指令を受けたら、DBをconfigしなおす。
ただし、DBに蓄えているものは保持する。
指令が既にあるものと同じ秒数や回数だったら、何もしない。

万一a)の前にb)を受けたら、常に正常終了でよい。
# 最大10分、Samba24のDBが作られなくなりますが、、、。

# HDD上にDBをダンプするなり作るなりして、そこに前にあったbnameやsを入れるのもありです。
# というか、そのほうがよさげか。そうすればa)が来なくてもサービスできるですね。

# 将来秒数sはSETTING.TXTになるとのこと。
0127root▲ ★垢版NGNG
(続き)

b) Samba24用DB登録&チェック用API

1) 書き込みリクエストがあると、bbs.cgi は投稿に固有のID(*1)をキーに、
Samba24用DBに問い合わせを出す
入力: bname、ID

(*1)IPアドレスまたは携帯固有番号またはp2の番号

2) bbsdは投稿に固有のIDをキーに、Samba24用DBを検索する

DBでは、
「そのIDで問い合わせを受けた通産回数」と「そのIDで問い合わせを受けた最後の時間」
を保持している

今まで1回もそのIDで問い合わせを受けたことがなければ、
DBに「ID、1回、その時間」を登録して、正常終了を呼び出し元に返す
0128root▲ ★垢版NGNG
(続き)

3) そのIDで問い合わせを受けたことがある場合は、

3.1) もし、前に問い合わせを受けてからs秒以上経過していた場合には、
DBのそのIDのエントリをリセット(*2)して、正常終了を呼び出し元に返す
(*2)「ID、1回、その時間」にする

3.2) もし、前に問い合わせを受けてからs秒未満だった場合には、
DB側のそのIDのエントリの回数により、下記のように動作が分かれる

3.2.1) もし、そのIDでの通産問い合わせ回数が注意回数
(デフォルト3回、何かで変更可能になっているとうれしい)以下だったら、
DBの「ID、通産回数、最終時間」を更新し、
「異常ステータス1」を呼び出し元に返す

3.2.2) もし、そのIDでの通産問い合わせ回数が注意回数を超えているが、
規制回数(デフォルト5回、何かで変更可能になっているとうれしい)以下だったら、
DBの「ID、通産回数、最終時間」を更新し、
「異常ステータス2」を呼び出し元に返す

3.2.3) もし、そのIDでの通産問い合わせ回数が規制回数を超えたら、
DBを「ID、永久」にし、
「異常ステータス3」を呼び出し元に返す

3.2.4) 「ID、永久」の状態になった以降は、s秒以上の時間を空けた問い合わせが
あったとしても、すべて「異常ステータス3」を呼び出し元に返す
0129root▲ ★垢版NGNG
c) Samba24用DBリセット用API

F22から呼ばれる。
これを呼ぶと、そのbbsdで管理しているSamba24用DBの中身は全部ゼロクリアされる
ただし、a) で初期化した値はそのまま残る

d) Samba24用DB状況調査用API

F22から呼ばれる。
これを呼ぶと、いくつのIDがSamba24用DBに登録されているかを返す
0130root▲ ★垢版NGNG
…というかんじです。日本語が、微妙かもしれないですね。
変なところがあったら、書いてくださいです。> SunOSさん

日本語で説明を書き下すと、以外に複雑な形になってしまいましたが、
実際の中身は、それほどのものでもないです。

ようは、同じIDで短い時間の間に何度も何度もやると、だんだんと出世していって、
そのうち永久になっちゃいますよ、っていうかんじです。
それを、コスト低く実現していると。

今日は、こんなところで。
0131root▲ ★垢版NGNG
…と、ここまで書いて、
s秒をbbsdで管理するか、bbs.cgiで管理するか、
微妙なかんじもしてきました。

つまり、bbsdでは「回数」「前の問い合わせからの経過秒数」を戻りにして、
Sambaの判定は、bbs.cgiでやらせたほうがいいんじゃないかなと。

その路線だと、、、。ちょっと、再度考えてみるですかね。
0132root▲ ★垢版NGNG
>>131 は別途、明日以降考えてみるです。

そんでは、今日はおやすみなさい。
0133◆cZfSunOs.U 垢版2005/11/20(日) 08:54:55ID:EFjCcJ0V0
>>126-132 乙です.処理内容のイメージはだいたいつかめました.
問題は設定値(規定秒数・注意回数・規制回数)の扱いというところですか.

># 将来秒数sはSETTING.TXTになるとのこと。

というのを雪だるまを機に実施して,そうした設定値をすべて
SETTING.TXT から取得できるようにするのも一案かも知れませんが,
それができなければどうするかというところで......

「a) Samba24用DB初期化用API」と「b) Samba24用DB登録&チェック用API」
を別々にした場合,>>126 でも言及されているように a) より b) が
先に来るという可能性もあるのですが,それなら両者を統合して
「b) Samba24用DB登録&チェック用API」の引数でそれらの設定値も
一緒に渡すというのも一案かも知れませんね.いずれにせよ
秒数や回数の判定は登録&チェックの段階で行うことになりますし.

あるいは >>131 のように設定値に基づく判定は bbs.cgi 側が行って
bbsd は登録のみ行うということも考えられますが,その場合
規定秒数以上だった場合のリセットが行えないのが問題ですかね.
0134◆cZfSunOs.U 垢版2005/11/20(日) 10:01:50ID:EFjCcJ0V0
あと,規定秒数以上経過していたエントリは消していかないと,DB がどんどん肥大化
していきそうな気もしますね(その対策として c) があるのだと思いますが,
その呼び出しが来る前の段階で肥大化を防げればその方が良さそうな気もします).
ということで,やはり規定秒数は何らかの形で bbsd が知っておいた方がいいかも知れません.
0135root▲ ★垢版2005/11/20(日) 21:10:44ID:???0
>>133
どもです。

> 問題は設定値(規定秒数・注意回数・規制回数)の扱いというところですか.

そういうことですね。
なんか「ステートレス」「ステートフル」っていう話か。

> 「a) Samba24用DB初期化用API」と「b) Samba24用DB登録&チェック用API」
> を別々にした場合,>>126 でも言及されているように a) より b) が
> 先に来るという可能性もあるのですが,それなら両者を統合して
> 「b) Samba24用DB登録&チェック用API」の引数でそれらの設定値も
> 一緒に渡すというのも一案かも知れませんね.いずれにせよ
> 秒数や回数の判定は登録&チェックの段階で行うことになりますし.

これ、いいかもですね。
毎回bbsdに引数を全部渡せばいいのか。

>>134
そですね。DBのレコード毎にexpireできる仕組みを実装していただけると、
いいようなかんじで。

ちょっと、これらの路線で改めて仕様考えてみるです。
0136root▲ ★垢版2005/11/20(日) 22:11:01ID:???0
a+b) Samba24用汎用API、●でスレッド立て過ぎにも使用

書き込みリクエストがあると呼ばれる。
引数: bname, ID, s, w, k

bname: 板名
ID: IPアドレスまたは携帯固有番号またはp2の番号または●セッションID
(任意の文字列として取り扱えればOK)
s: 秒数 (s > 0)
w: 注意回数 (w >= 0)
k: 規制回数 (k >= w >= 0)

処理内容:

今まで1回もそのIDで問い合わせを受けたことがなければ、
DBに「ID、1回、その時間」を登録して、正常終了を呼び出し元に返す。

そのIDで問い合わせを受けたことがある場合は、

もし、前に問い合わせを受けてからs秒以上経過していた場合には、
DBのそのIDのエントリをリセット(*2)して、正常終了を呼び出し元に返す
(*2)「ID、1回、その時間」にする。

(続く)
0137root▲ ★垢版2005/11/20(日) 22:13:42ID:???0
(続き)

もし、前に問い合わせを受けてからs秒未満だった場合には、
DB側のそのIDのエントリの回数により、下記のように動作が分かれる。

1) もし、そのIDでの通産問い合わせ回数が注意回数w以下だったら、
DBの「ID、通産回数、最終時間」を更新し、
「異常ステータス1」を呼び出し元に返す。

2) もし、そのIDでの通産問い合わせ回数が注意回数wを超えているが、 規制回数k以下だったら、
DBの「ID、通産回数、最終時間」を更新し、
「異常ステータス2」を呼び出し元に返す。

3) もし、そのIDでの通産問い合わせ回数が規制回数kを超えたら、
DBを「ID、規制発動」にし、
「異常ステータス3」を呼び出し元に返す。

4) 「ID、永久」の状態になった以降は、s秒以上の時間を空けた問い合わせで
あったとしても、すべて「異常ステータス3」を呼び出し元に返す。
0138root▲ ★垢版2005/11/20(日) 22:16:23ID:???0
(続き)
あ、「ID、規制発動」になおしてください。< 4)

「ID、規制発動」の状態になってから3600秒(1時間)経過したら、
あるいは最後の問い合わせから3600秒経過したら、
そのIDのエントリをDBからexpireする。
0139root▲ ★垢版2005/11/20(日) 22:22:20ID:???0
これで、bbs.cgi側から普段使うAPIはひとつにできそうです。

で、●でスレッド立てすぎです、にも、応用できるですね。

bname: 板名
ID: ●のID
s: 3600
w: 6
k: 6

とかやれば、1時間で6つまでしか同じ●でスレッド、立てられないはず。

<チラシの裏>
うまくやれば、●を使ったスレつぶしにも対応できそうな気がしますが、
それは同じIDでDBを複数持たせる必要があるのかな。

あと、このI/Fを利用して、他サーバのbbs.cgiからex14のbbsdに通信して、
news4vipに関するデータを参照するとか(以下略。
</チラシの裏>

で、これをすればF22での定期クリアは必要なさそうな気もしますが、
メンテナンス用に、以下のI/Fは準備いただけると。
0140root▲ ★垢版2005/11/20(日) 22:23:41ID:???0
以下というのは、あと >>129 のやつですね。

とりあえず、こんなところでどうでしょうか。
0141root▲ ★垢版2005/11/20(日) 22:25:14ID:???0
で、あと、
これまで出た中で、詰めなければいけない仕様って、あったっけか。
0142root▲ ★垢版2005/11/20(日) 22:28:18ID:???0
…で、私のほうでも、
bbs.cgi 見直してみるです。

この目的のために、かなり整理整頓したわけで。
0143◆cZfSunOs.U 垢版2005/11/21(月) 00:18:31ID:+sSOM0E80
>>135-142 乙です.で,確認しておきたい点としては,この API 用の DB は
オンメモリで完結ということでもいいのでしょうか,ということと,
Samba24 と ● のデータを1つの DB に混在させる形でもいいのでしょうか,
というところです.


あと,確認事項で残っているものはこれでしょうかね.

[1-3] 1-B-a index.htmlの広告ファイル1 四
[1-4] 1-B-a index.htmlの広告ファイル2 四
[1-8] 1-C-a bbspinkのみの広告ファイル 四
0144◆cZfSunOs.U 垢版2005/11/21(月) 01:34:39ID:+sSOM0E80
考えてみると,性質の異なるデータを1つの DB に混在させてしまうより,
別々の DB に分けた方が検索効率もアップしますし,>>139 のチラシの裏のような
用途への応用も考えると,複数の DB を作成できるようにした方が汎用性は高そうですね.
ということで「板名」以外に「DB名」という引数も設け,1つの板で複数の DB を
持てるようにするのもいいかも知れませんね.
0145root▲ ★垢版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になりますか。

(続く)
0146root▲ ★垢版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回、その時間」にする。
0147root▲ ★垢版NGNG
>>143
あとは広告関係ですか。

ぼちぼち仕様出していきますが、このへんは実際に動かしながらでもいいかなと。
0148root▲ ★垢版NGNG
で、先回りして言っておくと、広告には「取り扱い的に」種類が大きく二つあるです。

a) 所定のファイルを読み込んでいる広告
b) bbs.cgiにハードコーディングで埋め込まれている報告

a) は、bbsdで無理なく対応可能ですが、
b) を、さてどうするかと。

というわけでこのへんは、動かしながら調整かなぁと。
0149root▲ ★垢版NGNG
ということで、今日はこのへんで二度寝するです。

なんか寝床からムニャーとしながら京ぽんでアクセスしたら、
何か漏れてたみたいで、PC出してごそごそと。
0150root▲ ★垢版2005/11/21(月) 16:22:49ID:???0
で、bbs.cgiに埋め込まれている広告問題ですが、

a) このさいだから、bbs.cgiから切り出す
b) bbs.cgi から bbsd に何らかの方法で渡す

の2つが考えられるですね。

でかいのは a) にするとして、b) もある程度残りそうな予感も少し。
0151◆cZfSunOs.U 垢版2005/11/21(月) 20:54:54ID:+sSOM0E80
>>145-150 乙です.では DB 用 API はそういう形で実装していきます.
これが完了すると,とりあえず bbsd 側では動かせる形になるってところですかね.
広告については,確かに大きく固まってる部分は切り出しも容易でしょうけど,
細かくちりばめられてる部分をどうするかってのは考えどころですね......
0152root▲ ★垢版2005/11/22(火) 01:56:57ID:???0
>>151
了解です。よろしくおねがいしますです。

で、それ(広告)をうまく切り出せるようにすることをめざして、
作業をすすめています。

しかし、

MakeWorkFile
MakeIndex4Keitai
MakeIndex4PC

いずれも、割と神の領域だったりするんだな、これが。
0153root▲ ★垢版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 のオーナーとかパーミッションって、
どうすればよかったんでしたっけか。

なんか、キャッシュされないみたいなんで。
0155◆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");
0156◆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 を吐くようにしてキャッシュを効かせる形の方が良さそうな気もしますけどね.
0157root▲ ★垢版2005/11/25(金) 00:13:21ID:???0
>>154
ううむ、入っていると思うけど、、、。

>>155
おつです。

これで、bbsdの準備は整った、ということ、、、なのかな。
read.cgi の改良は、第二段階ですね。

で、たぶん将来的には、read.cgi/offlaw.cgiはlive22じゃなくて、
live22xで動かすようにするほうがよさげかなと。
0158root▲ ★垢版2005/11/25(金) 00:13:41ID:???0
で、live22のbbsdを更新しました。
いっぽ、いっぽ。
0159root▲ ★垢版2005/11/25(金) 02:52:48ID:???0
bbs.cgi とにらめっこ中、、、。

単純な質問で申し訳ないのですが、
$logfilename:$logline は、その「行為」ごとにとられる、ということかしら。
つまり、ログとらなくてもいい場合は、どうすればいいのかなと。
0160root▲ ★垢版2005/11/25(金) 02:56:25ID:???0
こんなふうでいいのかな。

my $md5line = &bbsd($GB->{FORM}->{'bbs'}, 'getmd5seed', "/dev/null:");
0161root▲ ★垢版2005/11/25(金) 03:08:20ID:???0
$md5line = &bbsd($bbs, 'getmd5seed', "/dev/null:");

しこんだ。
0162root▲ ★垢版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
0163root▲ ★垢版2005/11/25(金) 03:57:34ID:???0
%./bbs.pl livejupiter chkid kuromarusuretate AAAAAAAA 3600 6 6 /dev/null:test
0164root▲ ★垢版2005/11/25(金) 04:04:16ID:???0
./bbs.pl livejupiter getndats /dev/null:test
0
0166root▲ ★垢版NGNG
…ということで、仮組み込みまで終わったです。

今のところの問題は、>>162 の後半のやつですね。
なんでだろう。

でもまずは、順調と思います。
本日は、ここまでで。
0167◆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 は整数値です.
0168root▲ ★垢版NGNG
>>167
上: ありがとうです。うまくいきました。

下: おはずかしいです。修正して、ちゃんと動きました。
0169root▲ ★垢版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側に返していただきたいなと。
0170root▲ ★垢版NGNG
あと、もう一つI/Fがほしいです。

・板名とスレッドキーで指定してbbsdを呼ぶと、該当するdatの1行目をそのまま返す

これができると、トラックバックに対応できます。

さみだれ式ですみませんが、よろしくおながいしますです。
0171root▲ ★垢版NGNG
それから、、、広告か。

ここに晒していいかどうかわからないから、メールしておくです。
0175root▲ ★垢版NGNG
おしりの

アニメ | CM | ゲーム | 映画 | 音楽 | テレビ | 日記

は、bbs.cgi から教えることにしたです(対応済み)。
0176root▲ ★垢版NGNG
purge...

とか、なってしまうのですね。< footnote

ちと、微妙かも。
0177root▲ ★垢版NGNG
…あと、Over1000やらスレストやら何やらで、書き込みリクエストがしくった場合の
エラー処理ハンドリングって、どうやればいいのかしら、、、。
0179◆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) を
返しますので,それに沿って処理すればいいかと.
0180◆cZfSunOs.U 垢版2005/11/25(金) 22:24:56ID:M1pAccsZ0
get1 (>>1取得)ですが,sub bbsd {} 中の
        recv(SOCK, $str, 2048, 0)
となってる部分の 2048 をもっと大きい数値にしないと,
>>1文が長い場合に尻切れになってしまうかも知れません.
0182◆cZfSunOs.U 垢版2005/11/25(金) 23:11:38ID:M1pAccsZ0
bbsd 側の SO_SNDBUF も大きくした方がよさそうなので,その点も変更.
0183root▲ ★垢版NGNG
洋ぽん問題の対応を先にするです。

まずは、メールフォワードしておくです。
0184◆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. その他何かいい方法.

さて,どういう形がいいでしょうか......
0185root▲ ★垢版NGNG
>>184
私は、広告の場所も公開して問題ないとは思うのですが、、、。

1. は、いやですね。
2. がいい気がします。

基本的に、広告は3ブロックなので、
'ad1'
'ad2'
'ad3'
みたいな引数で、DOCROOTからの相対パスで
広告のファイル名指定できるようにしておくというのはどうでしょう。

で、それをそのまま読んでいただければと。
0186root▲ ★垢版NGNG
>>185 は、

'ad1' は hoge.txt
'ad2' は test/munya.txt
'ad3' は munya.txt

みたいなかんじで、bbsdに教えておくということです。
0187◆cZfSunOs.U 垢版2005/11/26(土) 01:15:14ID:NBQj9pON0
>>185-186 では,インクルードファイル名も引数化ってことですね.
ただ,bbsd に渡すパス名は,$logfilename も touch コマンドの引数も
$DOCUMENT_ROOT/test/ からの相対パスという形になってますので,
それに統一した方がいいと思います.これは,bbs.cgi 自体の場所からの
相対パスってことですね.
0188root▲ ★垢版NGNG
>>187
了解です。
それ(testから)に合わせていただいて、問題ないです。
0189root▲ ★垢版NGNG
Samba は、無事動いたです。

>>182
そっか、「UDPいっぱつもの」なんですよね。
大きくする(8192)ことは簡単ですが、何か副作用ありますかね。
0190root▲ ★垢版NGNG
あと、datを chmod 444 すると、
書けたように見えて書けないというのが、発生するみたいです。
0191◆cZfSunOs.U 垢版2005/11/26(土) 02:31:37ID:NBQj9pON0
>>189 まぁ,バッファ用にその分メモリ食うぐらいかなと思います......

>>190 そのスレに手動で
bbs.pl livejupiter (key) 'a<>a<>a<>a<>' foot log
とか実行するとどうなりますか?
0192root▲ ★垢版NGNG
>>191
そのぐらいなら、たいしたことはなさそうですね。
8192にしておくか。

>>191
chmod 444 してから、ってことですかね。
0193◆cZfSunOs.U 垢版2005/11/26(土) 02:41:05ID:NBQj9pON0
>>192
>8192にしておくか。

dat の1行そのまま返すので,本文の制限容量より多めの方がいいかも知れません.

>chmod 444 してから、ってことですかね。

そうです.
0194root▲ ★垢版NGNG
%./bbs.pl livejupiter 1132860497 'a<>a<>a<>a<>' foot log
Permission denied

ふうむ。ってことはbbs.cgi側すね。
すんませーん。でなおしてきます。
0195root▲ ★垢版NGNG
bbs.cgiの虫でした。
さっきのは、虫していただければと。カサコソ

--------------------
書込み中・・・
--------------------
ERROR!
ERROR:このスレッドには書き込めません。

ホストbanana637.maido3.com

名前: ◆MUMUMUhnYI
E-mail: sage
内容:
ほい。

こちらでリロードしてください。 GO!
分からないことがあったら2ちゃんねるガイドへ。。。

アクセス規制・プロキシー制限等規制は、2ちゃんねるビューアを使うと回避できることがあります。自分で解決してみよう! 書き込めない時の早見表
0196◆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 側では枠を作成せず),
そのため今のままでは枠の外観が不統一になってしまいますね.
0197 ◆TWARamEjuA 垢版NGNG
>>196
> # ずいぶん引数が多くなってきました(w
リファレンスで渡すといぃかも?
my $errmsg = bbsd(
 [
  BBS => $bbs,
  KEY => $key,
  DATLINE => $datline,
  :
  :
 ]
);
みたいな。。。
0198◆cZfSunOs.U 垢版2005/11/26(土) 11:03:31ID:NBQj9pON0
>>197 単純に引数を羅列するよりリファレンスで渡す方が
無駄なコピーとかは発生しないようになるんですかね.
ただ,sub bbsd {} 自体はあまりインテリジェントではなく,
単純に引数を連結して bbsd にパケット投げてるだけなんで,
ハッシュリスト形式にするメリットはあまりないかも......
0199iv66.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)
0201stream ◆PNstream2s 垢版2005/11/26(土) 12:37:52ID:z1nSq/XO0
うーん、IFをつめてくスレだったからやっぱbbs.cgiスレのほうが良かったですね
0202root▲ ★垢版NGNG
調整途中でした。>>199-201

不具合報告は、別のところがよかったすね。
スレはないので、、、。bbs.cgi スレにお願いです。
0203root▲ ★垢版NGNG
で、ちょっと対応します。

そうか、新スレの時はスレッドキーが返るのを忘れてた。
0204 ◆TWARamEjuA 垢版NGNG
>>198
おそらく効率的では「ない」かと(苦笑)@リファレンス私→デリファレンスして連結して
でも、可読性や引数の抜けによる思わぬ鰓を減らすのには十分威力があるんじゃないかなぁと♪
0205◆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 への追記内容
    :
    :
  );

何とかなるかなぁという気もしたりしなかったり......
0206root▲ ★垢版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}"
);
0207root▲ ★垢版NGNG
>>196
ということで、広告対応しました。

真ん中の広告はbbs.cg内にハードコーディングで
単独ファイルとして切り出されてないので、まだ出ないです。
(ちょっと、切り出してみるか)

あとはご指摘の通り、外観が不統一問題ですか。
どうすればいいんだろう。
0208◆cZfSunOs.U 垢版2005/11/26(土) 14:35:47ID:NBQj9pON0
>>207
>あとはご指摘の通り、外観が不統一問題ですか。
>どうすればいいんだろう。

広告ファイルを手直しできるなら,ファイル側で枠ありか枠なしのどちらかで
統一すればいいんでしょうけど......
0209root▲ ★垢版NGNG
ファイル側に、原因があるですか。

広告部分は管理人の管轄で、私がどうがんがっても「神の領域」だからなぁ。
ううむ。
0210◆cZfSunOs.U 垢版2005/11/26(土) 15:27:47ID:NBQj9pON0
広告ですが,CSS を使った力業ってのをちょっとやってみますた.
bbsd を更新後,いったん index.css を消してから復帰をかけてみて下さい.
0212◆cZfSunOs.U 垢版2005/11/26(土) 15:46:52ID:NBQj9pON0
2番目のはまぁまぁの感じですが,3番目のがちょっとってとこですか......
0215root▲ ★垢版NGNG
板トップから read.cgi をクリックで起動すると(例えば「全部読む」を押す)、
名前欄のクッキーが文字化けするようです。

文字コードの問題かしら。
0218◆cZfSunOs.U 垢版2005/11/26(土) 16:43:10ID:NBQj9pON0
>>217 現状のままでは不整合があるかも知れませんが,雪だるまサーバ以外の index.html も
>>216 の index.js を利用するようにすれば不整合はなくなると思います.
0219root▲ ★垢版NGNG
>>218
なるほど、同期とってやる必要があると。

前に見たような機がするのですが、
これにすると、どのへんがよくなるんでしたっけ。
0220◆cZfSunOs.U 垢版2005/11/26(土) 16:47:00ID:NBQj9pON0
>>219 現状のエンコードしていない Cookie 設定では Firefox や Mozilla などで
文字化けが発生しますが,その index.js のようにエンコードするとその問題が解消します.
0221◆cZfSunOs.U 垢版2005/11/26(土) 16:48:44ID:NBQj9pON0
ただ,NAME と MAIL の Cookie 設定はクライアント側 JavaScript にお任せになるので,
bbs.cgi 側ではそれらの Cookie 設定はしないようにしてもらった方がいいです.
0222root▲ ★垢版NGNG
>>220-221
なるほどです。

bbs.cgi と read.cgi で同時対応することになると。
雪だるまと裕香、bbs.cgiスレで別途、すすめるかんじですね。
0223root▲ ★垢版NGNG
ひとつ、質問です。

今Samba24で「永久」になっちゃった場合って、
そのレコードはどのタイミングでexpireがなされるんでしたっけか。
0224root▲ ★垢版NGNG
自己解決しました。
上に、ちゃんと書いてあるですね。

ちと休憩しながら、ロードバランシングのことでも調べるか。
0228動け動けウゴウゴ2ちゃんねる垢版2005/11/26(土) 19:37:36ID:X1zHFGGX0
実装の箇条書きだけあげておきました。
実装の詳細ははしょるつもり。

# 220レスのチェックはかなりつらいですわw

あと僭越ながら概要図を描いてみました。
wiki添付でupできんのでispへあげときました。

ttp://v.isp.2ch.net/up/9827b66877cf.jpg
0229root▲ ★垢版NGNG
>>227-228
まずはおつです。

図とか微妙な部分がありますが、
そのへんは、おいおいと。
0230root▲ ★垢版NGNG
1001 名前:1001[] 投稿日:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

これ、今までと同じにしてくださいです。
全角で1000とか、そういうの。
0235root▲ ★垢版NGNG
大丈夫みたいです。

1001 名前:1001[] 投稿日:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
0236root▲ ★垢版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)
このメッセージをコピペして、運用情報板で報告していただけるとありがたいです。
0238◆cZfSunOs.U 垢版2005/11/27(日) 10:30:32ID:Q5XEP8aN0
>>236-237 ENOENT は存在しないはずのスレに書き込みしようとした時に出ますね.
EEXIST はスレ立て時にリトライ回数上限(16)に達してしまった場合に起こりますね.
0239root▲ ★垢版2005/11/27(日) 12:45:08ID:???0
>>238
了解です。
ENOENTは「スレッドがありません。」
EEXISTは「別の人が同時刻にスレッドを立てようとしています。ごめんなさい。」

にするです。
0241◆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 以外にも雪だるまを
使うようになったら,各ホストに対応する接続先に切り替えられるように
した方がいいですね.
0242root▲ ★垢版2005/11/28(月) 11:09:03ID:???0
>>241
ですね。< タイムアウト

で、host, port は、引数で与えるとか、あるいはどこかに config を書いておいて
bbs.cgi の船出航時に読むとかの応用もあるかなと。
0243root▲ ★垢版2005/11/28(月) 11:15:35ID:???0
で、先日ちょっと書いたトラックバックへの対応ですが、
http でバックエンドにdatをとりにいくように bbs.cgi で対応したので、
bbsd での対応は、不要になったです。
0244◆cZfSunOs.U 垢版2005/11/29(火) 00:30:54ID:xl2IcKRm0
>>242 鯖ごとに config ファイルを置いてそれを読み込むってのがいいかもですね.

>>243 なるほど.まぁ get1 コマンドはとりあえず残しておきますが.
ただ,HTTP を使うなら,バックエンドではなく localhost から取ってくれば
キャッシュを有効活用できてその分バックエンドの負担を減らせるかも知れません.
0245root▲ ★垢版NGNG
>>244
なるほど。
キャッシュを活用させるためには、どうやってとりにいけばいいのかしら。
read.cgiの特性上、今はlive22x.2ch.netという名前は、live22x[123]の中では、
live22.2ch.netの裏口につけてあったりして。
0246◆cZfSunOs.U 垢版2005/11/29(火) 07:35:19ID:xl2IcKRm0
>>245 ん〜と,普通に localhost 宛に HTTP リクエストを発すればいいかと.
もし VirtualHost を使っているのなら,"ServerAlias localhost" を設定して
localhost 宛のリクエストがその VirtualHost 宛として扱われるようにすればいいですね.
0247root▲ ★垢版2005/11/29(火) 13:33:14ID:???0
>>246
なるほどです。

本日午後以降多忙のため、別途ぼちぼち。
0248◆cZfSunOs.U 垢版2005/11/29(火) 16:28:48ID:GdnIox6j0
>>247 乙です.というか,Apache 側で ServerAlias とか設定しなくても,
localhost に接続しつつ Host ヘッダを live22x.2ch.net にすればいいですね.
例えば LWP 使ってるなら

    my $req = HTTP::Request->new(GET => "http://localhost/livejupiter/dat/1111111111.dat");
    $req->header(Host => "live22x.2ch.net");

とかすればいいかと.
0249root▲ ★垢版NGNG
>>248
use LWP::Simple;
$firstlog = get("http://$ENV{SERVER_NAME}/$GB->{FORM}->{bbs}/dat/$GB->{FORM}->{'key'}.dat");
$firstlog =~ s/\n.*//g;

なんていう、超手抜きコードですね。

帰ったら、>>248 を試してみるです。
0250◆cZfSunOs.U 垢版2005/11/30(水) 08:24:40ID:0+e07y/o0
>>249 LWP::Simple ではヘッダ指定とか出来なさそうなので,LWP::UserAgent
などを使ってもうちょっと手をかけなければならないかも知れません......
0251root▲ ★垢版NGNG
>>250
みたいですね。

つまり「へんなところで手抜きしちゃ だめですよ」ってことすか。

トラックバックは所詮トラックバックなので(= とりあえず動いているのと、
今は量で効いてこないんで、優先度高くない)、おいおい、マターリってかんじで。
0252◆cZfSunOs.U 垢版2005/11/30(水) 20:40:39ID:0+e07y/o0
まぁ手をかけるといっても数行程度ですが......

use LWP::UserAgent;
my $ua = LWP::UserAgent->new(agent => '', timeout => 5);
my $res = $ua->get("http://localhost/$GB->;{'FORM'}->{'bbs'}/dat/$GB->{'FORM'}->{'key'}.dat", Host => $ENV{'SERVER_NAME'});
if ($res->is_error) {
    DispError2($GB, 'ERROR!', 'ERROR:>>1取得失敗');
}
my $firstlog = (split(/\n/, $res->content, 2))[0];
0254root▲ ★垢版NGNG
>>252 を組み込みました。

# 051205 雪だるまでのトラックバック送信部分を改良(キャッシュが効くように) by む
0256動け動けウゴウゴ2ちゃんねる垢版NGNG
実況鯖スレでは擁護に回っているけれど、
live22b[12]のテストが足りなかったんじゃ、という気は正直あります。
heartbeat体制で最速1000テストやったわけでもないし。
0257root▲ ★垢版2005/12/09(金) 15:05:18ID:???0
>>256
たしかに。

でも、書き込み系のテストは割とすぐできるけど、
読み出し系のテストは、実戦以外でやるの、むずかしいす。

まぁ、言い訳ですが。
0259動け動けウゴウゴ2ちゃんねる垢版2005/12/13(火) 20:00:33ID:7YzWalJw0
復帰の呪文ですがー
今実際に使ってるのは通常復帰とsage復帰の2種類じゃないでしょうかー
(というか、それで足りているはずというかー)
復帰補さんが登場した時に、古い呪文なんたら、ってことがあったようなー
厳密にはメールで呪文のやりとりして確認するしかないんじゃないでしょうかー
0261◆cZfSunOs.U 垢版2005/12/13(火) 23:34:16ID:pxLkBcfF0
そろそろ呪文系 CGI も bbsd 対応が必要のようで......
呪文関連の API は >>45 >>156 あたりです.

で,sage 復帰っていうのはどのような処理になってるんでしょうか?
場合によっては API 追加になるのかな......
0263削除ふぶき ★垢版2005/12/13(火) 23:44:06ID:???0
liveanb の復帰依頼が来ていますのでお願いしますわ。ごきげんよう
0264stream ◆PNstream2s 垢版2005/12/13(火) 23:44:18ID:o0NfBbqA0
>>261
>sage復帰
現在subject.txtに存在するスレッドのうち、datが存在しないものを省く処理です。
スレッドの順位は復帰前と復帰後では変わりません。
0265◆cZfSunOs.U 垢版2005/12/14(水) 00:11:10ID:HoK4P3HR0
>>264 なるほど.既存の purge コマンドを使ってやるか,それとも別の API を作るか,
どちらがいいかってとこですね.呪文 CGI のわかる方と相談ということで......
0266root▲ ★垢版2005/12/14(水) 02:49:45ID:???0
>>259
なるほどです。
通常復帰とsage復帰って、同じ呪文(CGI)で引数が違うのかしら。
それとも、CGI自身が違うのかな。

>>261
どもです。
どうせ必要になると思うので、それらのAPIを使った
もうひとつ上のレイヤのサブルーチンを、ぼちぼち書き始めようかなと。

で、bbsd-common.pl とか、そういう名前で置いておいて、
各呪文からはrequireすると。

>>262
メッセージを見ようと思って点滅しているところをクリックした瞬間に、
ICQが異常終了しました(AA略)、、、。

すみませんが、再度お送りいただけますとありがたいです、、、。
0267水色@飛行石 ★垢版2005/12/14(水) 02:57:04ID:???0
>通常復帰とsage復帰って、同じ呪文(CGI)で引数が違うのかしら。

同じCGIで、うしろにオプション付けるって感じですー。
0268◆cZfSunOs.U 垢版2005/12/14(水) 03:00:31ID:HoK4P3HR0
>>266 乙です.

で,とりあえず sage 復帰に相当する機能の API 実装しますた.

dat の存在しないスレを subject から消す:
        my $errmsg = bbsd($bbs, 'autopurge', "$logfilename:$logline");
0269root▲ ★垢版2005/12/14(水) 03:02:22ID:???0
>>267
了解です。

>>268
はやっ。おつです。
live22のbbsdを更新してきます。
0271◆cZfSunOs.U 垢版2005/12/14(水) 03:29:20ID:HoK4P3HR0
>>269-270 乙です.が......ちょっとマズい点があって修正したので,
再度更新お願いします......
0273root▲ ★垢版NGNG
SunOSさんに作ってもらったAPIを使って、
呪文に組み込むための、

$errmsg = &ResSakujo($ita, $key, $resnum);

$errmsg = &ResToumeiSakujo($ita, $key, $resnum);

$errmsg = &SureStop($ita, $key);

$errmsg = &SureAgain($ita, $key);

$errmsg = &SureMove($ita, $key, $newita);

のサブルーチンを作ってみました。

で、気づいたところを。

1) レス削除をすると、BBS_DELETE_NAME を読むようです。
私は問題ないと思いますが、今の動作と違うみたいです。

2) スレ移動をすると、移動先の一番下に入るようです。
これは今の呪文も、そうなんでしたっけ。
0274root▲ ★垢版NGNG
で、削除系では、

$errmsg = &SureSakujo($ita, $key);

$errmsg = &SureGomibako($ita, $key);

は、今日中にできると思います。

で、スレ削除に使うAPI、

# スレッドのファイル自体削除:
# my $errmsg = &bbsd($bbs, "tdelete:$key", '*', "$logfilename:$logline");

は、本当にスレがrmされてしまうのでしょうか。
つまり、二度と復活できない。
0275root▲ ★垢版NGNG
復帰系では、

$errmsg = &Fukki($ita);

$errmsg = &SageFukki($ita);

を、作る予定。

で、質問なのですが、html/html の下って、
今の復帰の呪文でも、作られなおすんでしたっけか。
0276root▲ ★垢版NGNG
で、ここまではここ数日のうちにはできると思うので、
あとは、呪文への組み込みができれば、それでよいはず。

このへんのパーツができたら、次の段階(組み込み)へと。
0278root▲ ★垢版2005/12/14(水) 21:13:50ID:???0
>>277
了解です。ということは、現在の動作で問題ないですね。

で、$range というぐらいで、ひょっとするとインテリジェントな指定が
できたりするのかしら。< レス削除と透明削除
0280root▲ ★垢版2005/12/14(水) 21:48:09ID:???0
>>266
> すみませんが、再度お送りいただけますとありがたいです、、、。

再度送っていただきました。どもです。

で、ちと、重要なおながいをば、、、。

Qをお送りいただいた方には大変申し訳ないのですが、
管理人または管理人に許可を受けた方以外の方が、
呪文の名前と機能を使い方をQで私にダイレクトに送るのは、
今後はできれば、ご遠慮いただけますと幸いでございますです。
見ちゃうと、目がつぶれますです。えぇえぇ。

で、お送りいただいた復帰の呪文については、
練習を兼ねて私のほうで組み込んでみますです、、、。むぎゅー。
0282root▲ ★垢版NGNG
>>273 のスレスト再開を、

> $errmsg = &SureAgain($ita, $key);

から、

$errmsg = &SureRestart($ita, $key);

に、変えた。
0283root▲ ★垢版NGNG
田吾作 ★ さんへ

芋掘りの芋は既に live22xN の所定の位置に配置されるようになっていますので、
芋掘り機を live22xN に入れていただければ、芋堀りは可能なはずです。

芋掘り機を入れる場合、live22xN (N=1,2,3) の全てに同じものを入れてくださいです。

なお、ファイルはゆっくり同期していますので、書き込みから最大5分程度、
芋ができるのに遅延がありますです。
0284root▲ ★垢版NGNG
ゴミ箱送りが、うまく動かないようです。

%./bbsd-test.pl
No such file or directory

たぶん、live22xtr じゃなくて live22tr だからか。
0285root▲ ★垢版NGNG
>>283
芋はバックエンドで掘るようにしてもらえるようです。
(コピーが減って、少し楽になる)
0286root▲ ★垢版NGNG
さて、ひととおり共通APIを書いたんで、

・スレスト
・復帰

の呪文を、とりあえずごにょってみるです。
0288◆cZfSunOs.U 垢版2005/12/15(木) 00:17:30ID:p57+vtBb0
>>273- 乙です.動き出したようですね<呪文対応

BBS_DELETE_NAME ですが,「あぼーん」と違う設定の板があるとか,
この項目を将来的に SETTING.TXT から廃止する予定があるとか,
そういうことがあればその部分の処理を変えた方がいいのかも知れませんが,
どうなんでしょうか.

レス削除の $range は,例えば

-4,8-13,18,20-24,26,29-

のように柔軟な指定が可能になってます."-4" は "1-4" と等価で,
"29-" は例えば最終レス番が 40 なら "29-40" と等価です.

26,29-,20-24,8-13,18,-4  (順不同な指定)
-4,8-13,11,18,20-24,22-23,26,29-  (重複するレス番がある)

というような指定であっても問題ありません.
ただ,"24-20" のように - の後ろの数値が小さい指定や,
最終レス番が 40 のスレで "38-41" のように範囲外の数値を
指定するとエラーになります.

スレのファイル自体削除は,dat そのものを削除しますので,復活はできません.
ゴミ箱送りが機能しないのは,やはりホスト名の問題ですね.フロントも live22 という
名前ならゴミ箱の名前が live22tr になりますが,現状だと live22xtr にしてしまうので.
とりあえずスレ移動で代用するのがいいのかな......
0289root▲ ★垢版NGNG
>>288
> BBS_DELETE_NAME ですが,「あぼーん」と違う設定の板があるとか,
> この項目を将来的に SETTING.TXT から廃止する予定があるとか,
> そういうことがあればその部分の処理を変えた方がいいのかも知れませんが,
> どうなんでしょうか.

私は、今の仕様でいいかなと思っているです。
削除人の方々は、どうなのかしら。

> レス削除の $range は,例えば
> -4,8-13,18,20-24,26,29-
> のように柔軟な指定が可能になってます."-4" は "1-4" と等価で,
> "29-" は例えば最終レス番が 40 なら "29-40" と等価です.
> 26,29-,20-24,8-13,18,-4  (順不同な指定)
> -4,8-13,11,18,20-24,22-23,26,29-  (重複するレス番がある)
> というような指定であっても問題ありません.
> ただ,"24-20" のように - の後ろの数値が小さい指定や,
> 最終レス番が 40 のスレで "38-41" のように範囲外の数値を
> 指定するとエラーになります.

おー、すごいですね。
であれば、API仕様(ここに書く予定)の変数を、rangeにしてこよう。

> スレのファイル自体削除は,dat そのものを削除しますので,復活はできません.

やはりそうですか。
呪文のほうでは、実はファイルを移動しているのかな。

> ゴミ箱送りが機能しないのは,やはりホスト名の問題ですね.フロントも live22 という
> 名前ならゴミ箱の名前が live22tr になりますが,現状だと live22xtr にしてしまうので.
> とりあえずスレ移動で代用するのがいいのかな......

そうなるですね。
で、そもそもlive22はメモリディスク仕様だったりして、
live22trはメモリディスク上になかったりするので、
そのままではEXDEVか何かになるかもしれんです。
0290◆cZfSunOs.U 垢版2005/12/15(木) 00:46:34ID:p57+vtBb0
>>289
>> スレのファイル自体削除は,dat そのものを削除しますので,復活はできません.
>やはりそうですか。
>呪文のほうでは、実はファイルを移動しているのかな。

従来のスレ削除ではどうなってるのか知りたいですね>ご存じの方

>で、そもそもlive22はメモリディスク仕様だったりして、
>live22trはメモリディスク上になかったりするので、
>そのままではEXDEVか何かになるかもしれんです。

*.dat は別ファイルを作成した上で内容転送,*.html は単純な rename() になってます.
移動先では一番下に追加ということで,index.html に表示されないぐらい下なら *.html が
なくてもとりあえず平気でしょうけど,そうじゃない場合にどうかってところですか......
0291root▲ ★垢版NGNG
>>290
なるほどです。

パラノイアにやるならhtml/htmlを作り直すんでしょうけど、
たぶんそこまでやらなくても、いいような気がするです。
0292root▲ ★垢版NGNG
復帰・sage復帰の呪文も、対応できたと思います。

今後、対応ができた呪文は、live22xに対して唱えてくださいです。
0293root▲ ★垢版NGNG
で、今後の方針ですが、、、。

各パーツを完成させて、実行するためのAPIの仕様をここに公開しようと思うです。

で、対応のさせ方を全部書いたうえで、
あとは、呪文のおもりをされている方に、個別に対応していただこうかなと。
たぶん、それが一番問題が少ないと思うです。

で、もし対応される方が既にいない呪文、というのがあった場合は、、、。
その時は、みんなで困りましょうと。
0294どくどくさぼてん垢版2005/12/15(木) 02:58:03ID:yD6lgmp/0
>>289
> BBS_DELETE_NAME ですが,「あぼーん」と違う設定の板があるとか,
> この項目を将来的に SETTING.TXT から廃止する予定があるとか,
> そういうことがあればその部分の処理を変えた方がいいのかも知れませんが,
> どうなんでしょうか.

これって、SETTING.TXTで多い設定は「あぼーん」と「あぼーん!」の2種類っすね。
たまにこれとちがって空文字列やら「おぼーん」やら「半漁人さん」という
設定になっている板があります。もちろん実際にはそうはなりませんが。。

で、最近、レス削除の時に、「あぼーん」のかわりに「うふーん」やら、
スレストのときに「スレは止めても愛は止まらない!」とか書いてあるときがあるけど、
あれってどうなっとるんやろなぁ。。
0295root▲ ★垢版NGNG
>>294 最終段落

何か、新しい呪文だと思うです。
このへんのメッセージを変えるAPIは、、、別途考えようっと。
0296root▲ ★垢版NGNG
てゆうか、「あぼーん」を変えるのは、ちょっと今の仕様だと難しいかもですね。
「愛は止まらない」にするとかはSunOSさん提供のAPIで、できるですが。
0297◆cZfSunOs.U 垢版2005/12/15(木) 06:21:54ID:p57+vtBb0
>>294-296 なるほど.となると......レス通常削除用 API に引数追加して
「あぼーん」に相当する文字列を CGI 側から指定してもらうとかするのがいいんですかね.
0299root▲ ★垢版NGNG
どの呪文もこの2つを相当使っているようなので、
以下の共通APIを準備することにした。

@dat = &GetDatFromBackend($ita, $key);

@sub = &GetSubjectFromBackend($ita);

で、共通判定部分を準備した。

if (&IsSnowmanServer) {
雪だるま;
} else {
通常;
}

のように使用可能。

昨日仮対応した呪文も、追ってこれに書き換えよう。
0300root▲ ★垢版NGNG
> 昨日仮対応した呪文も、追ってこれに書き換えよう。
完了。

対応例:

# 雪だるまサーバ対応 -- 12/15/2005 by む
if (&IsSnowmanServer) {
@dat = &GetDatFromBackend($FORM{'bbs'}, $FORM{'key'});
} else {
open(DAT,"<$ondat");
@dat = <DAT>;
close(DAT);
}
0301root▲ ★垢版2005/12/15(木) 14:12:59ID:???0
で、追加でひとつお願いです。

スレッド削除は、ファイルの実体を移動することで実装している、
という情報がありました(ごくたまに、誤削除されたものを戻している人がいます)。

ということで、bbsdに以下のAPIの追加をお願いできますでしょうか。

処理名: datの移動処理(スレッド削除に相当)
動作: 板$bbsのキー$keyのdatを、指定したパス名で移動(保管)する

- 入力: $bbs, $key, パス名
- パス名はpublic_html/testからの相対パス
- datがある場所と移動先は同じパーティションにあるとは限らない

よろしくおながいいたしますです。
0302動け動けウゴウゴ2ちゃんねる垢版2005/12/15(木) 15:19:44ID:i6WLaNGa0
あぼーん<>あぼーん<>あぼーん<>あぼーん<>あぼーん
ぬるぽ<>ぬるぽ<>ぬるぽ<>ぬるぽ<>ぬるぽ
停止しました。。。<>停止<>停止<>真・スレッドストッパー。。。( ̄ー ̄)ニヤリッ<>停止したよ。
停止しました。<>停止<>停止<> 停止いたしますわ。ごきげんよう。 <>停止したよ?

こういうのを見るとfrontから一行分指定できたほうがよさそう。
0307◆cZfSunOs.U 垢版2005/12/15(木) 23:20:11ID:p57+vtBb0
レスの通常あぼーん:
        my $errmsg = bbsd($bbs, "delete:$key", $range, $deletename, "$logfilename:$logline");
        # 引数追加で $deletename に「あぼーん」などの文字列を指定.
スレッド削除($path へ移動; EXDEV 対策済み):
        my $errmsg = bbsd($bbs, "delete:$key", '*', $path, "$logfilename:$logline");
        # ゴミ箱逝きには move を使ってもらって,お役ご免になりそうなスレ用 delete をこの仕様に変更.

以上実装しますた.
0308root▲ ★垢版2005/12/16(金) 00:22:47ID:???0
>>307
はや。おつです。

落ち着いたら、bbsdの入れ替え & APIへの組み込みをば。
0312どくどくさぼてん垢版2005/12/16(金) 04:47:26ID:JHq6W4mI0
そういえば、スレストの処理が微妙に従来と違うような。
いままでは、24レスのスレがスレストされたら、subject.txtには(24)って表示だったはずなのに、
>>310のスレは(25)って表示になってるですね。

あと、移転された場合も、従来は、レス数表示は移転された時点のレス数のまま、
スレタイも「移転しました。。。」ではなく移転される前のままだったけど、
移転しました。。。 (1)ってなってるように見えるです。
(通常復帰があった場合は確かにそうなるし、これは完全には確認はできてないですが、、)
0313◆cZfSunOs.U 垢版2005/12/16(金) 07:13:38ID:LKeZJ6l30
>>311 乙です.ただ......細かい bugfix をしましたので,お手数ですが再度更新お願いします<bbsd

>##############################################################################
># スレをsubject.txt/subback.htmlから消去(dat落ち処理とかで)
># 入力: 板名、キー
>##############################################################################
>$errmsg = &PurgeSubject($ita, $key);

こういう形になってるとわかりやすそうですね.で,bbsd の purge コマンドの引数は
$keys となってるのがミソでして,もちろん単一のスレキーでもいいんですが,
複数のスレキーを ',' で区切って列挙しても Ok になってます.


>>312 それはですね......bbsd では,内部で保持している subject データが
dat の状態を正しく反映しているという前提で各種処理を行っているので,
dat の実際の状態と乖離したままにしておくと弊害が出かねないため
そのようにしています.また,dat の状態を正しく反映するためのオーバヘッドも
bbs.cgi に比べるとずっと小さくなっているということもあります.
0314動け動けウゴウゴ2ちゃんねる垢版2005/12/16(金) 09:06:58ID:TDi7DV+U0
しつもん
誤爆レス削除の復旧も、お願いすれば出来たんですけど。
スレ削除と同じで。
レス削除・透明削除でも
どこかに削除前のdatは持っててくれてるのかしら。
0315root▲ ★垢版2005/12/16(金) 11:07:37ID:???0
>>313
更新したです。
で、purgeは複数指定できるですか。さすが。

>>314
なるほどです。
たぶん、呪文内で保存しているんだと思います。
保存の仕方により、bbsdやその上の部分(私が今組んでいる)のAPIで
フォローする必要があるかどうかが決まるのかな。
そのへん、どうなんですかね。> 知っている方

# 削除系は、技術情報がちと。
0316root▲ ★垢版2005/12/16(金) 11:15:31ID:???0
>>315
で、そういうことであればスレ削除と同じで、残す機構を用意すればよさげですね。
対象はレス削除と透明削除ですか。

で、>>307 にも言えるのですが、既に移動先に同じ名前のファイルがあったら、
どのようなことになるのかしら(EEXISTとかかな)。
0318root▲ ★垢版NGNG
live22xではなく、live22に対して実行することになる呪文:

相当する呪文があるかどうかではなく、そういう機能を持った呪文ということで。

・SETTING.TXTをいじる呪文
・1000.txtをいじる呪文
・過去ログ削除の呪文
・強制dat落ちの呪文(手動むぎゅ)
・強制倉庫送りの呪文(★漏れとかの時に使用しているもの) → 動作確認済み by 私
・キャップを操作する呪文 → 動作確認済み by anglerさん
・削除(退避)したものを復活させる呪文
・dat落ちしたものを復活させる呪文
・芋掘り機 → おじさんから既に宣言あり
0319root▲ ★垢版NGNG
で、たぶんですが、

・SETTING.TXTをいじる呪文

は、私の知っているものについてはlive22xで起動かけたら、
「この呪文はバックエンドサーバで実行してください」
っていうのを表示するCGIを、仕込んでおくかんじで。
0320◆cZfSunOs.U 垢版2005/12/16(金) 21:41:11ID:LKeZJ6l30
>>316
>で、>>307 にも言えるのですが、既に移動先に同じ名前のファイルがあったら、
>どのようなことになるのかしら(EEXISTとかかな)。

現状では単なる rename() のエミュレーション,つまり上書きになります.
EEXIST になるようにした方がいいですかね.


で,レスあぼーんでもデータ退避ですか......あぼーんの度に dat 全体を
保存していると HDD を食い潰していきそうなんで差分で保存した方が
合理的だと思いますが,そうなるとどのようなフォーマットで保存すべきかとか,
あと退避したデータからロールバックする際に,直近のデータから復元するのは
問題ないでしょうけど,何世代も前のデータから復元する際に途中に透明あぼーんが
あるとそのままではずれてしまうでしょうし......そのあたり従来のあぼーん呪文では
どうしてるんでしょうね.

また,bbsd 以外のプロセスが dat を操作することに関してですが,例えば dat 落ちの
ようにファイル自体を rename() や unlink() するのは比較的安全だと思いますが,
dat の中身を書き換えるような操作には脆い面もあります.どのような操作かにも
依存しますが,レス追記とバッティングすると追記されたレスが消失するかもとか,
*.html 生成時には対応する dat を mmap() しますので,生成される HTML が崩れるとか
最悪の場合地雷 (SIGSEGV / SIGBUS) を踏むとかいった可能性もあるので......
となると,レスあぼーんのロールバックは bbsd 側で I/F を用意した方が
良さそうにも思いますが,従来の呪文でどのような処理をしているかがわからないと
なかなか具体的に作りづらいという面もあります......
0321root▲ ★垢版NGNG
>>320
> 現状では単なる rename() のエミュレーション,つまり上書きになります.
> EEXIST になるようにした方がいいですかね.

そうしていただけると助かります。

> そのあたり従来のあぼーん呪文では
> どうしてるんでしょうね.

いつだったかに管理人とおじさんに聞いた話を思い出しつつあるのですが、
確か「レス削除系でも、毎回全部dat全体を保存している」ということらしいです。
で、ファイルがあるかどうか調べて、
あったら何らかの規則で(見てませんが、例えば.0とか.1とか)、
保存しているんではないでしょうか。

「削除」という行為の、2ちゃんねるにおける「重み」を考えると、
そのぐらいはしているような、気がしますです。

で、管理人がそういった形でのデータの「あふれ」を気にするはずもなく、
おじさんが静脈系のプログラム(F22ともいう)を作って、
定期的に後始末をしていると、ぼやいていたのを聞いたことがあります。
0322root▲ ★垢版NGNG
>>320
>また,bbsd 以外のプロセスが dat を操作することに関してですが,例えば dat 落ちの
>ようにファイル自体を rename() や unlink() するのは比較的安全だと思いますが,
>dat の中身を書き換えるような操作には脆い面もあります.

私も、そう思っているです。
なので、特にレス削除系は、基本的にフロントからbbsd経由で
統一的に操作するようにしたいところです。

>となると,レスあぼーんのロールバックは bbsd 側で I/F を用意した方が
>良さそうにも思いますが,従来の呪文でどのような処理をしているかがわからないと
>なかなか具体的に作りづらいという面もあります......

確かに、そのとおりですね。
ロールバックも基本的に呪文でやっているはずなので(違うかもですが)、
これもフロントでやるようにしたほうが、いいかもです。

あるいはもし呪文でやってなかったなら、
そのための「復活の呪文」を新たに作って、それをぢぇんぬさんに配布してもらうかんじか。


# やっぱり、もう1段階覚悟を決めて、
# 標準セットの呪文を教えてもらって、読んでみるしかないのかなぁ、、、。
0323ヒント垢版2005/12/16(金) 22:47:04ID:uVe7rRDa0
$key = スレキー;
$nowtime = UNIXたいむ;
ログ保存($key$nowtime);

一度削除系CGIの仕様を詳しく聞いた方が・・・。
俺の口からはいえない。
0324root▲ ★垢版NGNG
>>323
なるほど。
どこのどなたかは存じませんが、ありがとうございます。

同一秒の間に同じスレへの削除が起こらなければ、いけるようになっていると。
で、そうやっているってことは、
昔のbbs.cgiのスレ立て重複防止装置のところを書いた人と
仮に同じ人が書いているとすれば、
$newtimeを+1して、、、ってのを、大丈夫になるまで繰り返しているんでしょうね。

ぢぇんぬさんに、相談してみるです。
0325動け動けウゴウゴ2ちゃんねる垢版2005/12/17(土) 00:16:20ID:J/BRnm1c0
呪文だけ教わっても、アカウントがなければ作業は出来ないから
作業を押し付けられることはないと思うんですが(ぼそ)

削除ログのcgiをいじられる上で気になるのは、
書き込みログとの整合性をどこかで取ってる筈なので、
そちら(IP・リモホ)の消しすぎや漏れが出ないかどうか、です。。
0326root▲ ★垢版NGNG
ご相談のメールを、ぢぇんぬさんと管理人に発射したです。
0327root▲ ★垢版NGNG
>>325
第一段落:
某ホテルで「(アカウントは)いつでも作るですよ」って管理人に言われて、
ものすごい勢いで、首を横に振った私がいるです。

第二段落:
そうですね。
書き込みログはバックエンドにしかないので、そのへんも問題になる可能性ありか。
まずは「ご相談」のお返事を見てから、次の行動をってかんじで。
0328動け動けウゴウゴ2ちゃんねる垢版2005/12/17(土) 00:49:20ID:J/BRnm1c0
うはw 予想通り>「いつでも」&「ものい勢いで」

あとは「削除の呪文を唱えた人のログ」もあるはずなので
そちらの方の記録もできるかってことですかね。

いろいろお疲れ様です。宜しくお願いします。
0331root▲ ★垢版NGNG
>>328
>あとは「削除の呪文を唱えた人のログ」もあるはずなので
>そちらの方の記録もできるかってことですかね。

そっちは、bbsdのほうで対応するためのI/Fが用意されているです。
0332◆cZfSunOs.U 垢版2005/12/17(土) 01:57:30ID:M1QED0Kk0
スレ削除(退避)時に同一パス名が存在した場合に EEXIST にするのは対応完了です.
あぼーん/ロールバック関連については,もうちょっと様子見で......
0333root▲ ★垢版NGNG
>>332
おつです。入れ替えてきます。

> あぼーん/ロールバック関連については,もうちょっと様子見で......

こちらも了解。
0334root▲ ★垢版NGNG
>>333
完了です。

- || (fd_new = open(new, O_WRONLY|O_CREAT|O_TRUNC, 0644)) == -1
+ || (fd_new = open(new, O_WRONLY|O_CREAT|O_EXCL, 0644)) == -1

なるほど。

# bbsd.cをちびちびと読み始めようかと思っていたりするんですが、
# なにぶん、中身がすごくて(いい意味です)。
# 何というか、コメントではなく、中身をもって語らしめよ、みたいな。
0335◆cZfSunOs.U 垢版2005/12/17(土) 02:26:32ID:M1QED0Kk0
>>334 確かにコメントがほとんどないのは不親切かも......w
とにかくがーっと書いててコメントまで気が回らなかったんですが,
bbsd.c のおもりをどなたかに委ねるとかいうことになったら,
わかりやすいようにしなきゃですね.
0336root▲ ★垢版NGNG
>>335
> bbsd.c のおもりをどなたかに委ねるとかいうことになったら,
> わかりやすいようにしなきゃですね.

どきどき。
面白いと感じていただける間は、ぜひお願いしますです。
私も、面白いと感じていられる間は、やりますです。

で、bbs.cgi は「おじさんや私じゃなくても大丈夫な状態にする」ことが目的だったので、
もうしつこいぐらい、コメントにつぐコメントだらけになっているです。

%wc -l bbs-main.cgi
4569 bbs-main.cgi
%grep # bbs-main.cgi | wc -l
1193
0337◆cZfSunOs.U 垢版2005/12/17(土) 02:40:21ID:M1QED0Kk0
>>336 まぁ,よほどのことがなければ自分の側から投げ出すってことはないと思うんで.
もっとも,天変地異はいつ起こるかわからないとか,そういうレベルの話だと神のみぞ知る,ってところですが.
0338root▲ ★垢版NGNG
>>337
それは、お互い様すね。
今日はたぶんここはこのぐらいで、たぶん、また明日以降に。

# さっきのメールの返事、管理人からはいつもどおりの「おつです。おつです。」、、、。
0339◆cZfSunOs.U 垢版2005/12/17(土) 02:53:29ID:M1QED0Kk0
>>338 乙でした.ではまた明日以降にでも.

># さっきのメールの返事、管理人からは(ry

(w
0341 ◆TWARamEjuA 垢版NGNG
4500 行かぁ・・・
大分類して、requireとかuseにするという手もあるのかな。
0342root▲ ★垢版NGNG
>>341
これはこないだの某ホテルでも、話題になったすね。
そろそろ、やる時期かも。
0343root▲ ★垢版NGNG
ぢぇんぬさんから、>>324 のお返事をいただきました。

ということで、ぼちぼち、すすめていこうかなと。
0344サザン ★垢版2005/12/20(火) 21:06:50ID:???0
呼ばれて飛び出て(ry

こら、そこ。
冬休みとか言わないように。
0351削ジェンヌ ★垢版2005/12/21(水) 10:45:11ID:???0
>>343
乙です、超乙です。鬼乙です。
なんかあったら電波飛ばしてくださいですー。
私のほうでも出来るだけここ覗くようにしますです。
0352root▲ ★垢版NGNG
>>344
でたなー。

>>347
どもです。ハードな作業いつもおつです。

で、メールでのお返事をここでしてしまったりしますが、
このスレはoperateの中でもハードコアなほうらしいので、
スレの技術的な内容が仮にアレだったとしても、
あんまり気にすることはないと思うです。

ようは、できるだけこれまで通りに、
場合によってはこれまでより効率よく安全に使えるといいなという、
単にそれだけのことです。

今後、作業を徐々にすすめていくことになると思いますので、
呪文を使う上で何か不具合があったとか、妙なことが起きたとか、
これまではこうやってたけどこういうことができるといいなとか、
そういうことがあれば、忌憚なくここに書いていただけると。

# それらに対応できるかどうかは、別の問題とゆうことでひとつ。
0353動け動けウゴウゴ2ちゃんねる垢版2005/12/21(水) 13:26:55ID:E5Vz1g/Y0
> このスレはoperateの中でもハードコアなほうらしいので、

一番ハードコアですよ、ここ
perlの追っかけなど、技術動向に強い人じゃないとついてけない
0356動け動けウゴウゴ2ちゃんねる垢版2005/12/21(水) 18:32:56ID:gXevBIKt0
いや、あのアンカーはあっている(ということにしよう)
0359◆cZfSunOs.U 垢版2005/12/22(木) 06:21:25ID:Ht4ddCf/0
呪文の中の人登場で,対応も進むのかな......
0360root▲ ★垢版NGNG
さて、ここもぼちぼち動かそうかなと思います。
本格対応は、お雑煮食べながらという感じになりそうな予感ですが。

で、やはりどうも必要になりそうなので、
とりあえず汎用のファイルコピー用APIを、bbsd側で作っていただけるとありがたいです。

パス1 を パス2 に単純にコピー、
パス2が既に存在したら EEXIST エラー、といった感じで。
0361◆cZfSunOs.U 垢版2005/12/25(日) 01:44:36ID:kC90C2xX0
>>360 そうですね.ロールバック対応が完了すれば,呪文も一通り対応完了でしょうし.

>とりあえず汎用のファイルコピー用APIを、bbsd側で作っていただけるとありがたいです。
>パス1 を パス2 に単純にコピー、
>パス2が既に存在したら EEXIST エラー、といった感じで。

了解です.
0362◆cZfSunOs.U 垢版2005/12/25(日) 02:34:01ID:kC90C2xX0
ファイルコピー:
my $errmsg = bbsd($srcpath, 'cp', $dstpath, "$logfilename:$logline");

実装しますた.
0363root▲ ★垢版NGNG
>>362
おつです、おつです。

今何か超速い番組やってるんで、
入れ替えは、のちほど。

# 元気に動いて、実況を支え続けているです。はい。
0364root▲ ★垢版NGNG
bbsd 更新したです。

これでひととおりのAPIがそろった気がするので、
こちらも、ぼちぼちと。
0367root▲ ★垢版NGNG
おふろ入っている間に思いついたので。

Samba24とか、timecount/timecloseとかの
DB管理系だけを、別のbbsdでお守りすることにして、
そのbbsdは、フロントエンドのどれかに持たせるというのはどうかなと。

で、つまり、bbsdのDB管理系部分だけの機能を有効にするような
起動オプションがあると、うれしいのかもなぁと。

ということで、本日はここまでで。
0368root▲ ★垢版NGNG
>>367 の心は、
こういうふうにすれば、バックエンドのbbsdを
少しでも軽くできるんじゃないかなぁと、そうゆうことで。
0369root▲ ★垢版NGNG
いずれにせよ面白そうなので、ちと考えてみるです。
というかたぶんここで、例によって。

・野球系・サッカー系を一かたまりにして、効率よく
・www/www2/menuをグレードアップ

あたりが命題で、すぐ使えるのは、

・live16 live18 live20

あたりですか。
0371◆cZfSunOs.U 垢版2005/12/26(月) 13:03:52ID:T39eMwpp0
>>367-368 そういうことであれば,起動オプションを新設するまでもなく
現状の bbsd を普通に立ち上げればいいと思います.
板ディレクトリと SETTING.TXT があって subject.txt がない状態なら,
そのままで DB 管理専用 bbsd として使えるかと.
DB 管理系 API を呼び出すだけなら,subject や dat の操作は一切行いませんし.
0372root▲ ★垢版NGNG
>>371
おぉ、すばらしいです。

あとで、やってみるです。
これで、規制系DBをフロント(というか別サーバ)にもっていけると。
0373root▲ ★垢版NGNG
対応したです。
これで、live22のbbsdからこれらの仕事を分離できたと。

560 名前: ◆MUMUMUhnYI [sage] 投稿日:2005/12/27(火) 04:23:13 ID:hh69QxeR0 ?
# 051227 bbsd複数体制(書き込み・IDの種用とDB保持用)に対応
# Samba24、●スレ立て、timecount/timecloseのDBのおもりを別サーバで
# これらに関してはbbsdがダウンしていてもとりあえず書き込みは可能に by む
0374root▲ ★垢版NGNG
>>373 により、Samba24のデータをlive22x1のbbsdで面倒見るようになったので、
例の数値が出るサーバが、live22x1に変更になったです。>どくどくさぼてんさん
0375root▲ ★垢版NGNG
今後の作業をすすめていく場所ができました。

荒らすか(仮)@2ch掲示板
http://snow.2ch.net/alaska/

ローカル雪だるまで動いています。
各種呪文等は、今後ここでごにょごにょと対応を進めていくことになるのかなと。
0376動け動けウゴウゴ2ちゃんねる垢版2005/12/28(水) 11:55:43ID:euSEZST20
>>375
削除の呪文を唱えるのに、かなり手間取るようなのですが
せめて板名を変えてもらえませんか?

現状の板名では
荒らし依頼や電番・サイト攻撃などの書き込みが集まる悪寒がします。

運営の人には面白い駄洒落なのかもしれませんが
荒らし公認ととられかねない板名は、やめて欲しいです。
0377root▲ ★垢版2005/12/28(水) 12:22:58ID:???0
>>376
> 削除の呪文を唱えるのに、かなり手間取るようなのですが

そうなんですか。

snowは「ローカル雪だるま」(= datそのものはsnowサーバに普通に存在)なので、
スレ削除とかスレ移動等の後に復帰の呪文が追加で必要になりますが、
呪文自体が「かなり手間取る(例えばlive22x => live22にしないと効かない)」ことは、
ないと思うです。

板名ですが、おじさん流の洒落すね。
私は正直あんまり気にしてないですが、ちょっとびっくりしたです。
(フォルダ名alaskaをお願いしたのは私ですが、その洒落は私は全く思いつかなかった)
0378root▲ ★垢版NGNG
>>377 に自己突っ込み

で、もし仮に「かなり手間取る」が「別途復帰の呪文が必要」のことだとしたら、
それは「このとおりです鋭意なんとかします今は許してください」しかないです。
ごめんなさい。

ドウモスミマセン、コノトオリデスのAA↓
0381root▲ ★垢版NGNG
そういう話ですか。>>379-380

SETTING.TXTを変えるのは私でもさっくりやれますが(板名にこだわりないし)、
kakolog.html とか kako/ とかは、どうすればいいのかな。
0383動け動けウゴウゴ2ちゃんねる垢版2005/12/28(水) 14:01:17ID:rSzl2nrU0
隠し板扱いだし、そもそも書き込み自体があんまりないような気がする。
そんなに気にしなくてもいいんじゃないの?
0386削除車 ★垢版2006/01/01(日) 01:57:49ID:???0
>◆cZfSunOs.さん&rootさん、関係各位

本年もよろしくお願いします。

live22xのsage復帰ですが、一度で上手くいかずに何度か呪文を唱える事になりました。
呪文を唱えるたびに、42→36→34→33のようにsubjectのスレッド数が変化しました。
(上手くいっていれば一度で42→33になるはずです)

何らかの問題が潜んでいるのか、今回だけなのかわかりませんが、とりあえずご報告します。
またlive22x復帰する機会があったら、挙動をよく見ておきます。

http://qb5.2ch.net/test/read.cgi/operate/1127134565/686-688

よろしくお願いします。
0387◆cZfSunOs.U 垢版2006/01/01(日) 12:27:59ID:Fb5q0Gdx0
>>386 こちらこそよろしくお願いします.

で,ご報告ありがとうございました.う〜む......sage 復帰でスレが subject から消される条件は

    if (stat(*worker->paths, &st) && errno == ENOENT)

つまり dat ファイルへの stat() が失敗しかつ errno が ENOENT な場合ということなので,
何らかの原因で ENOENT 以外だったんでしょうか.いずれにせよこのあたり要観察ですかね.
# 番外編として,本来マルチスレッド環境で MT-Safe であるべき errno に虫がいるかも
# ってのもあり得なくはないのかも......
0388◆cZfSunOs.U 垢版2006/01/03(火) 11:57:56ID:wRrC+tnj0
>>386-387 について......「要観察」といっても,現状だと ENOENT 以外が発生しても
何が起きたか見当もつかないんですよね.ということで,ENOENT 以外が発生したら
エラーリターンになる($errmsg にメッセージを返す)ようにしますた.
0389root▲ ★垢版NGNG
>>388
お、年始早々bbsdの更新ですか。

やっておくです。
APIのほうでも、ちゃんとエラーチェックしないといかんということですね。
0391root▲ ★垢版NGNG
APIのほうは、帰京後にぼちぼちとってかんじで。
0392◆cZfSunOs.U 垢版2006/01/03(火) 22:58:06ID:wRrC+tnj0
>>389-391 乙です.まぁ $errmsg をそのまま表示でいいんじゃないかと思います.
どちらにせよ現状では何が起きたのかもわからないので,それ以外やりようがないでしょうし.
0393動け動けウゴウゴ2ちゃんねる垢版2006/01/13(金) 19:02:54ID:vOKkES0Z0
datのレス数とsubject.txtのレス数が違っていた場合に、スレに
書き込んだ時の、subject.txtのレス数の処理はどうなっていますか。

通常のbbs.cgiでは、subject.txtのレス数に関わり無く、書き込む度に
datからレス数を数え、その数をsubject.txtに書き込んでいた為、
subject.txtのレス数が異常でも、そのスレに書き込めば直ったのですが。

というか、これ。
http://live22x.2ch.net/test/read.cgi/eq/1136722083/
subject.txtのレス数がdatより1多い状態になっているのですが、
スレに書き込んでも、subject.txtのレス数がそのまま+1されるだけの
ようで、はて、どうしたものかと。

通常の板復帰では、subject.txtに載っているスレは、レス数を数えて
直してはくれないはずですし。
古い完全復帰なら直してくれた気はするけど、どうだったかな。
0394◆cZfSunOs.U 垢版2006/01/13(金) 21:39:42ID:lLbB53de0
>>393 う〜む......datがおかしくなった原因は不明ですが......

# 透明あぼーんがあったとか? bbsd を経由しない形で dat の内容が
# 変更されるようなことがあれば bbsd 的には想定外の事態ではあるんですが......

復帰(bbsd の repair コマンド)を実行すればカウントし直します.
0398動け動けウゴウゴ2ちゃんねる垢版2006/03/01(水) 00:35:58ID:U9QeNy7cO
管理人の方々お疲れ様でつ。

今から工房の携帯から妄想がたれ込みますが脳内阿保ーんお願いします。(じゃあ書くのやめれとか言わんでくれ
)
どっかにスレ情報書き込んであるデータ生成すれば板設定変更出来るlocal.info作って見たり。
なかったらデフォルト呼び出し。

アクセス権に色々背負わせてみるのも面白いかもグループとかは使わない?から[0-7]でそれぞれにスレスト・1000越え・512K制限・普通・隠し・ゴミ箱行き・移動とか?
そうするとゴミ行きが分かり安いかな?

呪文唱えるときはbashでまとめたいなぁ。

#タイムアウトを
#
##タイム
##アウト
##ヨヨイノ
##
##
##ブーン(AAry
#
#にして欲しい。みたことないけどw
0399root▲ ★垢版2006/04/12(水) 12:01:14ID:???0
【焼きもち】自治スレ
http://live22x.2ch.net/test/read.cgi/news/1144769649/333

333 名前:FOX ★[sage] 投稿日:2006/04/12(水) 05:16:29.51 ID:???0
しかし
live22 は特殊なので使われていないキャップあぶり出し機能が動いていないことに
気がついている

なるほど。

bbsd で touch する I/F は前に作ってもらったので、技術的にはできるはず。
0401root▲ ★垢版NGNG
>>399
汎用 touch ルーチン(スレッド924用)を流用することで、対応できました。
これで、plus 系もやろうと思えば雪だるまにできるはず。
0403ベースボール垢版2006/06/27(火) 21:31:46ID:8rvCdbfh0
>>401
お前は死刑だ 不倫関係があったのでこれより死刑に処する
0407動け動けウゴウゴ2ちゃんねる垢版2006/08/07(月) 23:33:59ID:bU6gYJaH0
アリの巣コロリってあるじゃん
蟻の行列にポンと置くと一瞬ビックリして列が乱れる
邪魔だなと言わんばかりに迂回する列が出来る
そのうち好奇心旺盛な一匹がアリの巣コロリに入る
そいつをマネして何匹も入る
毒とも知らずにツブツブを運び出す
一匹が一粒づつ
いつのまにか行列はアリの巣コロリが折り返し地点になる
黄色い粒と黒い蟻が作り出す模様は綺麗で見てて楽しい
一匹が一粒づつ丁寧にせっせと毒の粒を運ぶ
せっせとせっせとせっせとせっせと
蟻さんって働き者だなと思う
俺も頑張らなきゃなと思う
次の日あれほど沢山いて俺を困らせた蟻が一匹もいない
ほんとにいない
探してもいない
泣きたくなった


このレスを見た人は4日後にあなたの大切な人がいなくなるでしょう
それが嫌ならこのレスを5つの板にコピペしてください
信じるか信じないかはあなた次第です
0412削ジェンヌ▲ ★垢版2006/08/24(木) 16:03:17ID:???0
ごっ
ごめんなさいっ

雪だるまスレってここじゃなかったのか。。。
0413root▲ ★垢版2006/08/24(木) 16:44:01ID:???0?PLT(15700)
>>412
ごめんなさいです。
nanmin のいつもだらだらと過ごしている例のスレのつもりでした。

# 落ち着いたら、このスレも動かしましょうってかんじで。
0415ひろゆき@どうやら管理人 ★垢版2007/01/04(木) 19:38:09ID:???0?S★(102333)
mod_cacheとmod_proxyを併用してる場合のキャッシュのヒット率って
どこを見るとわかるんでしょうか、、、
0416 株価【1600】 ▲▲▲▲ ◆cZfSunOs.U 垢版2007/01/05(金) 00:10:58ID:tB3xz27F0
>>415 mod_cache にはヒット率を記録する仕組みはなさそうですね.
調べるとすれば,アクセスログで %{Age}o つまり Age レスポンスヘッダを記録して,
Age ヘッダの有無の比率から算出するとかかなぁ......
0417ひろゆき@どうやら管理人 ★垢版2007/01/05(金) 01:50:15ID:???0?S★(102334)
おぉ、、ログにそんな設定ができるんですか、
どもです。どもです。
0420 株価【1150】◆cZfSunOs.U 垢版2007/02/21(水) 06:49:38ID:z6zY2ZIR0
とりあえず,いくつか API 追加・引数変更で......


さるさん:
        my $n = bbsd($bbs, 'chkthrtimecount', $key, $age, $timecount, $timeclose, $id, "$logfilename:$logline");
        # http://qb5.2ch.net/test/read.cgi/operate/1157125151/1
        # の説明でいうところの
        # $age = H (秒), $timecount = N, $timeclose = M
        # 戻り値: 引っかからなかったら 0,引っかかったら非 0
ファイルサイズ取得:
        my $size = bbsd($path, 'getfilesize', "$logfilename:$logline");
板のアンロード:
        my $errmsg = bbsd($bbs, 'unload', "$logfilename:$logline");
        # subject データをフラッシュし,板のデータをメモリ上から解放
        # (板移動時に bbsd を止めなくてもいいように)
指定されたファイルを新たな dat として板に加える:
        my $errmsg = bbsd($bbs, "inject:$key", $path, "$logfilename:$logline");
        # 削除されたデータの復活用

レスの通常あぼーん:
        my $errmsg = bbsd($bbs, "delete:$key", $range, $deletename, $savepath, "$logfilename:$logline");
        # 引数追加; $savepath にあぼーん前の dat を退避
レスの透明あぼーん:
        my $errmsg = bbsd($bbs, "tdelete:$key", $range, $savepath, "$logfilename:$logline");
        # 同上
0422 株価【1050】 △△ ◆cZfSunOs.U 垢版2007/03/02(金) 21:47:39ID:pl9SnUz90
んなわけで,呪文対応もぼちぼちやってこうかなぁ,と思っている今日この頃だったり......

>>421 手の空いてる時にでもおながいします<bbsd 更新
0424 株価【905】 △△ ◆cZfSunOs.U 垢版2007/03/08(木) 23:00:40ID:UC2ma8PH0
一通り対応したつもり......ってことで,とりあえず snow と dso に入れてみますた.
ただ,snow で動いてる bbsd は古いままのようなので,更新してもらうまでは
ちゃんと動かない呪文もあると思います.一方,dso では今は bbsd を使ってませんが,
その状態でもちゃんと動くかどうかの確認のために入れてます.
0425root▲▲ ★垢版2007/03/08(木) 23:07:28ID:???0?PLT(23632)
出張から戻りました。

これから更新作業するです。
対象は、

- live23b
- live24b
- snow
- (news20b)

かな。
0429root▲▲ ★垢版2007/03/08(木) 23:36:39ID:???0?PLT(23632)
おつです。>>424

普通に snow と dso で、
標準の削除系呪文を使って作業いただければいいんですよね。

であれば、ここのスレッドで削除人の方々に呼びかけるのがよさげです。
このスレッドをポイントするといいかも。

☆ 連絡&報告 8 ☆
http://qb5.2ch.net/test/read.cgi/saku/1166164805/
0430root▲▲ ★垢版2007/03/08(木) 23:37:48ID:???0?PLT(23632)
おっと、>>428 ですね。 < アンカー

今日は出張帰りでへろへろなんで、ちと早寝コースで。
# ホテルの部屋の乾燥がひどくて、すっかり喉をやられた、、、。
0431root▲▲ ★垢版2007/03/08(木) 23:40:59ID:???0?PLT(23632)
で、この作業が終わって、標準呪文に組み込まれれば、
雪だるまサーバ(live23/24)で削除系作業をした場合でも、
復帰作業等が不要になるはずと。
0435 株価【1095】 △△ ◆cZfSunOs.U 垢版2007/03/09(金) 00:14:59ID:jn3Jaewt0
>>434 どもども,ご協力ありがとうございます.

>通常どおり起動しますよ。

ということは,その範囲では特に問題はないということかな.ただ,

>削除処理はしてませんけど。

っていうのは,ひょっとして呪文を唱えてもあぼーんされなかったとか......?
0436削除ふぶき ★垢版2007/03/09(金) 00:20:10ID:???0
乙ですー
実際に削除までした方がいいのかな?
動作テスト用、削除用スレとかないとやりにくいのが
まじめな(以下自粛
0437時計坂の削除屋 ★垢版2007/03/09(金) 00:20:37ID:???0
>>435
削除スクリプト通常どおり動いていましたよ。
ただ実際に削除はしなかったです。

テストスレッドとかあれば実際に削除してみますけど。
0438 株価【1095】 △△ ◆cZfSunOs.U 垢版2007/03/09(金) 00:24:20ID:jn3Jaewt0
>>436 >>437 なるほど,そういう意味ですか.

snow, dso はテスト鯖なんで,適当にスレ立てたりレス付けたりして
自作自演あぼーんでもいいのではないかとw ただ,こちらでも
実験用スレ立ててみますかね......
0440 ◆IZUMI162i6 垢版2007/03/09(金) 00:25:46ID:5hSsQfMX0
http://snow.2ch.net/test/read.cgi/alaska/1148818479/75-81
レス削除と透明のテストどぞ。

テスト削除がOKになった裁定があった気がするけど、やはり微妙に抵抗があるなぁ。


スレについてはどうだろう?テスト用のスレとかがしがし立てて良い板なんすかね?
0442 株価【1095】 △△ ◆cZfSunOs.U 垢版2007/03/09(金) 00:29:22ID:jn3Jaewt0
>>438 と思ったら,どなたかがちょうどいい具合にスレ乱立してくれてましたw

まぁ,私自身 dso では最速 1000 みたいな,
他の場でやれば荒らしになるようなこともやってましたけど.

>>441 よろしくw
0443時計坂の削除屋 ★垢版2007/03/09(金) 00:36:08ID:???0
>>440
レス削除 透明削除 完了です。
スレッド移転、スレッド停止、スレッド削除ともアラスカはできました。
0444削除ふぶき ★垢版2007/03/09(金) 00:37:59ID:???0
みなさまおつです。
被りそうなのと、寝坊がこわいので撤収。
お役にたてなくてスマソ。
過去ログスレ呪文のテストが必要だったら、移転跡が落ちてからそれを、がいいかも。
0448 株価【1095】 △△ ◆cZfSunOs.U 垢版2007/03/09(金) 00:47:54ID:jn3Jaewt0
>>443-445 >>447 乙です.一通り無難に動いてるって感じですかね.
1日ぐらい様子見て,特に問題なさそうなら live23, live24 に投入の方向で.

# 乱立してくれた方も乙です.


と思ったら......
>>446 う〜む,そのスレはどういう経緯をたどったんだろう......?
0451 株価【1095】 △△ ◆cZfSunOs.U 垢版2007/03/09(金) 01:14:09ID:jn3Jaewt0
>>449-450 あぁ,そういうことですか(bbsd の誤作動かとヒヤヒヤしてました).
これは,今までの元の呪文でも全レス透明あぼーんは可能なようだったので,
仕様ってことでいいのかな......?
0452動け動けウゴウゴ2ちゃんねる垢版2007/03/09(金) 01:21:17ID:aTlD1QYf0
全レス削除って・・・鷺が賑わうだけってことで
試すにはもってこいだったわけですかw
そんなこと実際にはやらない筈だから放置でいいんじゃないかとw


0455 株価【1100】 △△ ◆cZfSunOs.U 垢版2007/03/09(金) 07:09:52ID:jn3Jaewt0
>>454 bbs.cgi が作る subback.html に最近加えた変更
(表示スタイル切り替えなど)も反映させてますね.



で,live23, live24 では今まで bbsd 未対応の呪文はバックエンドで動かして
フロントからは mod_proxy で渡すという ad hoc な対応をしていましたが,
今回対応した呪文の多くはフロント側で動かしてもらっておkってことになります.
ただ,一部の呪文はローカルマシン上での処理が必要なためバック側で動かしてもらうと
(それでも,subject.txt やライブな dat の操作は bbsd 経由で行います).
このあたりの振り分けについては,live23, live24 への投入時に別途メールででも.
0456 株価【1010】 △△ ◆cZfSunOs.U 垢版2007/03/09(金) 23:08:44ID:jn3Jaewt0
さて......特に問題なさげなので,live23, live24 に bbsd 対応呪文入れますた.
で,>>455 の振り分けの件についてはむむむさんにメールをお送りしますので,
mod_proxy の再設定おながいします.

あと,今回対応した呪文は bbsd 使用/未使用どちらの鯖にも対応してる
ということで,原本にマージしていいのかな(bbs.cgi の原本と同じ鯖かな)?
0457削除ふぶき ★垢版2007/03/10(土) 01:17:36ID:???0
あの、、この件?でむむむさんに、メール送りました。
0458 株価【1145】 △△ ◆cZfSunOs.U 垢版2007/03/10(土) 09:43:26ID:oaQpdUtz0
今回対応した呪文に何らかの動作上の不具合があって,それがここに書くのが
はばかられる内容のことであれば,私の方にもメールを頂けると幸いです.
sunos (at) saita.ma
0461削除ふぶき ★垢版2007/03/10(土) 21:50:27ID:???0
いただきました。ありがとうございました。よろしくお願いします。
0462root▲▲ ★垢版2007/03/10(土) 23:13:58ID:???0?PLT(23632)
>>456
> むむむさんにメールをお送りしますので,
> mod_proxy の再設定おながいします.

を、したつもりです。(お返事もしました)
0464削除ふぶき ★垢版2007/03/10(土) 23:33:49ID:???0
乙です。乙です。
確認です。ありがとうございました。
0465 株価【1050】 △△ ◆cZfSunOs.U 垢版2007/03/11(日) 01:35:59ID:DiueM2R90
bbs.cgi 原本があるのと同じ鯖にも入れますた<bbsd 対応呪文
(今までのやつはホームディレクトリ配下の某所にバックアップしてます).
0467 株価【801】 △△ ◆cZfSunOs.U 垢版2007/04/23(月) 05:26:03ID:lHNIZi540
>>466 ここ数日のはあぼーんによるものじゃないっぽいので,F15 / F22 なんですかねぇ......
とりあえず,F15 / F22 で purge しても差分がまだ残ってるなら,
autopurge してログにも記録するようにしてみましたが,さて......
0468 株価【790】 △△ ◆cZfSunOs.U 垢版2007/05/11(金) 02:35:49ID:Y1P6Q7Wn0
>>466-467 について,なぜそんなことが起こるのだろう?と思いつつ,

F15 / F22 のスクリプトのロジックを検証しても
それが起こる原因が思い当たらないし,Perl のエラーを
ログに記録するようにしてもエラーが起きたという形跡は残ってないし,
ということで不思議でしょうがなかったのだけど,

デフォルトアクションがプログラム終了となるシグナルを
捕捉するようにしたら,やっとしっぽをつかんだ.

2007/05/09 22:39:03 Got signals: TERM, PIPE

どうやら,subject.txt 更新処理に入る前にそういうシグナルを
受け取ると差分が発生しちゃってた,ということっぽい.
で,そのシグナルハンドラを設定するようにしてからは
「差分発生 -> autopurge 発動」ってのは起きてないようなので,
要はそれらのシグナルでプログラム終了にならないようにすればおk,
ということらしい.
0469動け動けウゴウゴ2ちゃんねる垢版2007/05/23(水) 03:20:28ID:aQ/86Eny0
アトポス死ね
0470[es] ◆MUMUMUhnYI 垢版2007/06/19(火) 21:32:42ID:vMj+AKHd0
■ Top700、トワイライト6833作戦。
http://qb5.2ch.net/test/read.cgi/operate/1175843779/97

板名はbbsdが知っているはずなので、
あのファイル.txt に板名をはめ込む何らかのメタ文字列を使えるように、
bbsdを改良すればいいのかしら。
0472[es] ◆MUMUMUhnYI 垢版2007/06/19(火) 22:06:44ID:7eb9XHZT0
まぁ、一般的に広告内でその板名を使う、
なんてことは今後もありそうなので、
入れておいてもきっとバチは当たらないのかなと。
0476root▲▲ ★垢版2007/06/19(火) 23:50:23ID:???0?PLT(74072)
そもそも index.html を Perl で生成していないし。< 雪だるまシステム
0477 株価【820】 △△ ◆cZfSunOs.U 垢版2007/06/19(火) 23:55:15ID:jQcRTVeX0
>>470-473 bbsd を使ってない鯖でも,広告で板名を埋め込むには,
bbs.cgi から「あのファイル.cgi」中の広告用サブルーチンを
呼び出す部分を変えないとできないんじゃないでしたっけ.
なので,bbsd にその機能を入れるとしたら,
bbs.cgi 自体もそういう形で変えることになるのかなぁ......

ちなみに,bbsd を使ってる鯖で用いられる「あのファイル.txt」に関しては,
「あのファイル.cgi」が更新されると F22 が「あのファイル.cgi」から
「あのファイル.txt」を自動生成するようになってます.
その仕組みもちゃんと動いたようで.
http://live23.2ch.net/livecx/ http://live24.2ch.net/eq/
http://ex21.2ch.net/tv/ http://wwwww.2ch.net/news4vip/
0478root▲▲ ★垢版2007/06/20(水) 00:00:57ID:???0?PLT(74072)
>>477 第一段落
今bbs.cgiの該当部分読んできました。
なるほど、確かにそういう形なのかもしれないですね。

>>447 第二段落
なるほど、そういうふうになっていると。
0479 株価【840】 △△ ◆cZfSunOs.U 垢版2007/06/21(木) 11:01:36ID:iyrmz4650
>>470-478
>bbs.cgi から「あのファイル.cgi」中の広告用サブルーチンを呼び出す部分を変え

ってのは行われていたようですね.ということで bbsd 使用時にも対応させるようにしますた.

ただ,bbsd で広告ファイルの内容を挿入する際には mmap() したのをそのまま
ダイレクトに出力してるわけですが,中身をパースして板名に置き換えるマークを探して
置換するとかいちいちやることになると mmap() するメリットも失われてくるので,
bbsd 側の処理は変更せず,その代わり F22 であらかじめ広告テキストファイルを各板ごとに作成しておき,
bbsd 呼び出し時に板ごとに異なるファイル名を指定するという形にしますた.
0480root▲▲ ★垢版2007/06/21(木) 11:34:10ID:???0?PLT(74074)
>>479
news22の現状見ました。なるほど。

ということは、live23等の各bbsdも更新ということでいいのかしら。
0482root▲▲ ★垢版2007/06/21(木) 11:40:49ID:???0?PLT(74074)
>>481
あ、わかった。
まだ見てないけど、bbs.cgi のあそこの引数をむぎゅしたですか。了解です。
0484動け動けウゴウゴ2ちゃんねる垢版2007/08/28(火) 09:31:38ID:VVZnarch0
read.js関連のスレってもう見つからないみたいだけど、そのネタここでいいの?

read.jsモードにして、Firefoxでいろんなスレ見てると、
時々永久ループに陥るのか、固まってしまってアプリ落とすしかなくなってしまうよ
バグなのかな。1日数回、かならずなるよ。
もしスレ違いなら伝えておいて!よろ!
0485 株価【851】 △△ ◆cZfSunOs.U 垢版2007/09/08(土) 08:42:33ID:IUMxsE540
>>484 こちらでも Firefox 使ってるんですが,そういう現象にはお目にかかったことはないですが......
まぁ,どのスレでそういう現象が発生したかとかいうことを
Firefox のバージョン等と併せ報告してもらえればと.
ただ,ここではスレ違いなので,以降は↓あたりで.

2chの動作報告はここで。 パート22
http://qb5.2ch.net/test/read.cgi/operate/1182679645/l50
0490動け動けウゴウゴ2ちゃんねる垢版2007/10/12(金) 18:24:47ID:X5TBOJ+10
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
0491動け動けウゴウゴ2ちゃんねる垢版2007/10/26(金) 01:44:28ID:eZfUk6Va0
bbs.cgi制作者は脳に欠陥があるといわざるを得ない
0493i125-201-190-208.s05.a043.ap.plala.or.jp垢版2007/10/26(金) 15:48:54ID:WYwtoW0E0
a
0494動け動けウゴウゴ2ちゃんねる垢版2007/10/26(金) 18:36:31ID:y034cBTi0
**************** 応援頼む!*****************
http://dokdo-or-takeshima.blogspot.com/2007/10/inspectors-map-of-ulleungdo-shows.html
竹島に関する英語のブログで、日本と韓国のどちらに属するのかアンケートしてる。
・・・がしかし!
韓国の「ネチズン」どもがこのブログを知り、韓国が上回ってしまった。
本当の歴史を知らせるためにも『Japan』に一票を!
Japan 4701 (42%)
Korea 6271 (57%)
I don't know. 27 (0%)
スレ立てや他のスレの方にもコピペしていただければ幸いです。
**************** 応援頼む!*****************
0495XRumakTheBest垢版2007/11/09(金) 12:06:53ID:HfJYPiHm0
XRumer 4.0 is the perfect program for advertisement!?It's have CAPTCHA recognizer, email verificator, and a lot of other functions...??But. I forgot link to it :(??Can you give me URL to the xrumer description? screenshots, etc.??Thanks
0498動け動けウゴウゴ2ちゃんねる垢版2007/11/23(金) 16:35:24ID:HO5UpMpm0
男性廃墟露出の頂点

げん(元)の心の旅
http://gengetbear.blog49.fc2.com/



げん(元)ちゃんは、
男性の175cm115kg以上の受けのパートナ募集中だそうです。
詳しくはげん(元)の心の旅のメールフォームから問い合わせてね。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況