【雪だるま】bbsd⇔各cgi間のI/F仕様について考え・詰めていくスレッド

■ このスレッドは過去ログ倉庫に格納されています
1root▲ ★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に持たせたい・持つべきな機能をあぶり出し、実装仕様を詰めていくことを目標にしています。

2動け動けウゴウゴ2ちゃんねる2005/10/28(金) 16:03:47ID:TergQv970
↓スレスト

3root▲ ★NGNG
ということでちょっとだけ覚悟を決めて、bbs.cgi を少しずつ読んでみたりしています。

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

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

で、dat直読みをどうするかについては、別スレでやりたいと思っています。
(たぶんApacheのmod_proxyを使うような気がしています)

4root▲ ★NGNG
ということで、まずはぼちぼちとすすめていこうかなと。

5動け動けウゴウゴ2ちゃんねる2005/10/28(金) 16:08:36ID:nLcesSP60
>>1
乙です。ところでVIP運用情報にタイムリーなんか変なの

6動け動けウゴウゴ2ちゃんねる2005/10/28(金) 16:10:19ID:nLcesSP60
_| ̄|○

7動け動けウゴウゴ2ちゃんねる2005/10/28(金) 16:26:00ID:j3qGzfuR0
>>2
m9(^Д^)プギャー

わーい!

9動け動けウゴウゴ2ちゃんねる2005/10/28(金) 16:49:29ID:HU0HoH7B0
もう dat は google base に投げ入れてしまえ

10 ◆X7F1FulWvk 2005/10/28(金) 17:15:20ID:viqFHjEGO
記念

まず、ターゲットの宣言で。

1. bbs.cgi

とりあえず、パターン分けしていくです。

・ファイルの単位
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 の配下に入れることになるのかなと。

13動け動けウゴウゴ2ちゃんねる2005/10/28(金) 17:50:06ID:uV4g7e4W0
乙ですー

14 ◆SupercdT/. 2005/10/28(金) 17:51:57ID:eniqmoSH0
>>9
なんだそりゃw

15動け動けウゴウゴ2ちゃんねる2005/10/28(金) 17:53:13ID:OhUu29NH0
2. 恋人よ半年が過ぎ 逢えないが泣かないでくれ

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

〜 第14章 むむむの覚悟 〜

今まで読んでわかったもの その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用データファイル 三

live22xに鯖の情報入れて置いて、板に書き込むとその鯖のdatフォルダに行くようにしたりするの?

単位新規追加
C bbspinkのサーバごとに一つ(1単位)

[1-8] 1-C-a bbspinkのみの広告ファイル 三

>>17
んーと、そういった実装のことを考えるのは、まだまだこれからかなと。

>>15
おじさんの努力により、昔ほどのカオスじゃなくなりました。
http://b01.kakiko.com/test/read.cgi/mumumu/1118847600/

20動け動けウゴウゴ2ちゃんねる2005/10/28(金) 18:14:55ID:OhUu29NH0
>>19
むむむさんなら「カオス」に突っ込んでくれると思った。
今は反省している。

おいちゃん頑張り過ぎなのよ(´・ω・`)

[1-9] 1-A-c スレッド立てすぎです、のための記録用ファイル 一
[1-10] 1-A-d timecount/timecloseのための記録用ファイル 一

メモ:
・datそのものや、datが入っているディレクトリを直接触っているものは、
何らかの対策を行う必要あり。

例:
ごめんなさいリミッター(datの数をreaddirで数えている)
スレッドの容量による制限(unless( -s $DATAFILE <= 512000))

メモ:
・立てようとしたスレッドキーじゃないキーでスレッドが立つケースの考慮要。

例えば1100000000でリクエストしたけど、1100000001でスレッドが立つ場合。
ごめんなさいリミッター2のところともからむ。
参考:
http://qb5.2ch.net/test/read.cgi/operate/1113117347/951 あたり

[1-11] 1-B-a キャップのデータ(news18, news19のみ1-A-a) 二
[1-12] 1-B-c ●でスレッド立てすぎです、またにしてくださいの作業用ファイルとフォルダ 一
[1-13] 1-B-d Samba24の作業用ファイルとフォルダ 一

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のみの広告ファイル 四

で、既にわかっているものとして、

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

かな。

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

・指定した板名・キーを持つdatがあるか調べる => 板飛び防止策で使用

芋堀り用のログファイルデータを突っ込むところは、既にbbsdで実装済みのはず。

…とりあえず以上かな。
しばらく、本業します。

・指定したファイルをtouchする => キャップのあぶり出しで使用

なので、>>26 も含めて、指定したファイルをtouchできる仕組みがあるといいかもです。

さて、仕事に戻る前に。

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

ということで、ここまでのばしておけば即死もなさげかしら。
あとは、またあとで。

…で、外から見て思いあたったところや、
これ忘れてるんじゃないの? と思ったことは、
どんどんここに書いていただけると助かりますです。

このスレの目的は個別のコミュニケーションじゃなくて、
みんなでわいわいしながらすすめていくことなんで。

32動け動けウゴウゴ2ちゃんねる2005/10/28(金) 18:54:46ID:ezRLTwJk0
(1)調べなきゃいけない項目について個別にbbs.cgiがbbsdに質問するのと
(2)書き込みデータをさっさとbbs.cgiからbbsdに渡して、bbsdが各項目をチェックする(1つでも駄目だったらエラーを返す)のと

どっちがええの?
なんでかっていうとさ、512k制限で思った。
1000超えたスレッドとかスレストされたスレッドもbbs.cgiかbbsdかで調べなきゃいけないんじゃ?

33322005/10/28(金) 19:02:23ID:ezRLTwJk0
俺の記憶だと
スレストや、レス数1000を超えたでパーミッションが落とされるんじゃなかったっけ?

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


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

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

…なんか本題とずれちゃった

>>32
たぶん、事象により個別に考える必要があるですね。
というかまさに「考えどころ」な気がするです。

指摘のとおり、1000超えやスレストのところの判定は、
unless(-w $DATAFILE) とかしているので、
何らかのAPIにより事前に判定するか(1)、bbsdがエラーを戻すか(2)、
いずれにせよどっちが必要ですね。

どっちが => どっちかが >>34

>>25 場合わけ修正

四) 別のところで作ったものを、バックエンドにだけ置けばいいもの

37動け動けウゴウゴ2ちゃんねる2005/10/28(金) 19:44:54ID:YoVlyfOv0
ここはrootの独り言スレですか?

38動け動けウゴウゴ2ちゃんねる2005/10/28(金) 19:47:44ID:3oPsG9+x0
>>37
こういうこと始めますよと公言して皆さんの意見も取り入れーのみたいな
基本的にrootたんが新しい事やる時は抜き打ちはない

39動け動けウゴウゴ2ちゃんねる2005/10/28(金) 19:51:45ID:uV4g7e4W0
>>37
独白のように淡々と名講義をするスレ

あとは、、、。各種呪文ですね。

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

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

自動なもの

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

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

41動け動けウゴウゴ2ちゃんねる2005/10/28(金) 21:18:59ID:/s1pxg4g0
ほんど事情の分かっていないシロートですが。

Samba24は一部の板が違う設定になっているサーバがあるようです。
 bubble4 (archivesのみ120秒、その他は30秒)
 news19 (newsplusのみ120秒、その他は30秒)
 tv8 (tvのみ120秒、その他は45秒)
こういう設定と「Samba24のデータ」は別物? それとも一部の例外?

(´-`).。oO(Rock54のファイルも抱え込むとまずいのかなぁ。。。)

43動け動けウゴウゴ2ちゃんねる2005/10/28(金) 21:51:33ID:3oPsG9+x0
>>41
120秒はBe-Type2なので特別仕様じゃないかと

44動け動けウゴウゴ2ちゃんねる2005/10/28(金) 22:01:36ID:/s1pxg4g0
>>43
なるほど。そういうことか。

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

でも、newsplus@news19は
>BBS_BE_TYPE2=
みたい。ここは、さらに別の場所で設定しているのか?

45◆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");

46動け動けウゴウゴ2ちゃんねる2005/10/28(金) 23:20:40ID:2H+WxHhx0
>>ごめんなさいリミッター(datの数をreaddirで数えている)
>
>これは,bbsd で保持している subject データと実際の dat 数に
>乖離が生じるのは,サーバダウン後復帰かける前など限られた条件下のみと
>思われるので,subject データからカウントする方が軽そうですが,どうでしょうか?

不可視スレとかよくあるから、厳密にやるならやはりdatを数えた方が
いいと思います。
削除や移動でも、subjectにスレタイが残って、datは消えてるという
パターンもあったりします。
(結局そういうのは復帰してもらってでないと直らない)

47◆cZfSunOs.U 2005/10/28(金) 23:42:47ID:t62IzKuV0
>>46 ん〜と,現状で発生しているそうした subject.txt と実際の dat との
乖離というのは,スレ立てや削除・移動など subject.txt 更新のタイミングの
バッティングで発生しているのではないかと思うのですが,bbsd では
subject 更新を一元管理するため,原理的にはそうしたバッティングは発生しないはずなんです.
で,乖離が生じるとしたらサーバダウン後の復帰前などの限られた条件下だろうと.

48動け動けウゴウゴ2ちゃんねる2005/10/28(金) 23:53:15ID:2H+WxHhx0
>>47
あ。。。
subject=subject.txtと思ってました。。
すまそです。

49◆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
>あとは、、、。各種呪文ですね。

>>41 >>43-44
板別のSambaの秒数データは、bbs.cgi が持っているです。
bbs.cgiを雪だるま仕様にしても、概ねそのまま動くと思っています。

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

は、個々のフロント側bbs.cgi(の船)で抱え込めばOKと思います。
つまり、既にbbs.cgiで抱え込んでいるので、
bbs.cgiを雪だるま仕様にしても、概ねそのまま動くと思っています。

>>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 だったらこのエラーにすればよい」と。

>>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 する必要がある。

>>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");

これは、何が戻って来るんでしたっけか。

>>49
そんなかんじだと思います。

55◆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 の処理とは直接関係ないですが,チューニングなどの際に
参考になるように各種情報を返します.まぁ百聞は一見にしかずで
実際に呼んでみるとわかるかと思います.

56削除屋@放浪人 ★2005/10/29(土) 01:00:12ID:???0
>>53
中身を見てないで、動作だけのお話しですが、
スレッド移動は、恐らくdatを移動した後、subject.txtの
一番下に、直接スレッドキー+タイトルを書き込んでる
と思います(必ず移動後に、subject.txtの一番下に
移転したスレッドが現れますので)。

スレストは、subject.txtに対しては何もしてません(多分)。
スレ削除は、subject.txtからスレッドキー+タイトルも
削除しているようです。

>>55
> 握りませんです.

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

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

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

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

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

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

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

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

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

さすがです。

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

やってみます。
というか、ソース読んでみればいいのか。

>>56
情報提供助かります。

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

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

# 呪文のを知っている人が自然にやってくれますよ、うん。
# …などと、奈良県のほうを向いて、唱えておこう。そうしよう。

59動け動けウゴウゴ2ちゃんねる2005/10/29(土) 02:52:39ID:jGhfpJgSO
編集長の出番のようです

