peko鯖の稼動によりボトルネックの一つである事がより明らかになった
bbs.cgi作り直しプロジェクトです。
【開発環境の工事現場】
また挑戦。@2ch掲示板 http://dso.2ch.net/myanmar/
また挑戦2。@2ch掲示板 http://dso.2ch.net/yangon/
関連スレなどは >>2-5 くらい
探検
bbs.cgi再開発プロジェクト6
■ このスレッドは過去ログ倉庫に格納されています
2005/04/10(日) 16:15:47ID:a6rtBqIi0
696root▲ ★
NGNG >>695
どもです。
軽いといってもちょっとコストのかかりそうな処理なので、
SpeedyCGIの特性を生かして、$cidr->add() は出航時の1回だけにしました。
こうしておけば、重い初期化と登録は1回だけで済むはずかなと。
こんなかんじで。$FOX は出航時に初期化して使う一連のグローバル変数群。
use Net::CIDR::Lite;
$FOX->{AIREDGECIDR} = Net::CIDR::Lite->new;
# IPアドレスブロック一覧(CIDR形式)
# アドレスレンジが追加された場合、ここに加えていく
# http://www.willcom-inc.com/p_s/products/airh_phone/ip.html
my @airedgecidr = (
"61.198.142.0/24",
"61.198.249.0/24", "61.198.250.0/24",
"61.198.253.0/24", "61.198.254.0/24", "61.198.255.0/24",
"61.204.0.0/24",
"61.204.3.0/25",
"61.204.4.0/24",
"61.204.6.0/25",
"210.168.246.0/24", "210.168.247.0/24",
"211.18.235.0/24",
"211.18.238.0/24", "211.18.239.0/24",
"219.108.0.0/24", "219.108.1.0/24", "219.108.2.0/24", "219.108.3.0/24",
"219.108.4.0/24", "219.108.5.0/24", "219.108.6.0/24", "219.108.7.0/24",
"221.119.0.0/24", "221.119.1.0/24", "221.119.2.0/24", "221.119.3.0/24",
"221.119.4.0/24", "221.119.5.0/24", "221.119.6.0/24", "221.119.7.0/24",
"221.119.8.0/24", "221.119.9.0/24" );
# CIDRリストをあらかじめ登録しておく
# こうしておくことで、重い初期化はbbs.cgi出航時の1回で済む
for (my $i = 0; $i < @airedgecidr; $i++)
{
$FOX->{AIREDGECIDR}->add($airedgecidr[$i]);
}
どもです。
軽いといってもちょっとコストのかかりそうな処理なので、
SpeedyCGIの特性を生かして、$cidr->add() は出航時の1回だけにしました。
こうしておけば、重い初期化と登録は1回だけで済むはずかなと。
こんなかんじで。$FOX は出航時に初期化して使う一連のグローバル変数群。
use Net::CIDR::Lite;
$FOX->{AIREDGECIDR} = Net::CIDR::Lite->new;
# IPアドレスブロック一覧(CIDR形式)
# アドレスレンジが追加された場合、ここに加えていく
# http://www.willcom-inc.com/p_s/products/airh_phone/ip.html
my @airedgecidr = (
"61.198.142.0/24",
"61.198.249.0/24", "61.198.250.0/24",
"61.198.253.0/24", "61.198.254.0/24", "61.198.255.0/24",
"61.204.0.0/24",
"61.204.3.0/25",
"61.204.4.0/24",
"61.204.6.0/25",
"210.168.246.0/24", "210.168.247.0/24",
"211.18.235.0/24",
"211.18.238.0/24", "211.18.239.0/24",
"219.108.0.0/24", "219.108.1.0/24", "219.108.2.0/24", "219.108.3.0/24",
"219.108.4.0/24", "219.108.5.0/24", "219.108.6.0/24", "219.108.7.0/24",
"221.119.0.0/24", "221.119.1.0/24", "221.119.2.0/24", "221.119.3.0/24",
"221.119.4.0/24", "221.119.5.0/24", "221.119.6.0/24", "221.119.7.0/24",
"221.119.8.0/24", "221.119.9.0/24" );
# CIDRリストをあらかじめ登録しておく
# こうしておくことで、重い初期化はbbs.cgi出航時の1回で済む
for (my $i = 0; $i < @airedgecidr; $i++)
{
$FOX->{AIREDGECIDR}->add($airedgecidr[$i]);
}
697root▲ ★
NGNG で、チェック用サブルーチンはこんなふう。
#############################################################################
# AIR-EDGE PHONEセンターのIPアドレスかどうかチェックする
#############################################################################
sub mumumuIsIP4AirEdgePhone
{
my ($raddr) = @_;
# CIDRリストに該当があるかどうかチェックする
$FOX->{AIREDGECIDR}->find($raddr);
}
#############################################################################
# AIR-EDGE PHONEセンターのIPアドレスかどうかチェックする
#############################################################################
sub mumumuIsIP4AirEdgePhone
{
my ($raddr) = @_;
# CIDRリストに該当があるかどうかチェックする
$FOX->{AIREDGECIDR}->find($raddr);
}
698root▲ ★
NGNG こうだった。
#############################################################################
# AIR-EDGE PHONEセンターのIPアドレスかどうかチェックする
#############################################################################
sub mumumuIsIP4AirEdgePhone
{
my ($raddr) = @_;
# CIDRリストに該当があるかどうかチェックする
return $FOX->{AIREDGECIDR}->find($raddr);
}
#############################################################################
# AIR-EDGE PHONEセンターのIPアドレスかどうかチェックする
#############################################################################
sub mumumuIsIP4AirEdgePhone
{
my ($raddr) = @_;
# CIDRリストに該当があるかどうかチェックする
return $FOX->{AIREDGECIDR}->find($raddr);
}
699root▲ ★
NGNG2005/06/24(金) 08:21:00ID:M5iaI72S0
>>696
NetCIDRは、配列の参照受け取ったりはしないの?
まあ、数十回のコピーならさしてコストかかんないだろうけど。
# CIDRリストをあらかじめ登録しておく
# こうしておくことで、重い初期化はbbs.cgi出航時の1回で済む
for (my $i = 0; $i < @airedgecidr; $i++)
{
$FOX->{AIREDGECIDR}->add($airedgecidr[$i]);
}
↓の方がPerl的かも。処理速度は殆ど変わらんと思うけど。
foreach my $cidr (@airedgecidr){
$FOX->{AIREDGECIDR}->add($cidr);
}
>>697-698
Perlの世界では暗黙に最後の評価値がretrurn値になるので、
どっちでもOKですよ。前者の記法を好む人も多い。
こちらは完全に好みの問題だけど。
しかしこれ関数化する意味あるの?@FOXが呼び出し元のスコープにないとか?
NetCIDRは、配列の参照受け取ったりはしないの?
まあ、数十回のコピーならさしてコストかかんないだろうけど。
# CIDRリストをあらかじめ登録しておく
# こうしておくことで、重い初期化はbbs.cgi出航時の1回で済む
for (my $i = 0; $i < @airedgecidr; $i++)
{
$FOX->{AIREDGECIDR}->add($airedgecidr[$i]);
}
↓の方がPerl的かも。処理速度は殆ど変わらんと思うけど。
foreach my $cidr (@airedgecidr){
$FOX->{AIREDGECIDR}->add($cidr);
}
>>697-698
Perlの世界では暗黙に最後の評価値がretrurn値になるので、
どっちでもOKですよ。前者の記法を好む人も多い。
こちらは完全に好みの問題だけど。
しかしこれ関数化する意味あるの?@FOXが呼び出し元のスコープにないとか?
2005/06/24(金) 08:27:05ID:skdIbacY0
2005/06/24(金) 08:31:08ID:skdIbacY0
あらかぶりましたわ
703root▲ ★
NGNG >>700
下の3行のほうがよさげですね。それにしてみるです。
(そのへんの作法にくわしくなかったりします)
で、SpeedyCGI 化している今の bbs.cgi では、
出航時に1回しか設定しないところ(SETTING.TXT / 広告チェック用リスト / ローカルルール等)は、
まとめて一発関数呼んで(initFOX)、そこでやっているです。
で、上記は、initFOX内に追加したと。
下の3行のほうがよさげですね。それにしてみるです。
(そのへんの作法にくわしくなかったりします)
で、SpeedyCGI 化している今の bbs.cgi では、
出航時に1回しか設定しないところ(SETTING.TXT / 広告チェック用リスト / ローカルルール等)は、
まとめて一発関数呼んで(initFOX)、そこでやっているです。
で、上記は、initFOX内に追加したと。
704ヽ( ・∀・)ノ ≡●ウンコー ◆worRE2unko
NGNG >>631
時間によってかなり人数違うの
時間によってかなり人数違うの
705FOX ★
2005/06/24(金) 13:59:27ID:???0 そして、あとから読む人がまた悩むのであった、、、
706讃岐フォアンフォアン▲ ◆MylTDX..QI
NGNG エェェ(´Д`)ェェエ
707root▲ ★
NGNG >>705
できるだけ「おじさんのインデント」とか「おじさんの書き方」に合わせるようには、
しているわけです。サブルーチンやら変数の使い方やらも。
…しかし、難しい問題ですね。
心が通じ合わないと、だめなのかしら。
できるだけ「おじさんのインデント」とか「おじさんの書き方」に合わせるようには、
しているわけです。サブルーチンやら変数の使い方やらも。
…しかし、難しい問題ですね。
心が通じ合わないと、だめなのかしら。
2005/06/24(金) 14:36:48ID:M5iaI72S0
>>700
自己レス。
> NetCIDRは、配列の参照受け取ったりはしないの?
http://search.cpan.org/~dougw/Net-CIDR-Lite-0.17/Lite.pm
しないっぽい。
$FOX->{AIREDGECIDR} = Net::CIDR::Lite->new(@airedgecidr);
ってのはできるらしいが、全部add_any()に投げられちゃうらしいので
プログラマ的にはちょっと気持ち悪いかな。
>>703
んーとよく分からないんだけど、mumumuIsIP4AirEdgePhone()の呼び出し元からは
@FOXが参照できないってこと?
自己レス。
> NetCIDRは、配列の参照受け取ったりはしないの?
http://search.cpan.org/~dougw/Net-CIDR-Lite-0.17/Lite.pm
しないっぽい。
$FOX->{AIREDGECIDR} = Net::CIDR::Lite->new(@airedgecidr);
ってのはできるらしいが、全部add_any()に投げられちゃうらしいので
プログラマ的にはちょっと気持ち悪いかな。
>>703
んーとよく分からないんだけど、mumumuIsIP4AirEdgePhone()の呼び出し元からは
@FOXが参照できないってこと?
709FOX ★
2005/06/24(金) 14:38:33ID:???0 わたしにあわせる必要はまったくなく、、、
でも return は明示的にすべきでしょ
Perl の良さである「だれでもできる」を殺していると思う
でも return は明示的にすべきでしょ
Perl の良さである「だれでもできる」を殺していると思う
710root▲ ★
NGNG >>708
あぁ、そういう意味ですか。
つまり、
if(&mumumuIsIP4AirEdgePhone($raddr)) {
なんちゃら;
}
じゃなくて、
if($FOX->{AIREDGECIDR}->find($raddr)) {
なんちゃら;
}
ていいんじゃないかってゆうことですね。
確かにそうですが、どっちが作法としていいのか、っていう話なのかなと。
あぁ、そういう意味ですか。
つまり、
if(&mumumuIsIP4AirEdgePhone($raddr)) {
なんちゃら;
}
じゃなくて、
if($FOX->{AIREDGECIDR}->find($raddr)) {
なんちゃら;
}
ていいんじゃないかってゆうことですね。
確かにそうですが、どっちが作法としていいのか、っていう話なのかなと。
711root▲ ★
NGNG2005/06/24(金) 14:42:19ID:qV+vDjG60
俺も暗黙の返り値ってのはあんま好きじゃないなー
古いタイプなのかも
古いタイプなのかも
713FOX ★
2005/06/24(金) 14:42:54ID:???0 >Perlの世界では暗黙に最後の評価値がretrurn値になるので、
これをやられると、みんなが辛いということなんですが、
これをやられると、みんなが辛いということなんですが、
715root▲ ★
NGNG >>714
…と私もおもたので、今のは前者になっているです。
で、難民のほうで頼んだ例のPerlモジュール入れていただけると、qb6のを配ることができるですね。
(qb6ではqw()でローカルに読ませてテストしたので、今配ると他で動かないです)
…と私もおもたので、今のは前者になっているです。
で、難民のほうで頼んだ例のPerlモジュール入れていただけると、qb6のを配ることができるですね。
(qb6ではqw()でローカルに読ませてテストしたので、今配ると他で動かないです)
2005/06/24(金) 15:05:13ID:M5iaI72S0
>>710
そゆことです。
何やってるのか関数名で見通したい、というのなら前者って感じですかね。
全体構造が分からないんで的違いな話になる可能性大ですが、どちらにせよ
$FOX->{AIREDGECIDR}は同じファイル内でだけ呼ぶようにしたらいいんじゃ
ないかなと思うです。その結果が前者なんであれば前者がベターですね。
そゆことです。
何やってるのか関数名で見通したい、というのなら前者って感じですかね。
全体構造が分からないんで的違いな話になる可能性大ですが、どちらにせよ
$FOX->{AIREDGECIDR}は同じファイル内でだけ呼ぶようにしたらいいんじゃ
ないかなと思うです。その結果が前者なんであれば前者がベターですね。
2005/06/24(金) 19:42:05ID:j6fIYZld0
ごめんなさい
ちょこっとエジでテスト
ちょこっとエジでテスト
719サザン ★
NGNG qb6 の bbs.cgi は全サーバに配っちゃダメなんですよね?
721サザン ★
NGNG >>720
いやー、特に急ぎではないです。
質問・雑談スレ178@運用情報板
http://qb5.2ch.net/test/read.cgi/operate/1119446519/666
この辺を入れました。
いやー、特に急ぎではないです。
質問・雑談スレ178@運用情報板
http://qb5.2ch.net/test/read.cgi/operate/1119446519/666
この辺を入れました。
724root▲ ★
NGNG そう言っていただけると、信じてました。
愛があれば、年の差なんて。
愛があれば、年の差なんて。
725サザン ★
NGNG 今はギクシャクしてますけど、少しずつ仲良くなっていきます、、
えぇ、サーバとですよ。
えぇ、サーバとですよ。
2005/06/25(土) 00:34:36ID:qDyC1RFhO
セックルキター
2005/06/25(土) 00:38:02ID:gieTPTdE0
ウホッ!
2005/06/25(土) 01:44:13ID:tFnzMa950
ここが夜中に発展場と化している件。
2005/06/25(土) 04:19:06ID:uwvlpLto0
今日は別なスレに行ってるみたいね
730だんしゃくねこ
2005/06/25(土) 05:31:34ID:A51tnjWK0 │_A
│・−・) きゃー
↓ ⊂)
│・−・) きゃー
↓ ⊂)
731宿酔 ◆TWARamEjuA
NGNG えぇ、呑みすぎました。。。
2005/06/25(土) 14:13:26ID:984XqAIa0
すんげーどうでもいいけど、
foreach (@airedgecidr){
$FOX->{AIREDGECIDR}->add($_);
}
こうすると0.01マイクロ秒くらい速くなったり。。
foreach (@airedgecidr){
$FOX->{AIREDGECIDR}->add($_);
}
こうすると0.01マイクロ秒くらい速くなったり。。
735外野ァァン
2005/06/27(月) 11:56:40ID:ADqKwFtG0 AirH"判別、復活?
2005/06/28(火) 16:50:03ID:LQgu/qx+0
0 O o P がおっぱいに見えたから、
題して「おっぱい作戦」だな
題して「おっぱい作戦」だな
738▲ ◆cZfSunOs.U
2005/06/30(木) 23:46:01ID:rETl+gr10 実装済:
subject.txt, subback.html, dat/*.dat 更新
あぼーん
dat/*.dat から subject.txt, subback.html 再生成
未実装:
index.html, html/*.html 更新
他板へのスレ移動 etc...
とりあえず↑ってところですが http://sunos.saita.ma/bbsd.c
全部実装すると雪だるま対応仕様になりますが,とりあえず今の段階でも
subject.txt 更新等の重い処理を bbs.cgi から抜き出して軽量化にはなると思います.
使用法: bbsd [-cfh] [-b bindaddr] [-d docroot] [-i subjects_interval] [-I setting_interval] [-n nthreads] [-p port] [-s servername]
-b bindaddr: UDP ソケットを bind するアドレスを指定 [default: 127.0.0.1]
-c: 入力のバイトシーケンスチェックを行う (環境変数 LANG/LC_CTYPE/LC_ALL に依存)
-d docroot: httpd の document root [default: /usr/local/apache2/htdocs]
-f: フォアグラウンドで実行
-h: ヘルプ表示
-i subjects_interval: subject.txt 等の更新間隔(秒) [default: 5]
-I setting_interval: SETTING.TXT のチェック間隔(秒) [default: 60]
-p port: UDP ソケットのポート番号 [default: 2222]
-s servername: httpd のサーバ名 [default: www.example.com]
-DUSE_THREADS 付きでビルドするとマルチスレッド版になり,このオプションが追加.
-n nthreads: worker スレッド数 [default: 4]
んで,例えばこんな感じで起動する,と.
su ch2qb5 -c 'LANG=ja_JP.SJIS bbsd -c -d/home/ch2qb5/htdocs -sqb5.2ch.net'
bbs.cgi からの呼び出し法は
----------------------------------------------------------------------
use Socket;
use constant BBSD_HOST => inet_aton('127.0.0.1');
use constant BBSD_PORT => 2222;
use constant BBSD_TIMEOUT => 1;
sub bbsd {
my ($rfd, $str) = ('', '');
my $sin = sockaddr_in(BBSD_PORT, BBSD_HOST);
socket(SOCK, AF_INET, SOCK_DGRAM, 0) || return "$!";
send(SOCK, join('/', @_), 0, $sin) || return "$!";
vec($rfd, fileno(SOCK), 1) = 1;
if (select($rfd, undef, undef, BBSD_TIMEOUT)) {
recv(SOCK, $str, 256, 0) || return "$!";
}
else {
$str = "書き込みを受理しましたがサーバが混雑しています.書き込みが反映されない場合もあります.";
}
return $str;
}
----------------------------------------------------------------------
subject.txt, subback.html, dat/*.dat 更新
あぼーん
dat/*.dat から subject.txt, subback.html 再生成
未実装:
index.html, html/*.html 更新
他板へのスレ移動 etc...
とりあえず↑ってところですが http://sunos.saita.ma/bbsd.c
全部実装すると雪だるま対応仕様になりますが,とりあえず今の段階でも
subject.txt 更新等の重い処理を bbs.cgi から抜き出して軽量化にはなると思います.
使用法: bbsd [-cfh] [-b bindaddr] [-d docroot] [-i subjects_interval] [-I setting_interval] [-n nthreads] [-p port] [-s servername]
-b bindaddr: UDP ソケットを bind するアドレスを指定 [default: 127.0.0.1]
-c: 入力のバイトシーケンスチェックを行う (環境変数 LANG/LC_CTYPE/LC_ALL に依存)
-d docroot: httpd の document root [default: /usr/local/apache2/htdocs]
-f: フォアグラウンドで実行
-h: ヘルプ表示
-i subjects_interval: subject.txt 等の更新間隔(秒) [default: 5]
-I setting_interval: SETTING.TXT のチェック間隔(秒) [default: 60]
-p port: UDP ソケットのポート番号 [default: 2222]
-s servername: httpd のサーバ名 [default: www.example.com]
-DUSE_THREADS 付きでビルドするとマルチスレッド版になり,このオプションが追加.
-n nthreads: worker スレッド数 [default: 4]
んで,例えばこんな感じで起動する,と.
su ch2qb5 -c 'LANG=ja_JP.SJIS bbsd -c -d/home/ch2qb5/htdocs -sqb5.2ch.net'
bbs.cgi からの呼び出し法は
----------------------------------------------------------------------
use Socket;
use constant BBSD_HOST => inet_aton('127.0.0.1');
use constant BBSD_PORT => 2222;
use constant BBSD_TIMEOUT => 1;
sub bbsd {
my ($rfd, $str) = ('', '');
my $sin = sockaddr_in(BBSD_PORT, BBSD_HOST);
socket(SOCK, AF_INET, SOCK_DGRAM, 0) || return "$!";
send(SOCK, join('/', @_), 0, $sin) || return "$!";
vec($rfd, fileno(SOCK), 1) = 1;
if (select($rfd, undef, undef, BBSD_TIMEOUT)) {
recv(SOCK, $str, 256, 0) || return "$!";
}
else {
$str = "書き込みを受理しましたがサーバが混雑しています.書き込みが反映されない場合もあります.";
}
return $str;
}
----------------------------------------------------------------------
739▲ ◆cZfSunOs.U
2005/06/30(木) 23:47:02ID:rETl+gr10 で,書き込み処理はこんな感じで.
my $errmsg = bbsd($bbs, $key, $datline);
$bbs は板の指定(operate),$key はスレッドキー(1113117347),
$datline は *.dat への出力と同じ形式の文字列.
name<>email<>date etc.<>message<>[title]
正常に処理されると $errmsg は空文字列で,エラーが発生した場合は
それを示す文字列になります.
この bbsd は subject データをオンメモリで保持するため,
他のプログラムが subject.txt 等を変更しても bbsd によって
上書きされてしまうので,あぼーんや subject 再生成等の機能も
搭載しました.
レスの通常あぼーん:
my $errmsg = bbsd($bbs, "delete:$key", $range);
レスの透明あぼーん:
my $errmsg = bbsd($bbs, "tdelete:$key", $range);
スレッドのゴミ箱逝き:
my $errmsg = bbsd($bbs, "delete:$key", '*');
スレッドのファイル自体削除:
my $errmsg = bbsd($bbs, "tdelete:$key", '*');
$range は例えば "2-19,22,24,26-29" のようなレス番指定.
subject.txt 等の再生成:
my $errmsg = bbsd($bbs, 'repair');
この処理は時間がかかりそうなら BBSD_TIMEOUT はもっと長い方がいいかも知れません.
もっとも,UDP ソケットキューがあふれてリクエストが破棄されているとかでない限り
タイムアウトになっても処理自体は行われますが.
my $errmsg = bbsd($bbs, $key, $datline);
$bbs は板の指定(operate),$key はスレッドキー(1113117347),
$datline は *.dat への出力と同じ形式の文字列.
name<>email<>date etc.<>message<>[title]
正常に処理されると $errmsg は空文字列で,エラーが発生した場合は
それを示す文字列になります.
この bbsd は subject データをオンメモリで保持するため,
他のプログラムが subject.txt 等を変更しても bbsd によって
上書きされてしまうので,あぼーんや subject 再生成等の機能も
搭載しました.
レスの通常あぼーん:
my $errmsg = bbsd($bbs, "delete:$key", $range);
レスの透明あぼーん:
my $errmsg = bbsd($bbs, "tdelete:$key", $range);
スレッドのゴミ箱逝き:
my $errmsg = bbsd($bbs, "delete:$key", '*');
スレッドのファイル自体削除:
my $errmsg = bbsd($bbs, "tdelete:$key", '*');
$range は例えば "2-19,22,24,26-29" のようなレス番指定.
subject.txt 等の再生成:
my $errmsg = bbsd($bbs, 'repair');
この処理は時間がかかりそうなら BBSD_TIMEOUT はもっと長い方がいいかも知れません.
もっとも,UDP ソケットキューがあふれてリクエストが破棄されているとかでない限り
タイムアウトになっても処理自体は行われますが.
2005/07/01(金) 14:35:23ID:UUYAgp820
2005/07/01(金) 14:43:09ID:t9ua+Um40
じっけん!じっけん!
743讃岐フォアンフォアン▲ ◆SANUKIvwUE
NGNG ワクワクテカテカ
745▲ ◆cZfSunOs.U
2005/07/02(土) 01:27:22ID:YxODQddI0 おっと >>738 close() 入れないと......
sub bbsd {
my ($rfd, $str) = ('', '');
my $sin = sockaddr_in(BBSD_PORT, BBSD_HOST);
socket(SOCK, AF_INET, SOCK_DGRAM, 0) || return "$!";
send(SOCK, join('/', @_), 0, $sin) || (close(SOCK), return "$!");
vec($rfd, fileno(SOCK), 1) = 1;
if (select($rfd, undef, undef, BBSD_TIMEOUT)) {
recv(SOCK, $str, 256, 0) || (close(SOCK), return "$!");
}
else {
$str = "書き込みを受理しましたがサーバが混雑しています.書き込みが反映されない場合もあります.";
}
close(SOCK);
return $str;
}
sub bbsd {
my ($rfd, $str) = ('', '');
my $sin = sockaddr_in(BBSD_PORT, BBSD_HOST);
socket(SOCK, AF_INET, SOCK_DGRAM, 0) || return "$!";
send(SOCK, join('/', @_), 0, $sin) || (close(SOCK), return "$!");
vec($rfd, fileno(SOCK), 1) = 1;
if (select($rfd, undef, undef, BBSD_TIMEOUT)) {
recv(SOCK, $str, 256, 0) || (close(SOCK), return "$!");
}
else {
$str = "書き込みを受理しましたがサーバが混雑しています.書き込みが反映されない場合もあります.";
}
close(SOCK);
return $str;
}
746● ◆ANGLERlqvM
NGNG ここまで来たんですね。
もう、凄いとしか。。。
もう、凄いとしか。。。
2005/07/02(土) 09:28:05ID:ZRfZC6Ox0
ああ、和菓子職人が仕上げていく様子を、横で(口を緩めて)眺めている感覚。
2005/07/02(土) 11:59:59ID:TINNy+yho
ID末尾の識別子について
WILLCOMの「端末だけ」を識別することに何の意味があるのでしょう?("ポン厨"とか言われるのですが)
味/京ポンのような接続環境は、ダイアルアップ接続なPDA/モバイルなどもそうでしょう。
そして、コピペに不自由なWILLCOM端末を使うより、PDA/モバイルなどを使う方が悪質な荒らしが可能と思います。
繋ぐたびにIDが変わるISPのくくりで識別するというなら、まだ納得できます。
要はprinならセンターと分ける必要はなくて、同じ識別をしたらということです。dionとかも。
WILLCOMの「端末だけ」を識別することに何の意味があるのでしょう?("ポン厨"とか言われるのですが)
味/京ポンのような接続環境は、ダイアルアップ接続なPDA/モバイルなどもそうでしょう。
そして、コピペに不自由なWILLCOM端末を使うより、PDA/モバイルなどを使う方が悪質な荒らしが可能と思います。
繋ぐたびにIDが変わるISPのくくりで識別するというなら、まだ納得できます。
要はprinならセンターと分ける必要はなくて、同じ識別をしたらということです。dionとかも。
749root▲ ★
NGNG >>748
技術的には bbs.cgi での「特別扱い具合」を示しているですね。
つまり、bbs.cgi 内で他の端末よりも手厚く取り扱っているわけです。
で、私自身も京ぽん使いで、o が出る板(こことか)にちょくちょく書いているですが、
あんまりそうゆうこと言われたことないです。
技術的には bbs.cgi での「特別扱い具合」を示しているですね。
つまり、bbs.cgi 内で他の端末よりも手厚く取り扱っているわけです。
で、私自身も京ぽん使いで、o が出る板(こことか)にちょくちょく書いているですが、
あんまりそうゆうこと言われたことないです。
2005/07/02(土) 18:39:02ID:8PRXTeyH0
2005/07/02(土) 19:08:59ID:0Im+zYFu0
2005/07/02(土) 19:27:39ID:pqeP7+DPO
煽る奴は無視すればいいだけ
2005/07/02(土) 19:30:55ID:8UGV20P00
>システム用件と業務用件を切り分け出来ていない見本で砂
そうですねっ
* 挑発には乗らない。挑発するような人の意見は、たいてい誰も重要視しません。
そうですねっ
* 挑発には乗らない。挑発するような人の意見は、たいてい誰も重要視しません。
2005/07/02(土) 20:01:46ID:C+lXVmU/0
どうせ識別されるとマズいようなレスばっかりしてるんだろ
755748
2005/07/02(土) 22:09:17ID:KCuDl3J/o >>749
あーなるほど・・・、味ポンのブラウザがリファラ吐かないってやつですか。
しかし、京ポンはリファラ吐くにもかかわらず、味ポンルートで処理されるようになってしまったのですね。
なまじリファラ吐くせいで、クラシックから書こうとすると弾かれてましたっけか。
そのためリファラを無視するようにしたんじゃなかったですかね。なんか本末転倒…。
あーなるほど・・・、味ポンのブラウザがリファラ吐かないってやつですか。
しかし、京ポンはリファラ吐くにもかかわらず、味ポンルートで処理されるようになってしまったのですね。
なまじリファラ吐くせいで、クラシックから書こうとすると弾かれてましたっけか。
そのためリファラを無視するようにしたんじゃなかったですかね。なんか本末転倒…。
756root▲ ★
2005/07/03(日) 00:18:13ID:???0 >>750
そうか。
でも、それで著しく不公平になったとは思えないんで
(AIR-EDGE PHONEユーザが日本全体で1000人しかいないとかだったら、
ひょっとすると不公平なのかもかもだけど)、
変える気は今のところないです。すんません。
そうか。
でも、それで著しく不公平になったとは思えないんで
(AIR-EDGE PHONEユーザが日本全体で1000人しかいないとかだったら、
ひょっとすると不公平なのかもかもだけど)、
変える気は今のところないです。すんません。
757root▲ ★
NGNG >>755
で、2ちゃんねるではだいぶ前からリファラの有無のチェックはしているので
(少なくとも味ぽんや京ぽんが出るのよりも前から)、
なので、
> なまじリファラ吐くせいで、クラシックから書こうとすると弾かれてましたっけか。
> そのためリファラを無視するようにしたんじゃなかったですかね。
というのは正確ではなくて、
味ぽんからの書き込みに対応するために、AIR-EDGE PHONEセンターからの
アクセスではリファラを無視するようにした
というのが、たぶん正しいと思われるです。
当時、不動楽さん(= クラシックさん)がそのように対応したはず。
で、2ちゃんねるではだいぶ前からリファラの有無のチェックはしているので
(少なくとも味ぽんや京ぽんが出るのよりも前から)、
なので、
> なまじリファラ吐くせいで、クラシックから書こうとすると弾かれてましたっけか。
> そのためリファラを無視するようにしたんじゃなかったですかね。
というのは正確ではなくて、
味ぽんからの書き込みに対応するために、AIR-EDGE PHONEセンターからの
アクセスではリファラを無視するようにした
というのが、たぶん正しいと思われるです。
当時、不動楽さん(= クラシックさん)がそのように対応したはず。
758755:748
2005/07/03(日) 04:40:33ID:tQyFxUHBo >>757
それは味ポン互換のUAの場合ですね。
UAがOperaの場合はPCルートなので、クラシックから書き込みしようとするとリファラで書けませんでした。
で、具体的には分からないのですが、味ポンと同じようにリファラを無視するようにしたのではないでしょうか。
リファラがi2ch.netの場合の書き込みをOKにしたわけではないようですし。
↓このあたり
携帯→2ch運用情報スレッド12
http://qb5.2ch.net/test/read.cgi/operate/1094575260/346-
京ポンに関しては必要以上に面倒なことをやってる気がするですよ。
それは味ポン互換のUAの場合ですね。
UAがOperaの場合はPCルートなので、クラシックから書き込みしようとするとリファラで書けませんでした。
で、具体的には分からないのですが、味ポンと同じようにリファラを無視するようにしたのではないでしょうか。
リファラがi2ch.netの場合の書き込みをOKにしたわけではないようですし。
↓このあたり
携帯→2ch運用情報スレッド12
http://qb5.2ch.net/test/read.cgi/operate/1094575260/346-
京ポンに関しては必要以上に面倒なことをやってる気がするですよ。
759root▲ ★
NGNG >>758
ふむ。
そのスレの384にこんな書き込みがあるので、確かに当時、何かしているようですね。
384 名前:不動楽 ★[sage] 投稿日:04/09/19 23:07:56 ID:???
>>381
IP帯域及びリファラエラーの調整してみました。
どうでしょ?
今のbbs.cgiでは、
・AIR-EDGE PHONEセンターのIPアドレスレンジからの接続だったら(*1)、
・リファラの扱いは他の携帯電話と同じ扱いにするけど、
・識別情報が来ないので、ID生成やSamba24はPCと同じに扱う
って、なっているです。
ようは、携帯とPCの中間みたいな扱いですね。
AIR-EDGE PHONEも識別情報を送ってきてくれると、楽なんですが。
(*1)http://www.willcom-inc.com/p_s/products/airh_phone/ip.html
ふむ。
そのスレの384にこんな書き込みがあるので、確かに当時、何かしているようですね。
384 名前:不動楽 ★[sage] 投稿日:04/09/19 23:07:56 ID:???
>>381
IP帯域及びリファラエラーの調整してみました。
どうでしょ?
今のbbs.cgiでは、
・AIR-EDGE PHONEセンターのIPアドレスレンジからの接続だったら(*1)、
・リファラの扱いは他の携帯電話と同じ扱いにするけど、
・識別情報が来ないので、ID生成やSamba24はPCと同じに扱う
って、なっているです。
ようは、携帯とPCの中間みたいな扱いですね。
AIR-EDGE PHONEも識別情報を送ってきてくれると、楽なんですが。
(*1)http://www.willcom-inc.com/p_s/products/airh_phone/ip.html
760root▲ ★
NGNG (以下余談)
そういえば、AIR-EDGE PHONEでできるゲームか何かで、
識別情報を送ってこないのを悪用(?)して、
1台の電話機で複数個参加するとかやっている人が横行しているとか、いないとか。
次の京ぽんでは識別情報を送るようになってほしいなぁと、ゆっておこう。
そういえば、AIR-EDGE PHONEでできるゲームか何かで、
識別情報を送ってこないのを悪用(?)して、
1台の電話機で複数個参加するとかやっている人が横行しているとか、いないとか。
次の京ぽんでは識別情報を送るようになってほしいなぁと、ゆっておこう。
NGNG
コロプラノコトカ-------Σ(゚д゚)
762名無し募集中。。。
2005/07/06(水) 23:13:29ID:0YvouOu40 なんでわざわざ何で書き込んでるとかわかるようにするの
2005/07/07(木) 00:14:45ID:nVkQbPw9P
prin規制が掛かりました。今回の原因はPC用のprinが原因の様です。
AIR-EDGEセンター接続かどうかが判別できるようなった今、センター接続を規制の対象から外して頂くことはできないものでしょうか?
AIR-EDGEセンター接続かどうかが判別できるようなった今、センター接続を規制の対象から外して頂くことはできないものでしょうか?
2005/07/07(木) 00:33:53ID:c6DvOwmQ0
きっとスレ違い
たぶん板違い
たぶん板違い
765ちょろ ★
2005/07/12(火) 19:01:24ID:???0 再確認でーす
IsKoukoku は bbspinkや2ch のbananaサーバで
するーする事は絶対にない
あってますか?
IsKoukoku は bbspinkや2ch のbananaサーバで
するーする事は絶対にない
あってますか?
766む@移動中 P221119009166.ppp.prin.ne.jp
2005/07/12(火) 19:03:52ID:RwUQLwO2o 次オンラインになったら、
レスするです。
レスするです。
767だんしゃくねこ
2005/07/12(火) 19:06:42ID:SdZyUpa80768root▲ ★
NGNG ○ 現在のbbs.cgiにおける、IsKoukokuを実行するかを決めるアルゴリズム:
1) まずIsKoukokuを実行するかどうかは、
bbs_mainの最初のほうで、mumumuIsIsKoukoku関数を呼んで
その結果をもとに決めている。
2) 1) は1投稿ごとに呼ばれ、チェックされる
3) 2) でいったん「IsKoukokuを実行しない状況」と判断したら、
mumumuIsIsKoukokuの呼び出しそのものをキャンセルし、
その船が自爆するまでの間、ずっと「IsKoukokuを実行しない状況」になる
4) mumumuIsIsKoukokuでは、以下のアルゴリズムにより判断する
a) リストにあるサーバ(特別サーバ)かどうか調べ、もしそうならIsKoukokuは実行しない
現在の特別サーバのリスト:
live16, live20, live21, ex11
b) その瞬間のサーバのLAを調べ、一定の閾値以上だったらIsKoukokuは実行しない
現在の閾値:
cobra 30.0
tiger 20.0
banana 4.0
5) 現在IsKoukokuを実行している状態かそうでない状態かは、
各板のindex.htmlに「+Rock54」と出ているかいないかで判断できる
している状態:
BBS.CGI - 2005/07/05 (SpeedyCGI) +Rock54 +BBQ/BBM +Samba24=10
していない状態(例: news4vip)
BBS.CGI - 2005/07/05 (SpeedyCGI) +BBQ/BBM +Samba24=15
1) まずIsKoukokuを実行するかどうかは、
bbs_mainの最初のほうで、mumumuIsIsKoukoku関数を呼んで
その結果をもとに決めている。
2) 1) は1投稿ごとに呼ばれ、チェックされる
3) 2) でいったん「IsKoukokuを実行しない状況」と判断したら、
mumumuIsIsKoukokuの呼び出しそのものをキャンセルし、
その船が自爆するまでの間、ずっと「IsKoukokuを実行しない状況」になる
4) mumumuIsIsKoukokuでは、以下のアルゴリズムにより判断する
a) リストにあるサーバ(特別サーバ)かどうか調べ、もしそうならIsKoukokuは実行しない
現在の特別サーバのリスト:
live16, live20, live21, ex11
b) その瞬間のサーバのLAを調べ、一定の閾値以上だったらIsKoukokuは実行しない
現在の閾値:
cobra 30.0
tiger 20.0
banana 4.0
5) 現在IsKoukokuを実行している状態かそうでない状態かは、
各板のindex.htmlに「+Rock54」と出ているかいないかで判断できる
している状態:
BBS.CGI - 2005/07/05 (SpeedyCGI) +Rock54 +BBQ/BBM +Samba24=10
していない状態(例: news4vip)
BBS.CGI - 2005/07/05 (SpeedyCGI) +BBQ/BBM +Samba24=15
769root▲ ★
NGNG ということで、>>765 の結論ですが、
2ちゃんねる/PINKちゃんねるのいずれも共通に、
1) 負荷が上がって、サーバが苦しくなってきた場合、
自動的にIsKoukokuをするーするようになる
2) 負荷が下がると、順次船が入れ替わっていくことにより
自動的にIsKoukokuをするーしなくなる
という動作をします。
これにより特にサーバに書き込み集中で負荷がかかった時に
「手でbbs.cgiやread.cgiを止めて冷やさなければいけない」とか、
「bbs.cgiの爆発時にbbs.cgiの処理が転んでしまう」
といったことの回数が、減ったように思います。
animeサーバもこれともうひとつの安全装置を入れてから、
例の「土曜夕方のどーん」にも、耐えられるようになりました。
2ちゃんねる/PINKちゃんねるのいずれも共通に、
1) 負荷が上がって、サーバが苦しくなってきた場合、
自動的にIsKoukokuをするーするようになる
2) 負荷が下がると、順次船が入れ替わっていくことにより
自動的にIsKoukokuをするーしなくなる
という動作をします。
これにより特にサーバに書き込み集中で負荷がかかった時に
「手でbbs.cgiやread.cgiを止めて冷やさなければいけない」とか、
「bbs.cgiの爆発時にbbs.cgiの処理が転んでしまう」
といったことの回数が、減ったように思います。
animeサーバもこれともうひとつの安全装置を入れてから、
例の「土曜夕方のどーん」にも、耐えられるようになりました。
770root▲ ★
NGNG ということで、以上です。
なお、もうひとつの安全装置は
・LAが閾値を超えたら、index.html / subback.html の更新をある程度さぼる
となっているです。
なお、もうひとつの安全装置は
・LAが閾値を超えたら、index.html / subback.html の更新をある程度さぼる
となっているです。
771ちょろ ★
2005/07/12(火) 20:36:20ID:???0 広告爆撃が増加してきたんで
ISKoukoku はスキップしないでくださいー
したとしても、live系だけかと、
2ch&bbspink の banana サーバは絶対にスキップしないでください
ISKoukoku はスキップしないでくださいー
したとしても、live系だけかと、
2ch&bbspink の banana サーバは絶対にスキップしないでください
772root▲ ★
NGNG773ちょろ ★
2005/07/12(火) 20:39:08ID:???0 ex11 はどっちでもいいような、
774root▲ ★
NGNG ただし、animeサーバでのLA=20でのIsKoukokuスキップだけは、
従来どおりとさせていただきます。
これが働くのは、1週間のうちの5分だけのはずです。
従来どおりとさせていただきます。
これが働くのは、1週間のうちの5分だけのはずです。
776ちょろ ★
2005/07/12(火) 20:43:12ID:???0 あと 通称形態バーボンの早期投入が望まれています。 from 規制議論板
777ちょろ ★
2005/07/12(火) 20:43:24ID:???0 携帯だった
779root▲ ★
NGNG BBS.CGI - 2005/07/12
- banana サーバではLAに関係なく、常にIsKoukokuを実行
- ただし「特別サーバ」に指定したらするー
- banana サーバではLAに関係なく、常にIsKoukokuを実行
- ただし「特別サーバ」に指定したらするー
780ちょろ ★
2005/07/12(火) 21:12:30ID:???0 game10
game9
etc4
life7
hobby7
もスルーして欲しくないです。
game9
etc4
life7
hobby7
もスルーして欲しくないです。
781root▲ ★
NGNG 携帯Rock54ってのも、ありなのかな。
自動バーボンというか、自動BBMか。
自動バーボンというか、自動BBMか。
782root▲ ★
NGNG783root▲ ★
NGNG でもetc4は、電車男の時がちょっぴり心配かもね。
ま、いっか。その時はその時ということで。
ま、いっか。その時はその時ということで。
785ちょろ ★
2005/07/12(火) 21:24:48ID:???0 うーん
基本的には、、、全部onにして欲しいんだが、
なぜかというと、on/off は私たちには通常わからないので
効いているのか/いないのか
設定したのが あっているのか/あっていないのか
等がわからないのだ、「あぁ スルーしているから仕方ないんだよね」
で話しは終わってしまって、だれもそれ以上は深く考えないで
結局効いていないという風になってしまうのだ、
liveとex11以外は効かせて欲しいです
(anime は shar だかを ex11 に移転すればいいのかな?)
規制情報板まわりのコストがはげしく上昇しています。
基本的には、、、全部onにして欲しいんだが、
なぜかというと、on/off は私たちには通常わからないので
効いているのか/いないのか
設定したのが あっているのか/あっていないのか
等がわからないのだ、「あぁ スルーしているから仕方ないんだよね」
で話しは終わってしまって、だれもそれ以上は深く考えないで
結局効いていないという風になってしまうのだ、
liveとex11以外は効かせて欲しいです
(anime は shar だかを ex11 に移転すればいいのかな?)
規制情報板まわりのコストがはげしく上昇しています。
2005/07/12(火) 21:26:24ID:0+KohaPe0
788▲ ◆SANUKI/VII
NGNG あと、ex10&ex11のBBMが動いてない気がするんですけど…
789root▲ ★
NGNG ・bananaサーバでは必ず実行
・他の該当するサーバ(live系とex11)では必ず実行しない
・それ以外は必ず実行
にしました。
>>788
ex10とかex11のように常時投稿数が多いサーバは、
たまに自動的に止まる(安全装置が働く)ようです。
理由は、、、ううむ。
live系ですらこのような状況で止まることはないようなので、
単なる投稿数ではない、何か別の理由を疑い始めています。
・他の該当するサーバ(live系とex11)では必ず実行しない
・それ以外は必ず実行
にしました。
>>788
ex10とかex11のように常時投稿数が多いサーバは、
たまに自動的に止まる(安全装置が働く)ようです。
理由は、、、ううむ。
live系ですらこのような状況で止まることはないようなので、
単なる投稿数ではない、何か別の理由を疑い始めています。
790root▲ ★
NGNG ・bananaサーバでは必ず実行
・他のサーバ(tiger/cobra)のうち該当するサーバ(live系とex11)では実行しない
・それ以外のサーバは必ず実行
にしました。
IsKoukoku周りでLAで動的に判定する部分のコードは、全てコメントアウトしました。
# いったん、オフライン。
・他のサーバ(tiger/cobra)のうち該当するサーバ(live系とex11)では実行しない
・それ以外のサーバは必ず実行
にしました。
IsKoukoku周りでLAで動的に判定する部分のコードは、全てコメントアウトしました。
# いったん、オフライン。
792ちょろ ★
2005/07/12(火) 21:42:37ID:???0 はーい
今晩 bbs.cgi さわります
samba値を SETTING.TXT で指定
今晩 bbs.cgi さわります
samba値を SETTING.TXT で指定
793桶屋
2005/07/12(火) 21:46:04ID:aFhCYHbJ0 おおっ、ついに!
2005/07/12(火) 21:59:34ID:rWGBNCgJ0
SETTING.TXTを変更するCGIも忘れずにー
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【ホリエモン】堀江貴文氏「俺本気になって暴露するなら文春とか霞むくらいの情報持ってるよ」と告白し反響 元フジ長谷川豊氏と対談 ★2 [Ailuropoda melanoleuca★]
- 【八潮市道路陥没】運転手の救出活動を再開…作業用スロープが完成し重機でがれきの撤去始める ★9 [Ailuropoda melanoleuca★]
- 【八潮市道路陥没】運転手の救出活動を再開…作業用スロープが完成し重機でがれきの撤去始める ★10 [Ailuropoda melanoleuca★]
- イオンのフードコートの飲食店が全て撤退で飲食できない現象…なぜ発生? (西川立一氏他) [少考さん★]
- すぐに火葬できず平均4~5日の火葬待ち 精神的負担、安置費用5日20万円…「死亡者数が例年になく多い」 [おっさん友の会★]
- 【北九州】カツカレーと親子丼セットを”無銭飲食” 無職78歳男を現行犯逮捕 所持品はマスク1枚 [煮卵★]
- トランプ『物価高はバイデンのせいだ』⇒関税で更に上がってしまう🥺 [118990258]
- 少し前の愛国者、人口減少高齢化は問題ない、経済と国防とインフラと社会保障と治安が崩壊するだけ! [819729701]
- ラーメン屋で大盛り無料に釣られて頼むと絶対後悔する
- 【悲報】今の共通テスト、完全に生まれながらの知能検査になっていることが判明する…
- 【節分】今日は日本国民みんなが恵方巻を食べる日です😤 [583597859]
- この世で一番美味い魚は鯖だろ