たもん君の出番らしい。

61動け動けウゴウゴ2ちゃんねる2005/10/29(土) 12:04:13ID:AepvJ9zM0
奈良県方面でサーバお守り関連の人=サザン君

62動け動けウゴウゴ2ちゃんねる2005/10/29(土) 12:54:28ID:qTGI6+cH0
編集長様降臨されませませ…
神様ほっとけ様あらいぐま様…
(;-人-)南無阿弥陀仏南無阿弥陀仏…

63動け動けウゴウゴ2ちゃんねる2005/10/29(土) 18:50:41ID:fxU6mbEA0

64ひろゆき@どうやら管理人 ★NGNG
http://qb5.2ch.net/test/read.cgi/operate/1129726127/743n-755
そろそろ、read.cgiの関連ページのリンクをはずしてもいいような気がするんですが、
どうでしょうか?

。。と。


66動け動けウゴウゴ2ちゃんねる2005/10/29(土) 21:31:02ID:mt07d3s10
>>65
雪だるまと言われたからこっちに来たのだろう、と

67P221119009163.ppp.prin.ne.jp2005/10/29(土) 21:36:50ID:SXFPINpz0
帰宅後にでも。

ひ(ryをここで見るの初めてのような気がする

ってここ雪だるまは雪だるまでも難民じゃないじゃん!
誤爆スマソ

70◆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の作業用ファイルとフォルダ 一

>>70
おつです、おつです。

そのへんについては、bbs.cgiで扱っている情報の種別・内容などを
書ける範囲でここに書いていくです。
今日はちと遅いので、明日以降にでも。

72('A`) ◆jOBMANDKSA 2005/11/01(火) 04:13:44ID:lNSUZa7JO
壁|A`).oO(なんか面白そうなスレだな・・・・見守ってみるか

さて、いよいよ「詰めていく」をはじめようかと。
まずは、

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

についてです。

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

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

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

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

(続く)

で、bbs.cgiは、このような動作をするようです。

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

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

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

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

ということで、日付が変わったら、その時点で船が生きていてもIDだけは変わるように、
私の知らない間に、いつの間にか改良が施されていたようです。

で、雪だるま環境では、この種ファイルは、複数あるフロントエンドで
同じものを共有する必要があります。
でないと、担当したクライアントごとに、IDが変わってしまいます。

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

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

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

(続く)

ということでbbsdでは、

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

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

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

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

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

まずはこんなところで。

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

そんでは、今日はねるです。

> [1-9] 1-A-c スレッド立てすぎです、のための記録用ファイル 一

のところを少しずつ読みはじめています。
ふーむ、、、。

簡単にいえば、行単位でのスタック処理ですね、これ。

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

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

汎用スタックルーチンを bbsd 側で作ってもらうのが、よさげな予感。

スタックというか、FIFOか。
少なくとも [1-9] はそういう動き。

[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から削除する

FIFOファイルは、以下のフォーマットにしていただけるとありがたいです。

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

登録データとしては、, や ( ) が入ったりすることもありえます。

これで、bbsd で「スレッド立てすぎです」のためのFIFOを一元管理し、
各フロントエンドの bbs.cgi からスレ立て時に問い合わせることになります。

まだきちんと読んでいませんが、timecount/timeclose のところも
基本的にはこれまたはこれのバリアントで、いけるような気がしています。

…さて、とりあえず今日はこのぐらいで。

ただ、バリアントとはいえ、微妙なことはいくつかしているようです。
たぶん、FIFOとはいえ、[1-10] は [1-9] ほど簡単な構造ではないですね。

いずれにせよ、以降は明日以降とゆうことで。

で、基本路線を書いておこうと。
基本的には、

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

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

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

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

といったかんじで。

【スレ立て規制】 mesh だけ規制強化する?
http://qb5.2ch.net/test/read.cgi/operate/1086942520/
http://qb5.2ch.net/operate/kako/1086/10869/1086942520.html

を、教えてもらいました。< スレ立て規制

88◆cZfSunOs.U 2005/11/01(火) 23:44:09ID:WRnidKIn0
>>73-87 乙です.ぼちぼちやっていきます.

ところで,各データについてリブートをまたいで保持する必要があるか否か
ということについてはどうなりますでしょうか.リブートをまたいだ保持が
不要なデータについては,ファイルに記録せずオンメモリで完結させてしまった方が
簡単かも知れませんので......

>>88
基本的には、これまでここで出たものはファイルを持たせる方向でお願いしますです。

うぉ、暴発。

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

明日以降ぼちぼちやっていこうと思っている、timecount/timecloseとかは、
場合によってはオンメモリだけでもいいかもしんないです。
これは私もまだ読みきってないんで、別途考慮ってかんじですか。

91◆cZfSunOs.U 2005/11/02(水) 00:10:39ID:XmaccJrd0
>>89-90 了解です.

[1-12] 1-B-c ●でスレッド立てすぎです、またにしてくださいの作業用ファイルとフォルダ 一
[1-13] 1-B-d Samba24の作業用ファイルとフォルダ 一

これやろうかと。

93◆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] の記録データの最大サイズも同様におながいします.

94root▲ ★2005/11/05(土) 23:21:16ID:???0
>>93
おつです。おつです。

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

よいです。

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

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

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

了解です。
仕様指定時に改めて指定させていただきますです。

95動け動けウゴウゴ2ちゃんねる2005/11/06(日) 20:25:11ID:oVNuRozN0
>>75-76

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

bbs.cgi で日付を管理、bbsd はbbs.cgiからもらった日付と板名をキーにして
テーブル等から種を検索する方法を提案します。

>>95
bbs.cgi は複数のサーバ(live22x1〜live22x3)で動くんで、
それだと、かえって混乱しちゃうような。

97動け動けウゴウゴ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分ほど
早く設定すれば回避出来なくはないかな。

>>97
なるほど、

だとすると、

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

の時に、bbsdからbbs.cgiに日付と種を両方返すことにして、
bbsdから戻ってきた日付が万一bbs.cgiの意図したものじゃなかったら、
その結果は捨てることにすればいいのかな。

99962005/11/06(日) 23:39:26ID:sDcfiRZ20
>>98

いい感じですね

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

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

; H"の回線が切れたので、ID変わってます

100動け動けウゴウゴ2ちゃんねる2005/11/06(日) 23:41:33ID:sDcfiRZ20
>>99

自分は、96じゃなくて97でした。


101◆cZfSunOs.U 2005/11/06(日) 23:44:42ID:iq8V25O30
bbsd が返すのは現状でも "yyyy_mm_dd<>16bytes-seed" になってますね.
# というか,最初の仕様は 16bytes-seed の部分だけ返すという意図だったんですか......

>>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) ;

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

# 私の仕様指定があいまいだったわけですが、ちゃんと意図どおりになっていてよかたです。

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

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

で、IDをbbsd側でつけるというのも、なんか微妙にセンス悪いとゆうか、
bbs.cgi側の都合で変えたくなった時に、微妙にフレキシブルじゃないとゆうか。

>>103
> 毎回bbsdに伺う

正確には「船出航時に毎回bbsdに伺う」ですね。
SpeedyCGIだから。

105動け動けウゴウゴ2ちゃんねる2005/11/07(月) 22:43:28ID:KqEOS0ue0
>>104

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

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

と、各々の細かい役割を知らないのに勝手なこと言ってすいません。

>>105
個人的にbbs.cgiは内容には一切触れずに規制処理(DNS系統:省Rock54+BBR)だけ行えば?なぁんて妄想もしていたりします。
単一bbsdでは負担が掛かるようなら子供を産んでも良さそうな。とかとか。。。

1071052005/11/07(月) 23:36:28ID:qaYfXUl/0
同じこと言ってましたね。
ちゃんと読んでませんでした、申し訳ない。

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


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

ただ、基本的にファイルI/Oと共通データベース処理に専念してほしい予感も。
そもそも、bbsd.cgiのバックエンド的な位置づけなわけだし。

109root▲ ★2005/11/08(火) 16:31:58ID:???0
bbsdって1000超えした時って、どういう処理をするんでしたっけ。

1) このスレッドは1000を超えました。 <br> \
もう書けないので、新しいスレッドを立ててくださいです。。。
を書くかどうか
2) 板名/1000.txt を読むかどうか

110◆cZfSunOs.U 2005/11/08(火) 21:32:03ID:+RowFQSH0
>>109 1000.txt が存在すればそれを用い,なければ 1) の内容で dat に書き込みます.

111root▲ ★2005/11/09(水) 02:38:21ID:???0
>>110
了解です。

112動け動けウゴウゴ2ちゃんねる2005/11/09(水) 21:26:46ID:4LkEBQVF0
【Project peko】2ch特化型サーバ構築作戦 Part6
http://qb3.2ch.net/test/read.cgi/operate/1076413123/652-

懐かしいところ、日々成長だわな

113動け動けウゴウゴ2ちゃんねる2005/11/11(金) 14:27:16ID:lQB+cJ3w0
久しぶりに来たが、ぜんぜん進展してないの?
つうか、まとめサイトは?
テンプレすら張ってないし。

114動け動けウゴウゴ2ちゃんねる2005/11/11(金) 14:27:47ID:lQB+cJ3w0
すんません誤爆しました。

115root▲ ★2005/11/11(金) 14:54:00ID:???0
>>113
もうすこしかな。

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

それができると、雪だるまのためのbbs.cgi洗い出しは、
概ねできたことになるはず。

timecount/timeclose の処理も、FIFOですね。
ここに書こうと。

簡単にいうと、こんなかんじ。

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

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

これなら、先だって用意していただいたものと同じようなのを
もひとつ準備していただければ、できそうですね。

[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的にはメモリ上のみでよいと考えます。

あとは、>>92 ですか。

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

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

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

詳細は、読みきったところで。

120◆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 から取得するのがいいのか,
どうなんでしょうね.微妙なところかも知れませんが......

>>120
おぉ、鋭い指摘。

ちょっと、該当部分見てみるです。

読み直しました。

ご指摘のとおり、段数は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 を読んで、それを使う

ことにしていただければと思います。

123◆cZfSunOs.U 2005/11/13(日) 23:48:37ID:s+Rpgd2P0
>>122 了解です.ではそういう形で.

124◆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 値を使用するよう変更.
----------------------------------------------------------------------
ここまで実装しますた.

125root▲ ★2005/11/15(火) 01:16:04ID:???0
>>124
おつですおつです。

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になるとのこと。

(続き)

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回、その時間」を登録して、正常終了を呼び出し元に返す

(続き)

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」を呼び出し元に返す

c) Samba24用DBリセット用API

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

d) Samba24用DB状況調査用API

F22から呼ばれる。
これを呼ぶと、いくつのIDがSamba24用DBに登録されているかを返す

…というかんじです。日本語が、微妙かもしれないですね。
変なところがあったら、書いてくださいです。> SunOSさん

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

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

今日は、こんなところで。

…と、ここまで書いて、
s秒をbbsdで管理するか、bbs.cgiで管理するか、
微妙なかんじもしてきました。

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

その路線だと、、、。ちょっと、再度考えてみるですかね。

>>131 は別途、明日以降考えてみるです。

そんでは、今日はおやすみなさい。

133◆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 は登録のみ行うということも考えられますが,その場合
規定秒数以上だった場合のリセットが行えないのが問題ですかね.

134◆cZfSunOs.U 2005/11/20(日) 10:01:50ID:EFjCcJ0V0
あと,規定秒数以上経過していたエントリは消していかないと,DB がどんどん肥大化
していきそうな気もしますね(その対策として c) があるのだと思いますが,
その呼び出しが来る前の段階で肥大化を防げればその方が良さそうな気もします).
ということで,やはり規定秒数は何らかの形で bbsd が知っておいた方がいいかも知れません.

135root▲ ★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できる仕組みを実装していただけると、
いいようなかんじで。

ちょっと、これらの路線で改めて仕様考えてみるです。

136root▲ ★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回、その時間」にする。

(続く)

137root▲ ★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」を呼び出し元に返す。

138root▲ ★2005/11/20(日) 22:16:23ID:???0
(続き)
あ、「ID、規制発動」になおしてください。< 4)

「ID、規制発動」の状態になってから3600秒(1時間)経過したら、
あるいは最後の問い合わせから3600秒経過したら、
そのIDのエントリをDBからexpireする。

139root▲ ★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は準備いただけると。

140root▲ ★2005/11/20(日) 22:23:41ID:???0
以下というのは、あと >>129 のやつですね。

とりあえず、こんなところでどうでしょうか。

141root▲ ★2005/11/20(日) 22:25:14ID:???0
で、あと、
これまで出た中で、詰めなければいけない仕様って、あったっけか。

142root▲ ★2005/11/20(日) 22:28:18ID:???0
…で、私のほうでも、
bbs.cgi 見直してみるです。

この目的のために、かなり整理整頓したわけで。

143◆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のみの広告ファイル 四

144◆cZfSunOs.U 2005/11/21(月) 01:34:39ID:+sSOM0E80
考えてみると,性質の異なるデータを1つの DB に混在させてしまうより,
別々の DB に分けた方が検索効率もアップしますし,>>139 のチラシの裏のような
用途への応用も考えると,複数の DB を作成できるようにした方が汎用性は高そうですね.
ということで「板名」以外に「DB名」という引数も設け,1つの板で複数の DB を
持てるようにするのもいいかも知れませんね.

>>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になりますか。

(続く)

(続き)

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回、その時間」にする。

>>143
あとは広告関係ですか。

ぼちぼち仕様出していきますが、このへんは実際に動かしながらでもいいかなと。

で、先回りして言っておくと、広告には「取り扱い的に」種類が大きく二つあるです。

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

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

というわけでこのへんは、動かしながら調整かなぁと。

ということで、今日はこのへんで二度寝するです。

なんか寝床からムニャーとしながら京ぽんでアクセスしたら、
何か漏れてたみたいで、PC出してごそごそと。

150root▲ ★2005/11/21(月) 16:22:49ID:???0
で、bbs.cgiに埋め込まれている広告問題ですが、

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 側では動かせる形になるってところですかね.
広告については,確かに大きく固まってる部分は切り出しも容易でしょうけど,
細かくちりばめられてる部分をどうするかってのは考えどころですね......

152root▲ ★2005/11/22(火) 01:56:57ID:???0
>>151
了解です。よろしくおねがいしますです。

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

しかし、

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 のオーナーとかパーミッションって、
どうすればよかったんでしたっけか。

なんか、キャッシュされないみたいなんで。

LoadModule cache_module modules/mod_cache.so

が抜けているとか?

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");

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 を吐くようにしてキャッシュを効かせる形の方が良さそうな気もしますけどね.

157root▲ ★2005/11/25(金) 00:13:21ID:???0
>>154
ううむ、入っていると思うけど、、、。

>>155
おつです。

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

で、たぶん将来的には、read.cgi/offlaw.cgiはlive22じゃなくて、
live22xで動かすようにするほうがよさげかなと。

158root▲ ★2005/11/25(金) 00:13:41ID:???0
で、live22のbbsdを更新しました。
いっぽ、いっぽ。

159root▲ ★2005/11/25(金) 02:52:48ID:???0
bbs.cgi とにらめっこ中、、、。

単純な質問で申し訳ないのですが、
$logfilename:$logline は、その「行為」ごとにとられる、ということかしら。
つまり、ログとらなくてもいい場合は、どうすればいいのかなと。

160root▲ ★2005/11/25(金) 02:56:25ID:???0
こんなふうでいいのかな。

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

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

165root▲ ★2005/11/25(金) 04:04:40ID:???0
>>163
最初0、次1、6回やると3(正常)

…ということで、仮組み込みまで終わったです。

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

でもまずは、順調と思います。
本日は、ここまでで。

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 は整数値です.

>>167
上: ありがとうです。うまくいきました。

下: おはずかしいです。修正して、ちゃんと動きました。

というわけで、ひとつ、仕様追加のお願いがあります。

>>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側に返していただきたいなと。

あと、もう一つI/Fがほしいです。

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

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

さみだれ式ですみませんが、よろしくおながいしますです。

それから、、、広告か。

ここに晒していいかどうかわからないから、メールしておくです。

>>171
メール発射しました。

ひとつ忘れてた。
これは公開情報っぽいから、ここに書こう。

http://qb6.2ch.net/test/flash.txt

にありますです。

つまり、./test/flash.txt にあると思ってよいです。>>173

おしりの

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

は、bbs.cgi から教えることにしたです(対応済み)。

purge...

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

ちと、微妙かも。

…あと、Over1000やらスレストやら何やらで、書き込みリクエストがしくった場合の
エラー処理ハンドリングって、どうやればいいのかしら、、、。

178動け動けウゴウゴ2ちゃんねる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) を
返しますので,それに沿って処理すればいいかと.

180◆cZfSunOs.U 2005/11/25(金) 22:24:56ID:M1pAccsZ0
get1 (>>1取得)ですが,sub bbsd {} 中の
        recv(SOCK, $str, 2048, 0)
となってる部分の 2048 をもっと大きい数値にしないと,
>>1文が長い場合に尻切れになってしまうかも知れません.

181む@食事中 P211018235238.ppp.prin.ne.jp2005/11/25(金) 22:52:19ID:u8Lne6GM0
おー、帰ったら早速組み込むです。
で、すぐメール出しなおします。

182◆cZfSunOs.U 2005/11/25(金) 23:11:38ID:M1pAccsZ0
bbsd 側の SO_SNDBUF も大きくした方がよさそうなので,その点も変更.

洋ぽん問題の対応を先にするです。

まずは、メールフォワードしておくです。

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. その他何かいい方法.

さて,どういう形がいいでしょうか......

>>184
私は、広告の場所も公開して問題ないとは思うのですが、、、。

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

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

で、それをそのまま読んでいただければと。

>>185 は、

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

みたいなかんじで、bbsdに教えておくということです。

187◆cZfSunOs.U 2005/11/26(土) 01:15:14ID:NBQj9pON0
>>185-186 では,インクルードファイル名も引数化ってことですね.
ただ,bbsd に渡すパス名は,$logfilename も touch コマンドの引数も
$DOCUMENT_ROOT/test/ からの相対パスという形になってますので,
それに統一した方がいいと思います.これは,bbs.cgi 自体の場所からの
相対パスってことですね.

>>187
了解です。
それ(testから)に合わせていただいて、問題ないです。

Samba は、無事動いたです。

>>182
そっか、「UDPいっぱつもの」なんですよね。
大きくする(8192)ことは簡単ですが、何か副作用ありますかね。

あと、datを chmod 444 すると、
書けたように見えて書けないというのが、発生するみたいです。

191◆cZfSunOs.U 2005/11/26(土) 02:31:37ID:NBQj9pON0
>>189 まぁ,バッファ用にその分メモリ食うぐらいかなと思います......

>>190 そのスレに手動で
bbs.pl livejupiter (key) 'a<>a<>a<>a<>' foot log
とか実行するとどうなりますか?

>>191
そのぐらいなら、たいしたことはなさそうですね。
8192にしておくか。

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

193◆cZfSunOs.U 2005/11/26(土) 02:41:05ID:NBQj9pON0
>>192
>8192にしておくか。

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

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

そうです.

%./bbs.pl livejupiter 1132860497 'a<>a<>a<>a<>' foot log
Permission denied

ふうむ。ってことはbbs.cgi側すね。
すんませーん。でなおしてきます。

bbs.cgiの虫でした。
さっきのは、虫していただければと。カサコソ

--------------------
書込み中・・・
--------------------
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 側では枠を作成せず),
そのため今のままでは枠の外観が不統一になってしまいますね.

>>196
> # ずいぶん引数が多くなってきました(w
リファレンスで渡すといぃかも?
my $errmsg = bbsd(
 [
  BBS => $bbs,
  KEY => $key,
  DATLINE => $datline,
  :
  :
 ]
);
みたいな。。。

198◆cZfSunOs.U 2005/11/26(土) 11:03:31ID:NBQj9pON0
>>197 単純に引数を羅列するよりリファレンスで渡す方が
無駄なコピーとかは発生しないようになるんですかね.
ただ,sub bbsd {} 自体はあまりインテリジェントではなく,
単純に引数を連結して bbsd にパケット投げてるだけなんで,
ハッシュリスト形式にするメリットはあまりないかも......

199iv66.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)

200stream ◆PNstream2s 2005/11/26(土) 12:36:52ID:z1nSq/XO0
あ、スレは立ってるようです
sss
http://live22x.2ch.net/test/read.cgi/livejupiter/1132976035/

201stream ◆PNstream2s 2005/11/26(土) 12:37:52ID:z1nSq/XO0
うーん、IFをつめてくスレだったからやっぱbbs.cgiスレのほうが良かったですね

調整途中でした。>>199-201

不具合報告は、別のところがよかったすね。
スレはないので、、、。bbs.cgi スレにお願いです。

で、ちょっと対応します。

そうか、新スレの時はスレッドキーが返るのを忘れてた。

>>198
おそらく効率的では「ない」かと(苦笑)@リファレンス私→デリファレンスして連結して
でも、可読性や引数の抜けによる思わぬ鰓を減らすのには十分威力があるんじゃないかなぁと♪

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 への追記内容
    :
    :
  );

何とかなるかなぁという気もしたりしなかったり......

>>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}"
);

>>196
ということで、広告対応しました。

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

あとはご指摘の通り、外観が不統一問題ですか。
どうすればいいんだろう。

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

広告ファイルを手直しできるなら,ファイル側で枠ありか枠なしのどちらかで
統一すればいいんでしょうけど......

ファイル側に、原因があるですか。

広告部分は管理人の管轄で、私がどうがんがっても「神の領域」だからなぁ。
ううむ。

210◆cZfSunOs.U 2005/11/26(土) 15:27:47ID:NBQj9pON0
広告ですが,CSS を使った力業ってのをちょっとやってみますた.
bbsd を更新後,いったん index.css を消してから復帰をかけてみて下さい.

>>210
やってみたです。
おぉ。

212◆cZfSunOs.U 2005/11/26(土) 15:46:52ID:NBQj9pON0
2番目のはまぁまぁの感じですが,3番目のがちょっとってとこですか......

ということで、とてもよくなったと思うです。

http://live22x.2ch.net/livejupiter/

>>212
そんなかんじですね。

板トップから 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
を利用するようにすれば解消するのではないかと......

>>216 前半
やりました。
http://live22x.2ch.net/livejupiter/

おぉ。

>>216 後半
これって、今の時点で全部のread.cgiにやると、いまいちなんでしたっけ。

218◆cZfSunOs.U 2005/11/26(土) 16:43:10ID:NBQj9pON0
>>217 現状のままでは不整合があるかも知れませんが,雪だるまサーバ以外の index.html も
>>216 の index.js を利用するようにすれば不整合はなくなると思います.

>>218
なるほど、同期とってやる必要があると。

前に見たような機がするのですが、
これにすると、どのへんがよくなるんでしたっけ。

220◆cZfSunOs.U 2005/11/26(土) 16:47:00ID:NBQj9pON0
>>219 現状のエンコードしていない Cookie 設定では Firefox や Mozilla などで
文字化けが発生しますが,その index.js のようにエンコードするとその問題が解消します.

221◆cZfSunOs.U 2005/11/26(土) 16:48:44ID:NBQj9pON0
ただ,NAME と MAIL の Cookie 設定はクライアント側 JavaScript にお任せになるので,
bbs.cgi 側ではそれらの Cookie 設定はしないようにしてもらった方がいいです.

>>220-221
なるほどです。

bbs.cgi と read.cgi で同時対応することになると。
雪だるまと裕香、bbs.cgiスレで別途、すすめるかんじですね。

ひとつ、質問です。

今Samba24で「永久」になっちゃった場合って、
そのレコードはどのタイミングでexpireがなされるんでしたっけか。

自己解決しました。
上に、ちゃんと書いてあるですね。

ちと休憩しながら、ロードバランシングのことでも調べるか。

225動け動けウゴウゴ2ちゃんねる2005/11/26(土) 18:30:16ID:X1zHFGGX0
ここいらで2ch wiki雪だるま作戦ページに現状を書いていきたいのですが、よろしいでしょうかね?

>>225
ぜひ、ぜひ。

できたら、みるです。

227動け動けウゴウゴ2ちゃんねる2005/11/26(土) 18:36:33ID:X1zHFGGX0
>>226
了解です。

では当該ページに更新作業中宣言をいれておきましたのでしばしお待ちを。


228動け動けウゴウゴ2ちゃんねる2005/11/26(土) 19:37:36ID:X1zHFGGX0
実装の箇条書きだけあげておきました。
実装の詳細ははしょるつもり。

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

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

ttp://v.isp.2ch.net/up/9827b66877cf.jpg

>>227-228
まずはおつです。

図とか微妙な部分がありますが、
そのへんは、おいおいと。

1001 名前:1001[] 投稿日:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

これ、今までと同じにしてくださいです。
全角で1000とか、そういうの。

Visioかぁ。。。
林檎機版もあるといぃよなぁ。。。

232動け動けウゴウゴ2ちゃんねる2005/11/26(土) 20:06:29ID:X1zHFGGX0
>>231
うわ、早速ばれてるw

233◆cZfSunOs.U 2005/11/26(土) 20:54:25ID:NBQj9pON0
>>230 対応しますた.

>>233
更新したです。

大丈夫みたいです。

1001 名前:1001[] 投稿日:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

このへんが、出たみたいです。

質問・雑談スレ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/66-67

ということは、ENOENTの時は「そんなスレッドないです。」かな。
EEXISTS は、、、。

238◆cZfSunOs.U 2005/11/27(日) 10:30:32ID:Q5XEP8aN0
>>236-237 ENOENT は存在しないはずのスレに書き込みしようとした時に出ますね.
EEXIST はスレ立て時にリトライ回数上限(16)に達してしまった場合に起こりますね.

239root▲ ★2005/11/27(日) 12:45:08ID:???0
>>238
了解です。
ENOENTは「スレッドがありません。」
EEXISTは「別の人が同時刻にスレッドを立てようとしています。ごめんなさい。」

にするです。

http://live22x.2ch.net/test/read.cgi/livejupiter/1133090358/18

書き込み時に通信ができなかったら、タイムアウトの旨を表示。

241◆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 以外にも雪だるまを
使うようになったら,各ホストに対応する接続先に切り替えられるように
した方がいいですね.

242root▲ ★2005/11/28(月) 11:09:03ID:???0
>>241
ですね。< タイムアウト

で、host, port は、引数で与えるとか、あるいはどこかに config を書いておいて
bbs.cgi の船出航時に読むとかの応用もあるかなと。

243root▲ ★2005/11/28(月) 11:15:35ID:???0
で、先日ちょっと書いたトラックバックへの対応ですが、
http でバックエンドにdatをとりにいくように bbs.cgi で対応したので、
bbsd での対応は、不要になったです。

244◆cZfSunOs.U 2005/11/29(火) 00:30:54ID:xl2IcKRm0
>>242 鯖ごとに config ファイルを置いてそれを読み込むってのがいいかもですね.

>>243 なるほど.まぁ get1 コマンドはとりあえず残しておきますが.
ただ,HTTP を使うなら,バックエンドではなく localhost から取ってくれば
キャッシュを有効活用できてその分バックエンドの負担を減らせるかも知れません.

>>244
なるほど。
キャッシュを活用させるためには、どうやってとりにいけばいいのかしら。
read.cgiの特性上、今はlive22x.2ch.netという名前は、live22x[123]の中では、
live22.2ch.netの裏口につけてあったりして。

246◆cZfSunOs.U 2005/11/29(火) 07:35:19ID:xl2IcKRm0
>>245 ん〜と,普通に localhost 宛に HTTP リクエストを発すればいいかと.
もし VirtualHost を使っているのなら,"ServerAlias localhost" を設定して
localhost 宛のリクエストがその VirtualHost 宛として扱われるようにすればいいですね.

247root▲ ★2005/11/29(火) 13:33:14ID:???0
>>246
なるほどです。

本日午後以降多忙のため、別途ぼちぼち。

248◆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");

とかすればいいかと.

>>248
use LWP::Simple;
$firstlog = get("http://$ENV{SERVER_NAME}/$GB->{FORM}->{bbs}/dat/$GB->{FORM}->{'key'}.dat");
$firstlog =~ s/\n.*//g;

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

帰ったら、>>248 を試してみるです。

250◆cZfSunOs.U 2005/11/30(水) 08:24:40ID:0+e07y/o0
>>249 LWP::Simple ではヘッダ指定とか出来なさそうなので,LWP::UserAgent
などを使ってもうちょっと手をかけなければならないかも知れません......

>>250
みたいですね。

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

トラックバックは所詮トラックバックなので(= とりあえず動いているのと、
今は量で効いてこないんで、優先度高くない)、おいおい、マターリってかんじで。

252◆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];

253root▲ ★2005/11/30(水) 22:13:49ID:???0
>>252
おー。

例によって、帰宅後にでも。

>>252 を組み込みました。

# 051205 雪だるまでのトラックバック送信部分を改良(キャッシュが効くように) by む

255動け動けウゴウゴ2ちゃんねる2005/12/08(木) 20:50:46ID:QSYdoGMxP
大失敗でつねこれは

実況鯖スレでは擁護に回っているけれど、
live22b[12]のテストが足りなかったんじゃ、という気は正直あります。
heartbeat体制で最速1000テストやったわけでもないし。

257root▲ ★2005/12/09(金) 15:05:18ID:???0
>>256
たしかに。

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

まぁ、言い訳ですが。

258動け動けウゴウゴ2ちゃんねる2005/12/12(月) 22:31:30ID:cojsKgdr0
alteonかおーぜ

259動け動けウゴウゴ2ちゃんねる2005/12/13(火) 20:00:33ID:7YzWalJw0
復帰の呪文ですがー
今実際に使ってるのは通常復帰とsage復帰の2種類じゃないでしょうかー
(というか、それで足りているはずというかー)
復帰補さんが登場した時に、古い呪文なんたら、ってことがあったようなー
厳密にはメールで呪文のやりとりして確認するしかないんじゃないでしょうかー

260動け動けウゴウゴ2ちゃんねる2005/12/13(火) 20:11:37ID:MVa8dm+c0
復帰呪文
漏れてる気配があるから、いっそ新規に作り直しちゃうとか。

261◆cZfSunOs.U 2005/12/13(火) 23:34:16ID:pxLkBcfF0
そろそろ呪文系 CGI も bbsd 対応が必要のようで......
呪文関連の API は >>45 >>156 あたりです.

で,sage 復帰っていうのはどのような処理になってるんでしょうか?
場合によっては API 追加になるのかな......

262動け動けウゴウゴ2ちゃんねる2005/12/13(火) 23:38:08ID:MVa8dm+c0
むむむさんにQしました。

263削除ふぶき ★2005/12/13(火) 23:44:06ID:???0
liveanb の復帰依頼が来ていますのでお願いしますわ。ごきげんよう

264stream ◆PNstream2s 2005/12/13(火) 23:44:18ID:o0NfBbqA0
>>261
>sage復帰
現在subject.txtに存在するスレッドのうち、datが存在しないものを省く処理です。
スレッドの順位は復帰前と復帰後では変わりません。

265◆cZfSunOs.U 2005/12/14(水) 00:11:10ID:HoK4P3HR0
>>264 なるほど.既存の purge コマンドを使ってやるか,それとも別の API を作るか,
どちらがいいかってとこですね.呪文 CGI のわかる方と相談ということで......

266root▲ ★2005/12/14(水) 02:49:45ID:???0
>>259
なるほどです。
通常復帰とsage復帰って、同じ呪文(CGI)で引数が違うのかしら。
それとも、CGI自身が違うのかな。

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

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

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

すみませんが、再度お送りいただけますとありがたいです、、、。

267水色@飛行石 ★2005/12/14(水) 02:57:04ID:???0
>通常復帰とsage復帰って、同じ呪文(CGI)で引数が違うのかしら。

同じCGIで、うしろにオプション付けるって感じですー。

268◆cZfSunOs.U 2005/12/14(水) 03:00:31ID:HoK4P3HR0
>>266 乙です.

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

dat の存在しないスレを subject から消す:
        my $errmsg = bbsd($bbs, 'autopurge', "$logfilename:$logline");

269root▲ ★2005/12/14(水) 03:02:22ID:???0
>>267
了解です。

>>268
はやっ。おつです。
live22のbbsdを更新してきます。

270root▲ ★2005/12/14(水) 03:05:08ID:???0
bbsd 更新完了 @ live22。

271◆cZfSunOs.U 2005/12/14(水) 03:29:20ID:HoK4P3HR0
>>269-270 乙です.が......ちょっとマズい点があって修正したので,
再度更新お願いします......

272root▲ ★2005/12/14(水) 03:35:57ID:???0
done. >>271

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) スレ移動をすると、移動先の一番下に入るようです。
これは今の呪文も、そうなんでしたっけ。

で、削除系では、

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

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

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

で、スレ削除に使うAPI、

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

は、本当にスレがrmされてしまうのでしょうか。
つまり、二度と復活できない。

復帰系では、

$errmsg = &Fukki($ita);

$errmsg = &SageFukki($ita);

を、作る予定。

で、質問なのですが、html/html の下って、
今の復帰の呪文でも、作られなおすんでしたっけか。

で、ここまではここ数日のうちにはできると思うので、
あとは、呪文への組み込みができれば、それでよいはず。

このへんのパーツができたら、次の段階(組み込み)へと。

>>273
2) 今もそうです。

278root▲ ★2005/12/14(水) 21:13:50ID:???0
>>277
了解です。ということは、現在の動作で問題ないですね。

で、$range というぐらいで、ひょっとするとインテリジェントな指定が
できたりするのかしら。< レス削除と透明削除

279動け動けウゴウゴ2ちゃんねる2005/12/14(水) 21:38:19ID:mDRGT/TD0
>>273
1) BBS_DELETE_NAME は読まずに無条件に「あぼーん」になったんだったと…

280root▲ ★2005/12/14(水) 21:48:09ID:???0
>>266
> すみませんが、再度お送りいただけますとありがたいです、、、。

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

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

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

で、お送りいただいた復帰の呪文については、
練習を兼ねて私のほうで組み込んでみますです、、、。むぎゅー。

>>275 実装完了。

>>273 のスレスト再開を、

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

から、

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

に、変えた。

田吾作 ★ さんへ

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

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

なお、ファイルはゆっくり同期していますので、書き込みから最大5分程度、
芋ができるのに遅延がありますです。

ゴミ箱送りが、うまく動かないようです。

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

たぶん、live22xtr じゃなくて live22tr だからか。

>>283
芋はバックエンドで掘るようにしてもらえるようです。
(コピーが減って、少し楽になる)

さて、ひととおり共通APIを書いたんで、

・スレスト
・復帰

の呪文を、とりあえずごにょってみるです。

私の知っているスレストの呪文、対応済み。
最後の1つが正規の呪文でlive22x指定、itadaki経由。

呪文のテストのためのスレッド
http://live22x.2ch.net/test/read.cgi/livejupiter/1134555464/

288◆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 にしてしまうので.
とりあえずスレ移動で代用するのがいいのかな......

>>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か何かになるかもしれんです。

290◆cZfSunOs.U 2005/12/15(木) 00:46:34ID:p57+vtBb0
>>289
>> スレのファイル自体削除は,dat そのものを削除しますので,復活はできません.
>やはりそうですか。
>呪文のほうでは、実はファイルを移動しているのかな。

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

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

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

>>290
なるほどです。

パラノイアにやるならhtml/htmlを作り直すんでしょうけど、
たぶんそこまでやらなくても、いいような気がするです。

復帰・sage復帰の呪文も、対応できたと思います。

今後、対応ができた呪文は、live22xに対して唱えてくださいです。

で、今後の方針ですが、、、。

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

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

で、もし対応される方が既にいない呪文、というのがあった場合は、、、。
その時は、みんなで困りましょうと。

294どくどくさぼてん2005/12/15(木) 02:58:03ID:yD6lgmp/0
>>289
> BBS_DELETE_NAME ですが,「あぼーん」と違う設定の板があるとか,
> この項目を将来的に SETTING.TXT から廃止する予定があるとか,
> そういうことがあればその部分の処理を変えた方がいいのかも知れませんが,
> どうなんでしょうか.

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

で、最近、レス削除の時に、「あぼーん」のかわりに「うふーん」やら、
スレストのときに「スレは止めても愛は止まらない!」とか書いてあるときがあるけど、
あれってどうなっとるんやろなぁ。。

>>294 最終段落

何か、新しい呪文だと思うです。
このへんのメッセージを変えるAPIは、、、別途考えようっと。

てゆうか、「あぼーん」を変えるのは、ちょっと今の仕様だと難しいかもですね。
「愛は止まらない」にするとかはSunOSさん提供のAPIで、できるですが。

297◆cZfSunOs.U 2005/12/15(木) 06:21:54ID:p57+vtBb0
>>294-296 なるほど.となると......レス通常削除用 API に引数追加して
「あぼーん」に相当する文字列を CGI 側から指定してもらうとかするのがいいんですかね.

298root▲ ★2005/12/15(木) 08:03:40ID:???0
>>297
そですね、そんなかんじかと。

どの呪文もこの2つを相当使っているようなので、
以下の共通APIを準備することにした。

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

@sub = &GetSubjectFromBackend($ita);

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

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

のように使用可能。

昨日仮対応した呪文も、追ってこれに書き換えよう。

> 昨日仮対応した呪文も、追ってこれに書き換えよう。
完了。

対応例:

# 雪だるまサーバ対応 -- 12/15/2005 by む
if (&IsSnowmanServer) {
@dat = &GetDatFromBackend($FORM{'bbs'}, $FORM{'key'});
} else {
open(DAT,"<$ondat");
@dat = <DAT>;
close(DAT);
}

301root▲ ★2005/12/15(木) 14:12:59ID:???0
で、追加でひとつお願いです。

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

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

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

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

よろしくおながいいたしますです。

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

こういうのを見るとfrontから一行分指定できたほうがよさそう。

303root▲ ★2005/12/15(木) 15:36:44ID:???0
>>302
既に、そうなっているですね。< bbsd

【鮟鱇鍋】雪だるま作戦に思いを馳せながら雑談するスレッド Part30
http://aa5.2ch.net/test/read.cgi/nanmin/1134460312/177

1時間に1回、countidsしてclearidsしていると。

305動け動けウゴウゴ2ちゃんねる2005/12/15(木) 21:45:12ID:FMxJtf9e0
どうでもいいんだけど
/_service/IPnum-xxxx-xx-xx.txt
って書き込みIP数なの
それとも読み込みも含めたIP数なの?

306動け動けウゴウゴ2ちゃんねる2005/12/15(木) 21:55:21ID:dGuM0gm90
>>305
> 読み込みも含めたIP数
それはPV********.txtじゃないの?

307◆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 をこの仕様に変更.

以上実装しますた.

308root▲ ★2005/12/16(金) 00:22:47ID:???0
>>307
はや。おつです。

落ち着いたら、bbsdの入れ替え & APIへの組み込みをば。

入れ替え完了。

概ね動作確認できたです。

これで、APIを公開できるかな。

ちょっとテストするです。
http://live22x.2ch.net/test/read.cgi/livejupiter/1134660903/

http://mumumu.mu/bbsd-delete-apilist.txt

今日は、こんなところで。
おやすみなさい。

312どくどくさぼてん2005/12/16(金) 04:47:26ID:JHq6W4mI0
そういえば、スレストの処理が微妙に従来と違うような。
いままでは、24レスのスレがスレストされたら、subject.txtには(24)って表示だったはずなのに、
>>310のスレは(25)って表示になってるですね。

あと、移転された場合も、従来は、レス数表示は移転された時点のレス数のまま、
スレタイも「移転しました。。。」ではなく移転される前のままだったけど、
移転しました。。。 (1)ってなってるように見えるです。
(通常復帰があった場合は確かにそうなるし、これは完全には確認はできてないですが、、)

313◆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 に比べるとずっと小さくなっているということもあります.

314動け動けウゴウゴ2ちゃんねる2005/12/16(金) 09:06:58ID:TDi7DV+U0
しつもん
誤爆レス削除の復旧も、お願いすれば出来たんですけど。
スレ削除と同じで。
レス削除・透明削除でも
どこかに削除前のdatは持っててくれてるのかしら。

315root▲ ★2005/12/16(金) 11:07:37ID:???0
>>313
更新したです。
で、purgeは複数指定できるですか。さすが。

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

# 削除系は、技術情報がちと。

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

で、>>307 にも言えるのですが、既に移動先に同じ名前のファイルがあったら、
どのようなことになるのかしら(EEXISTとかかな)。

317root▲ ★2005/12/16(金) 12:21:45ID:???0
少し更新。
http://mumumu.mu/bbsd-delete-apilist.txt

で、たぶん ResSakujo ResSakujo2 ResToumeiSakujo には
SureSakujo と同様、退避先パス名を追加するようになりそうな予感。

live22xではなく、live22に対して実行することになる呪文:

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

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

で、たぶんですが、

・SETTING.TXTをいじる呪文

は、私の知っているものについてはlive22xで起動かけたら、
「この呪文はバックエンドサーバで実行してください」
っていうのを表示するCGIを、仕込んでおくかんじで。

320◆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 を用意した方が
良さそうにも思いますが,従来の呪文でどのような処理をしているかがわからないと
なかなか具体的に作りづらいという面もあります......

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

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

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

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

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

で、管理人がそういった形でのデータの「あふれ」を気にするはずもなく、
おじさんが静脈系のプログラム(F22ともいう)を作って、
定期的に後始末をしていると、ぼやいていたのを聞いたことがあります。

>>320
>また,bbsd 以外のプロセスが dat を操作することに関してですが,例えば dat 落ちの
>ようにファイル自体を rename() や unlink() するのは比較的安全だと思いますが,
>dat の中身を書き換えるような操作には脆い面もあります.

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

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

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

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


# やっぱり、もう1段階覚悟を決めて、
# 標準セットの呪文を教えてもらって、読んでみるしかないのかなぁ、、、。

323ヒント2005/12/16(金) 22:47:04ID:uVe7rRDa0
$key = スレキー;
$nowtime = UNIXたいむ;
ログ保存($key$nowtime);

一度削除系CGIの仕様を詳しく聞いた方が・・・。
俺の口からはいえない。

>>323
なるほど。
どこのどなたかは存じませんが、ありがとうございます。

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

ぢぇんぬさんに、相談してみるです。

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

削除ログのcgiをいじられる上で気になるのは、
書き込みログとの整合性をどこかで取ってる筈なので、
そちら(IP・リモホ)の消しすぎや漏れが出ないかどうか、です。。

ご相談のメールを、ぢぇんぬさんと管理人に発射したです。

>>325
第一段落:
某ホテルで「(アカウントは)いつでも作るですよ」って管理人に言われて、
ものすごい勢いで、首を横に振った私がいるです。

第二段落:
そうですね。
書き込みログはバックエンドにしかないので、そのへんも問題になる可能性ありか。
まずは「ご相談」のお返事を見てから、次の行動をってかんじで。

328動け動けウゴウゴ2ちゃんねる2005/12/17(土) 00:49:20ID:J/BRnm1c0
うはw 予想通り>「いつでも」&「ものい勢いで」

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

いろいろお疲れ様です。宜しくお願いします。

329動け動けウゴウゴ2ちゃんねる2005/12/17(土) 01:00:06ID:sOKv+tXp0
削除でIPアドレスのログは弄らないよー。

330動け動けウゴウゴ2ちゃんねる2005/12/17(土) 01:03:04ID:J/BRnm1c0
>>329
削除でログが消える期間が短くなる、と聞いてますよ。
329さんがcgi制作の中の人ならごめんなさいですが。

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

そっちは、bbsdのほうで対応するためのI/Fが用意されているです。

332◆cZfSunOs.U 2005/12/17(土) 01:57:30ID:M1QED0Kk0
スレ削除(退避)時に同一パス名が存在した場合に EEXIST にするのは対応完了です.
あぼーん/ロールバック関連については,もうちょっと様子見で......

>>332
おつです。入れ替えてきます。

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

こちらも了解。

>>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をちびちびと読み始めようかと思っていたりするんですが、
# なにぶん、中身がすごくて(いい意味です)。
# 何というか、コメントではなく、中身をもって語らしめよ、みたいな。

335◆cZfSunOs.U 2005/12/17(土) 02:26:32ID:M1QED0Kk0
>>334 確かにコメントがほとんどないのは不親切かも......w
とにかくがーっと書いててコメントまで気が回らなかったんですが,
bbsd.c のおもりをどなたかに委ねるとかいうことになったら,
わかりやすいようにしなきゃですね.

>>335
> bbsd.c のおもりをどなたかに委ねるとかいうことになったら,
> わかりやすいようにしなきゃですね.

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

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

%wc -l bbs-main.cgi
4569 bbs-main.cgi
%grep # bbs-main.cgi | wc -l
1193

337◆cZfSunOs.U 2005/12/17(土) 02:40:21ID:M1QED0Kk0
>>336 まぁ,よほどのことがなければ自分の側から投げ出すってことはないと思うんで.
もっとも,天変地異はいつ起こるかわからないとか,そういうレベルの話だと神のみぞ知る,ってところですが.

>>337
それは、お互い様すね。
今日はたぶんここはこのぐらいで、たぶん、また明日以降に。

# さっきのメールの返事、管理人からはいつもどおりの「おつです。おつです。」、、、。

339◆cZfSunOs.U 2005/12/17(土) 02:53:29ID:M1QED0Kk0
>>338 乙でした.ではまた明日以降にでも.

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

(w

340動け動けウゴウゴ2ちゃんねる2005/12/17(土) 05:19:14ID:1s50wXUA0
自動返信だったりしてw

4500 行かぁ・・・
大分類して、requireとかuseにするという手もあるのかな。

>>341
これはこないだの某ホテルでも、話題になったすね。
そろそろ、やる時期かも。

ぢぇんぬさんから、>>324 のお返事をいただきました。

ということで、ぼちぼち、すすめていこうかなと。

344サザン ★2005/12/20(火) 21:06:50ID:???0
呼ばれて飛び出て(ry

こら、そこ。
冬休みとか言わないように。

あー夏休みー♪

冬厨夏草

347動け動けウゴウゴ2ちゃんねる2005/12/20(火) 22:46:48ID:PQABqzHZ0
冬厨夏繰
→冬の厨房は夏も繰り返す

春虫秋蝗?

349動け動けウゴウゴ2ちゃんねる2005/12/20(火) 23:35:21ID:PQABqzHZ0
でもbbsdは食らい尽くされない(はず

年中無休

351削ジェンヌ ★2005/12/21(水) 10:45:11ID:???0
>>343
乙です、超乙です。鬼乙です。
なんかあったら電波飛ばしてくださいですー。
私のほうでも出来るだけここ覗くようにしますです。

>>344
でたなー。

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

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

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

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

# それらに対応できるかどうかは、別の問題とゆうことでひとつ。

353動け動けウゴウゴ2ちゃんねる2005/12/21(水) 13:26:55ID:E5Vz1g/Y0
> このスレはoperateの中でもハードコアなほうらしいので、

一番ハードコアですよ、ここ
perlの追っかけなど、技術動向に強い人じゃないとついてけない

354動け動けウゴウゴ2ちゃんねる2005/12/21(水) 16:41:23ID:7Tf9jIAo0
誰かアンカーミスを訂正してやれ

いんどった!m9(・∀・)

356動け動けウゴウゴ2ちゃんねる2005/12/21(水) 18:32:56ID:gXevBIKt0
いや、あのアンカーはあっている(ということにしよう)

357動け動けウゴウゴ2ちゃんねる2005/12/21(水) 18:52:13ID:yWlwHXlR0
いんどメーターを起動。結果95いんど。どうみても(ry

358 ◆inODPD6owQ 2005/12/21(水) 21:31:12ID:xcs9hiel0
|ω・`)ソォー...

359◆cZfSunOs.U 2005/12/22(木) 06:21:25ID:Ht4ddCf/0
呪文の中の人登場で,対応も進むのかな......

さて、ここもぼちぼち動かそうかなと思います。
本格対応は、お雑煮食べながらという感じになりそうな予感ですが。

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

パス1 を パス2 に単純にコピー、
パス2が既に存在したら EEXIST エラー、といった感じで。

361◆cZfSunOs.U 2005/12/25(日) 01:44:36ID:kC90C2xX0
>>360 そうですね.ロールバック対応が完了すれば,呪文も一通り対応完了でしょうし.

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

了解です.

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

実装しますた.

>>362
おつです、おつです。

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

# 元気に動いて、実況を支え続けているです。はい。

bbsd 更新したです。

これでひととおりのAPIがそろった気がするので、
こちらも、ぼちぼちと。

更新したです。
まだ、組んでいないものも含む。
http://mumumu.mu/snowman/bbsd-delete-apilist.txt

で、自分がわからんくなるんで、こういうのも作ってみたです。
間違ってたり不足だったりした場合、ご指摘を。
http://mumumu.mu/snowman/bbsd-apilist.txt

366◆cZfSunOs.U 2005/12/25(日) 04:38:30ID:kC90C2xX0
>>365 乙です.

>http://mumumu.mu/snowman/bbsd-apilist.txt

ざっと見たところでは,それで Ok だと思います.

おふろ入っている間に思いついたので。

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

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

ということで、本日はここまでで。

>>367 の心は、
こういうふうにすれば、バックエンドのbbsdを
少しでも軽くできるんじゃないかなぁと、そうゆうことで。

いずれにせよ面白そうなので、ちと考えてみるです。
というかたぶんここで、例によって。

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

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

・live16 live18 live20

あたりですか。

>>369
あら、タブが違ったですね。ううむ。

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

>>371
おぉ、すばらしいです。

あとで、やってみるです。
これで、規制系DBをフロント(というか別サーバ)にもっていけると。

対応したです。
これで、live22のbbsdからこれらの仕事を分離できたと。

560 名前: ◆MUMUMUhnYI [sage] 投稿日:2005/12/27(火) 04:23:13 ID:hh69QxeR0 ?
# 051227 bbsd複数体制(書き込み・IDの種用とDB保持用)に対応
# Samba24、●スレ立て、timecount/timecloseのDBのおもりを別サーバで
# これらに関してはbbsdがダウンしていてもとりあえず書き込みは可能に by む

>>373 により、Samba24のデータをlive22x1のbbsdで面倒見るようになったので、
例の数値が出るサーバが、live22x1に変更になったです。>どくどくさぼてんさん

今後の作業をすすめていく場所ができました。

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

ローカル雪だるまで動いています。
各種呪文等は、今後ここでごにょごにょと対応を進めていくことになるのかなと。

376動け動けウゴウゴ2ちゃんねる2005/12/28(水) 11:55:43ID:euSEZST20
>>375
削除の呪文を唱えるのに、かなり手間取るようなのですが
せめて板名を変えてもらえませんか?

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

運営の人には面白い駄洒落なのかもしれませんが
荒らし公認ととられかねない板名は、やめて欲しいです。

377root▲ ★2005/12/28(水) 12:22:58ID:???0
>>376
> 削除の呪文を唱えるのに、かなり手間取るようなのですが

そうなんですか。

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

板名ですが、おじさん流の洒落すね。
私は正直あんまり気にしてないですが、ちょっとびっくりしたです。
(フォルダ名alaskaをお願いしたのは私ですが、その洒落は私は全く思いつかなかった)

>>377 に自己突っ込み

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

ドウモスミマセン、コノトオリデスのAA↓

379動け動けウゴウゴ2ちゃんねる2005/12/28(水) 12:42:55ID:Irf37BLl0
要するに>>376さんは

削除が大変なんだからせめて削除対象になるレスを増やすような板名はやめちくれ

ってことかな

380動け動けウゴウゴ2ちゃんねる2005/12/28(水) 12:59:02ID:euSEZST20
>>379
あいあい。

そういう話ですか。>>379-380

SETTING.TXTを変えるのは私でもさっくりやれますが(板名にこだわりないし)、
kakolog.html とか kako/ とかは、どうすればいいのかな。

とりあえず、SETTING.TXTだけ変えてみた。

383動け動けウゴウゴ2ちゃんねる2005/12/28(水) 14:01:17ID:rSzl2nrU0
隠し板扱いだし、そもそも書き込み自体があんまりないような気がする。
そんなに気にしなくてもいいんじゃないの?

対外的(要請板取り扱いみたいなの)があるとやっぱり問題かとも思うけどねぇ
まあないか。

385動け動けウゴウゴ2ちゃんねる2005/12/28(水) 22:38:23ID:0Hz3xHdT0
探知はされてるよ
http://snow.2ch.net/test/read.cgi/alaska/1135699588/5-6

>>381
>kakolog.html とか kako/ とかは
これそこらじゅうでむちゃくちゃになってるから
窓口決めといて

386削除車 ★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

よろしくお願いします。

387◆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 に虫がいるかも
# ってのもあり得なくはないのかも......

388◆cZfSunOs.U 2006/01/03(火) 11:57:56ID:wRrC+tnj0
>>386-387 について......「要観察」といっても,現状だと ENOENT 以外が発生しても
何が起きたか見当もつかないんですよね.ということで,ENOENT 以外が発生したら
エラーリターンになる($errmsg にメッセージを返す)ようにしますた.

>>388
お、年始早々bbsdの更新ですか。

やっておくです。
APIのほうでも、ちゃんとエラーチェックしないといかんということですね。

>>388-389 done.

APIのほうは、帰京後にぼちぼちとってかんじで。

392◆cZfSunOs.U 2006/01/03(火) 22:58:06ID:wRrC+tnj0
>>389-391 乙です.まぁ $errmsg をそのまま表示でいいんじゃないかと思います.
どちらにせよ現状では何が起きたのかもわからないので,それ以外やりようがないでしょうし.

393動け動けウゴウゴ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に載っているスレは、レス数を数えて
直してはくれないはずですし。
古い完全復帰なら直してくれた気はするけど、どうだったかな。

394◆cZfSunOs.U 2006/01/13(金) 21:39:42ID:lLbB53de0
>>393 う〜む......datがおかしくなった原因は不明ですが......

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

復帰(bbsd の repair コマンド)を実行すればカウントし直します.

395root▲ ★2006/01/14(土) 01:15:29ID:???0
>>393-394
うーむ、呪文対応をはやいとこすすめないと。

396動け動けウゴウゴ2ちゃんねる2006/01/14(土) 02:06:58ID:nfb77U290
どもー。
こちらさんの復帰はレス数も直してくれるのですね。
では、復帰を依頼する方向で。

397動け動けウゴウゴ2ちゃんねる2006/01/14(土) 07:27:58ID:nfb77U290
復帰してもらって、直りました。
おつかー。

398動け動けウゴウゴ2ちゃんねる2006/03/01(水) 00:35:58ID:U9QeNy7cO
管理人の方々お疲れ様でつ。

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

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

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

#タイムアウトを
#
##タイム
##アウト
##ヨヨイノ
##
##
##ブーン(AAry
#
#にして欲しい。みたことないけどw

399root▲ ★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 は前に作ってもらったので、技術的にはできるはず。

ここか

>>399
汎用 touch ルーチン(スレッド924用)を流用することで、対応できました。
これで、plus 系もやろうと思えば雪だるまにできるはず。

402動け動けウゴウゴ2ちゃんねる2006/04/19(水) 23:20:26ID:lx05MFdg0
rootさん、奥さんとはうまくいってますか?

403ベースボール2006/06/27(火) 21:31:46ID:8rvCdbfh0
>>401
お前は死刑だ 不倫関係があったのでこれより死刑に処する

404動け動けウゴウゴ2ちゃんねる2006/07/19(水) 14:25:46ID:rV9H21Dh0
 

405動け動けウゴウゴ2ちゃんねる2006/07/21(金) 05:34:40ID:pl9VQSh70
   

406動け動けウゴウゴ2ちゃんねる2006/07/21(金) 22:53:04ID:5K2fz8Bg0

407動け動けウゴウゴ2ちゃんねる2006/08/07(月) 23:33:59ID:bU6gYJaH0
アリの巣コロリってあるじゃん
蟻の行列にポンと置くと一瞬ビックリして列が乱れる
邪魔だなと言わんばかりに迂回する列が出来る
そのうち好奇心旺盛な一匹がアリの巣コロリに入る
そいつをマネして何匹も入る
毒とも知らずにツブツブを運び出す
一匹が一粒づつ
いつのまにか行列はアリの巣コロリが折り返し地点になる
黄色い粒と黒い蟻が作り出す模様は綺麗で見てて楽しい
一匹が一粒づつ丁寧にせっせと毒の粒を運ぶ
せっせとせっせとせっせとせっせと
蟻さんって働き者だなと思う
俺も頑張らなきゃなと思う
次の日あれほど沢山いて俺を困らせた蟻が一匹もいない
ほんとにいない
探してもいない
泣きたくなった


このレスを見た人は4日後にあなたの大切な人がいなくなるでしょう
それが嫌ならこのレスを5つの板にコピペしてください
信じるか信じないかはあなた次第です

408動け動けウゴウゴ2ちゃんねる2006/08/08(火) 20:49:28ID:GiwVM/+S0
そんな劇的な効果無いぞアレ。

409動け動けウゴウゴ2ちゃんねる2006/08/10(木) 12:28:35ID:O46WuvDhP
つか、アレを置くほど蟻が発生してる家ってあるの?

410削ジェンヌ▲ ★2006/08/24(木) 15:59:00ID:???0
rootさん、おつですおつですー。

http://qb5.2ch.net/test/read.cgi/sakud/1042518892/896

をお願いしますー。

411動け動けウゴウゴ2ちゃんねる2006/08/24(木) 16:02:17ID:JAnnO/HV0

412削ジェンヌ▲ ★2006/08/24(木) 16:03:17ID:???0
ごっ
ごめんなさいっ

雪だるまスレってここじゃなかったのか。。。

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

# 落ち着いたら、このスレも動かしましょうってかんじで。

414動け動けウゴウゴ2ちゃんねる2006/12/25(月) 15:58:39ID:/32D0MCTO
%

415ひろゆき@どうやら管理人 ★2007/01/04(木) 19:38:09ID:???0?S★(102333)
mod_cacheとmod_proxyを併用してる場合のキャッシュのヒット率って
どこを見るとわかるんでしょうか、、、

416 株価【1600】 ▲▲▲▲ ◆cZfSunOs.U 2007/01/05(金) 00:10:58ID:tB3xz27F0
>>415 mod_cache にはヒット率を記録する仕組みはなさそうですね.
調べるとすれば,アクセスログで %{Age}o つまり Age レスポンスヘッダを記録して,
Age ヘッダの有無の比率から算出するとかかなぁ......

417ひろゆき@どうやら管理人 ★2007/01/05(金) 01:50:15ID:???0?S★(102334)
おぉ、、ログにそんな設定ができるんですか、
どもです。どもです。

418動け動けウゴウゴ2ちゃんねる2007/01/05(金) 11:38:37ID:gbX+QKQK0
LogLevel debug にしてみるとか。実運用中は無理ですけどね。

あぼーん

420 株価【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");
        # 同上

421root▲▲ ★2007/02/21(水) 21:56:32ID:???0?PLT(23500)
>>420
おー。

# 今日はかなーり体調不良につき、bbsd の更新などは後で、、、。

422 株価【1050】 △△ ◆cZfSunOs.U 2007/03/02(金) 21:47:39ID:pl9SnUz90
んなわけで,呪文対応もぼちぼちやってこうかなぁ,と思っている今日この頃だったり......

>>421 手の空いてる時にでもおながいします<bbsd 更新

423root▲▲ ★2007/03/05(月) 15:51:55ID:???0?PLT(23632)
>>422
おぉ、了解です。

424 株価【905】 △△ ◆cZfSunOs.U 2007/03/08(木) 23:00:40ID:UC2ma8PH0
一通り対応したつもり......ってことで,とりあえず snow と dso に入れてみますた.
ただ,snow で動いてる bbsd は古いままのようなので,更新してもらうまでは
ちゃんと動かない呪文もあると思います.一方,dso では今は bbsd を使ってませんが,
その状態でもちゃんと動くかどうかの確認のために入れてます.

425root▲▲ ★2007/03/08(木) 23:07:28ID:???0?PLT(23632)
出張から戻りました。

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

- live23b
- live24b
- snow
- (news20b)

かな。

426 株価【905】 △△ ◆cZfSunOs.U 2007/03/08(木) 23:14:34ID:UC2ma8PH0
>>425 乙です.今 bbsd が動いてるのはそのあたりですね.

427root▲▲ ★2007/03/08(木) 23:20:53ID:???0?PLT(23632)
>>425
done. のはず。

428 株価【905】 △△ ◆cZfSunOs.U 2007/03/08(木) 23:26:04ID:UC2ma8PH0
>>427 乙です.

ってことで,削除人などの方々に適宜テストしてもらえれば,と......

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

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

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

☆ 連絡&報告 8 ☆
http://qb5.2ch.net/test/read.cgi/saku/1166164805/

430root▲▲ ★2007/03/08(木) 23:37:48ID:???0?PLT(23632)
おっと、>>428 ですね。 < アンカー

今日は出張帰りでへろへろなんで、ちと早寝コースで。
# ホテルの部屋の乾燥がひどくて、すっかり喉をやられた、、、。

431root▲▲ ★2007/03/08(木) 23:40:59ID:???0?PLT(23632)
で、この作業が終わって、標準呪文に組み込まれれば、
雪だるまサーバ(live23/24)で削除系作業をした場合でも、
復帰作業等が不要になるはずと。

432 株価【905】 △△ ◆cZfSunOs.U 2007/03/08(木) 23:42:53ID:UC2ma8PH0
>>429-430 そうですね,ではそちらで呼びかけてみます.
お休みなさい&お大事に.

433 株価【905】 △△ ◆cZfSunOs.U 2007/03/08(木) 23:44:44ID:UC2ma8PH0
>>431 ですね.積み残しだった懸案が片付くことになる,と.

434時計坂の削除屋 ★2007/03/09(金) 00:08:27ID:???0
レス削除 透明レス削除 スレッド移動 スレッド削除 スレッド停止
をそれぞれ3つの掲示板で試してみました。

通常どおり起動しますよ。
削除処理はしてませんけど。

http://snow.2ch.net/alaska/ (bbsd 使用)
http://dso.2ch.net/myanmar/ (bbsd 未使用)
http://dso.2ch.net/yangon/ (bbsd 未使用)

435 株価【1095】 △△ ◆cZfSunOs.U 2007/03/09(金) 00:14:59ID:jn3Jaewt0
>>434 どもども,ご協力ありがとうございます.

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

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

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

っていうのは,ひょっとして呪文を唱えてもあぼーんされなかったとか......?

436削除ふぶき ★2007/03/09(金) 00:20:10ID:???0
乙ですー
実際に削除までした方がいいのかな?
動作テスト用、削除用スレとかないとやりにくいのが
まじめな(以下自粛

437時計坂の削除屋 ★2007/03/09(金) 00:20:37ID:???0
>>435
削除スクリプト通常どおり動いていましたよ。
ただ実際に削除はしなかったです。

テストスレッドとかあれば実際に削除してみますけど。

438 株価【1095】 △△ ◆cZfSunOs.U 2007/03/09(金) 00:24:20ID:jn3Jaewt0
>>436 >>437 なるほど,そういう意味ですか.

snow, dso はテスト鯖なんで,適当にスレ立てたりレス付けたりして
自作自演あぼーんでもいいのではないかとw ただ,こちらでも
実験用スレ立ててみますかね......

439動け動けウゴウゴ2ちゃんねる2007/03/09(金) 00:25:38ID:vRxIVK4W0
乱立したらバーボン送りになった件について

440 ◆IZUMI162i6 2007/03/09(金) 00:25:46ID:5hSsQfMX0
http://snow.2ch.net/test/read.cgi/alaska/1148818479/75-81
レス削除と透明のテストどぞ。

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


スレについてはどうだろう?テスト用のスレとかがしがし立てて良い板なんすかね?

441動け動けウゴウゴ2ちゃんねる2007/03/09(金) 00:26:28ID:eDH6JzrU0
じゃあ俺が糞スレ建立してくるからお前ら遠慮なく呪文唱えてくれ

442 株価【1095】 △△ ◆cZfSunOs.U 2007/03/09(金) 00:29:22ID:jn3Jaewt0
>>438 と思ったら,どなたかがちょうどいい具合にスレ乱立してくれてましたw

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

>>441 よろしくw

443時計坂の削除屋 ★2007/03/09(金) 00:36:08ID:???0
>>440
レス削除 透明削除 完了です。
スレッド移転、スレッド停止、スレッド削除ともアラスカはできました。

444削除ふぶき ★2007/03/09(金) 00:37:59ID:???0
みなさまおつです。
被りそうなのと、寝坊がこわいので撤収。
お役にたてなくてスマソ。
過去ログスレ呪文のテストが必要だったら、移転跡が落ちてからそれを、がいいかも。

445時計坂の削除屋 ★2007/03/09(金) 00:39:08ID:???0
http://dso.2ch.net/myanmar/ ミャンマーも5種類削除できました。

446stream ◆PNstream2s 2007/03/09(金) 00:41:23ID:MCp7jzfr0
http://snow.2ch.net/alaska/dat/1173367445.dat

datサイズが0になってるよ

447時計坂の削除屋 ★2007/03/09(金) 00:45:09ID:???0
>>444
了解です。

http://dso.2ch.net/yangon/ ヤンゴンも5種類削除できました。

448 株価【1095】 △△ ◆cZfSunOs.U 2007/03/09(金) 00:47:54ID:jn3Jaewt0
>>443-445 >>447 乙です.一通り無難に動いてるって感じですかね.
1日ぐらい様子見て,特に問題なさそうなら live23, live24 に投入の方向で.

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


と思ったら......
>>446 う〜む,そのスレはどういう経緯をたどったんだろう......?

449動け動けウゴウゴ2ちゃんねる2007/03/09(金) 01:06:28ID:vRxIVK4W0
ごめんなさい、全レス透明削除したら打つ手無し、

450動け動けウゴウゴ2ちゃんねる2007/03/09(金) 01:08:55ID:vRxIVK4W0
最後になんとかなったっぽい

451 株価【1095】 △△ ◆cZfSunOs.U 2007/03/09(金) 01:14:09ID:jn3Jaewt0
>>449-450 あぁ,そういうことですか(bbsd の誤作動かとヒヤヒヤしてました).
これは,今までの元の呪文でも全レス透明あぼーんは可能なようだったので,
仕様ってことでいいのかな......?

452動け動けウゴウゴ2ちゃんねる2007/03/09(金) 01:21:17ID:aTlD1QYf0
全レス削除って・・・鷺が賑わうだけってことで
試すにはもってこいだったわけですかw
そんなこと実際にはやらない筈だから放置でいいんじゃないかとw



453動け動けウゴウゴ2ちゃんねる2007/03/09(金) 01:25:02ID:vRxIVK4W0
良いと思いますー。

454動け動けウゴウゴ2ちゃんねる2007/03/09(金) 02:08:04ID:tpfrBcum0
subbackも変わった?

455 株価【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 への投入時に別途メールででも.

456 株価【1010】 △△ ◆cZfSunOs.U 2007/03/09(金) 23:08:44ID:jn3Jaewt0
さて......特に問題なさげなので,live23, live24 に bbsd 対応呪文入れますた.
で,>>455 の振り分けの件についてはむむむさんにメールをお送りしますので,
mod_proxy の再設定おながいします.

あと,今回対応した呪文は bbsd 使用/未使用どちらの鯖にも対応してる
ということで,原本にマージしていいのかな(bbs.cgi の原本と同じ鯖かな)?

457削除ふぶき ★2007/03/10(土) 01:17:36ID:???0
あの、、この件?でむむむさんに、メール送りました。

458 株価【1145】 △△ ◆cZfSunOs.U 2007/03/10(土) 09:43:26ID:oaQpdUtz0
今回対応した呪文に何らかの動作上の不具合があって,それがここに書くのが
はばかられる内容のことであれば,私の方にもメールを頂けると幸いです.
sunos (at) saita.ma

459削除ふぶき ★2007/03/10(土) 17:16:39ID:???0
送らせていただきました。よろしくです。

460 株価【1010】 △△ ◆cZfSunOs.U 2007/03/10(土) 20:03:22ID:oaQpdUtz0
>>459 メール拝見しました&お返事お送りしましたので,よろしくです.

461削除ふぶき ★2007/03/10(土) 21:50:27ID:???0
いただきました。ありがとうございました。よろしくお願いします。

462root▲▲ ★2007/03/10(土) 23:13:58ID:???0?PLT(23632)
>>456
> むむむさんにメールをお送りしますので,
> mod_proxy の再設定おながいします.

を、したつもりです。(お返事もしました)

463 株価【1010】 △△ ◆cZfSunOs.U 2007/03/10(土) 23:31:22ID:oaQpdUtz0
>>462 体調よくない中,乙です.
これで,やっと雪だるまもちゃんとした形になったかな.


# http://qb5.2ch.net/test/read.cgi/operate/1168773296/949
# もちょっとびっくりしましたが,調べてみると
# 新呪文投入前のスレあぼーんが原因だったようで,一安心.

464削除ふぶき ★2007/03/10(土) 23:33:49ID:???0
乙です。乙です。
確認です。ありがとうございました。

465 株価【1050】 △△ ◆cZfSunOs.U 2007/03/11(日) 01:35:59ID:DiueM2R90
bbs.cgi 原本があるのと同じ鯖にも入れますた<bbsd 対応呪文
(今までのやつはホームディレクトリ配下の某所にバックアップしてます).

466動け動けウゴウゴ2ちゃんねる2007/04/22(日) 00:10:29ID:8WBoXkLp0

467 株価【801】 △△ ◆cZfSunOs.U 2007/04/23(月) 05:26:03ID:lHNIZi540
>>466 ここ数日のはあぼーんによるものじゃないっぽいので,F15 / F22 なんですかねぇ......
とりあえず,F15 / F22 で purge しても差分がまだ残ってるなら,
autopurge してログにも記録するようにしてみましたが,さて......

468 株価【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,
ということらしい.

469動け動けウゴウゴ2ちゃんねる2007/05/23(水) 03:20:28ID:aQ/86Eny0
アトポス死ね

470[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を改良すればいいのかしら。

471動け動けウゴウゴ2ちゃんねる2007/06/19(火) 21:51:05ID:bHoEbM+C0
2chのサービスでもないのに

472[es] ◆MUMUMUhnYI 2007/06/19(火) 22:06:44ID:7eb9XHZT0
まぁ、一般的に広告内でその板名を使う、
なんてことは今後もありそうなので、
入れておいてもきっとバチは当たらないのかなと。

473動け動けウゴウゴ2ちゃんねる2007/06/19(火) 23:23:57ID:bHoEbM+C0
でもyakin広告は、普通の広告のようなtxtの貼り付けじゃなくて、
requireしたperlプログラムで書き出してるよね?

474root▲▲ ★2007/06/19(火) 23:43:54ID:???0?PLT(74072)
>>473
雪だるまシステムでは、あの部分もtxt貼り付けですね。

475動け動けウゴウゴ2ちゃんねる2007/06/19(火) 23:45:42ID:bHoEbM+C0
なんと

476root▲▲ ★2007/06/19(火) 23:50:23ID:???0?PLT(74072)
そもそも index.html を Perl で生成していないし。< 雪だるまシステム

477 株価【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/

478root▲▲ ★2007/06/20(水) 00:00:57ID:???0?PLT(74072)
>>477 第一段落
今bbs.cgiの該当部分読んできました。
なるほど、確かにそういう形なのかもしれないですね。

>>447 第二段落
なるほど、そういうふうになっていると。

479 株価【840】 △△ ◆cZfSunOs.U 2007/06/21(木) 11:01:36ID:iyrmz4650
>>470-478
>bbs.cgi から「あのファイル.cgi」中の広告用サブルーチンを呼び出す部分を変え

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

ただ,bbsd で広告ファイルの内容を挿入する際には mmap() したのをそのまま
ダイレクトに出力してるわけですが,中身をパースして板名に置き換えるマークを探して
置換するとかいちいちやることになると mmap() するメリットも失われてくるので,
bbsd 側の処理は変更せず,その代わり F22 であらかじめ広告テキストファイルを各板ごとに作成しておき,
bbsd 呼び出し時に板ごとに異なるファイル名を指定するという形にしますた.

480root▲▲ ★2007/06/21(木) 11:34:10ID:???0?PLT(74074)
>>479
news22の現状見ました。なるほど。

ということは、live23等の各bbsdも更新ということでいいのかしら。

481 株価【840】 △△ ◆cZfSunOs.U 2007/06/21(木) 11:36:46ID:iyrmz4650
>>480 bbsd 側は変更してませんので,更新は不要です.

482root▲▲ ★2007/06/21(木) 11:40:49ID:???0?PLT(74074)
>>481
あ、わかった。
まだ見てないけど、bbs.cgi のあそこの引数をむぎゅしたですか。了解です。

483ErisyEioIylmJqWsZR2007/08/21(火) 15:46:25ID:D5uz5r440
1GaoXW <a href="http://gamztkbhqrnd.com/">gamztkbhqrnd</a>, [url=http://ukwbgdiodofk.com/]ukwbgdiodofk[/url], [link=http://plfqokpuaksq.com/]plfqokpuaksq[/link], http://bfydajhmwucq.com/

484動け動けウゴウゴ2ちゃんねる2007/08/28(火) 09:31:38ID:VVZnarch0
read.js関連のスレってもう見つからないみたいだけど、そのネタここでいいの?

read.jsモードにして、Firefoxでいろんなスレ見てると、
時々永久ループに陥るのか、固まってしまってアプリ落とすしかなくなってしまうよ
バグなのかな。1日数回、かならずなるよ。
もしスレ違いなら伝えておいて!よろ!

485 株価【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

486Kawaierus2007/10/07(日) 02:39:31ID:K0lYDAwP0
Do you need fo free hosting? ?[url=http://kawaiaea.iquebec.com/page10.htmll]Best free hosting list[/url]

487ヾ(゚パ)ノ ◆f0.zuburi6 2007/10/07(日) 02:52:51ID:n9jW2If00
ここでねえ…

488動け動けウゴウゴ2ちゃんねる2007/10/08(月) 01:12:20ID:+rrsx8sf0
★板のスレ一覧復帰&修正依頼30★
http://qb5.2ch.net/test/read.cgi/operate/1174446163/780,781

ローカルbbsdに対応していない呪文があるのかも

489 株価【875】 △△ ◆cZfSunOs.U 2007/10/08(月) 02:53:35ID:z7Qtgb130
>>488 それはたぶん,当初 .htaccess の設定が不完全だったため,
しばらく F22 等が bbsd モードで動いてなかったためじゃないかと.
http://qb5.2ch.net/test/read.cgi/operate/1183341095/103

490動け動けウゴウゴ2ちゃんねる2007/10/12(金) 18:24:47ID:X5TBOJ+10
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね
アトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ねアトポス死ね

491動け動けウゴウゴ2ちゃんねる2007/10/26(金) 01:44:28ID:eZfUk6Va0
bbs.cgi制作者は脳に欠陥があるといわざるを得ない

492動け動けウゴウゴ2ちゃんねる2007/10/26(金) 14:30:56ID:79xBJhOj0
その「脳に欠陥がある」人以下の役立たずの人間がほざいてます。

493i125-201-190-208.s05.a043.ap.plala.or.jp2007/10/26(金) 15:48:54ID:WYwtoW0E0
a

494動け動けウゴウゴ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%)
スレ立てや他のスレの方にもコピペしていただければ幸いです。
**************** 応援頼む!*****************

495XRumakTheBest2007/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

496izpWUSOOWGrvgAAH2007/11/14(水) 10:19:40ID:FBfXAXHv0
JqIJ17 <a href="http://ptmqrhasuhml.com/">ptmqrhasuhml</a>, [url=http://xftrdhszzbkg.com/]xftrdhszzbkg[/url], [link=http://hksudvxaygwb.com/]hksudvxaygwb[/link], http://zlqurlovhhbc.com/

497rbsUuYuHvjkjYpVXcY2007/11/14(水) 11:21:31ID:hTMOYrKy0
qp0Y00 <a href="http://piumsyzxubud.com/">piumsyzxubud</a>, [url=http://vprpmjowmtri.com/]vprpmjowmtri[/url], [link=http://mkgcgtelndia.com/]mkgcgtelndia[/link], http://ubcfehiiikta.com/

498動け動けウゴウゴ2ちゃんねる2007/11/23(金) 16:35:24ID:HO5UpMpm0
男性廃墟露出の頂点

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



げん(元)ちゃんは、
男性の175cm115kg以上の受けのパートナ募集中だそうです。
詳しくはげん(元)の心の旅のメールフォームから問い合わせてね。

■ このスレッドは過去ログ倉庫に格納されています