diff -urN tiarra-20031024/ChangeLog tiarra-20031108/ChangeLog --- tiarra-20031024/ChangeLog 2003-11-08 04:38:31.000000000 +0900 +++ tiarra-20031108/ChangeLog 2003-11-08 15:13:54.000000000 +0900 @@ -1,3 +1,13 @@ +2003-11-08 Topia + + * module/Log/Recent.pm (client_attached): bugfix/need reload. + single-server-mode 時に、送信チャンネル名から network-suffix + をはずす。 + + * main/RunLoop.pm (run): bugfix/need reboot. + single-server-mode 時に、クライアントから送られて来るメッセージに + network-suffix を付けるようにした。 + 2003-10-25 phonohawk * main/IRCMessage.pm (serialize): @@ -1008,7 +1018,7 @@ * これ以前のログは書いていません。 -# Id: $Id: ChangeLog,v 1.113 2003/10/24 15:57:48 admin Exp $ -# Author: $Author: admin $ -# Date: $Date: 2003/10/24 15:57:48 $ -# Revision: $Revision: 1.113 $ +# Id: $Id: ChangeLog,v 1.114 2003/11/08 06:12:56 topia Exp $ +# Author: $Author: topia $ +# Date: $Date: 2003/11/08 06:12:56 $ +# Revision: $Revision: 1.114 $ diff -urN tiarra-20031024/NEWS tiarra-20031108/NEWS --- tiarra-20031024/NEWS 2003-11-08 04:38:31.000000000 +0900 +++ tiarra-20031108/NEWS 2003-11-08 15:13:54.000000000 +0900 @@ -1,3 +1,9 @@ +2003-11-08 Topia + + * single-server-mode の bugfix です。 + single-server-mode を使う予定が無い場合は再起動は不要です。 + single-server-mode を使っている方は、アップデートして再起動して下さい。 + 2003-10-16 phonohawk * System::Raw diff -urN tiarra-20031024/main/RunLoop.pm tiarra-20031108/main/RunLoop.pm --- tiarra-20031024/main/RunLoop.pm 2003-11-08 04:38:32.000000000 +0900 +++ tiarra-20031108/main/RunLoop.pm 2003-11-08 15:13:55.000000000 +0900 @@ -1,5 +1,5 @@ # ----------------------------------------------------------------------------- -# $Id: RunLoop.pm,v 1.47 2003/10/15 16:23:42 admin Exp $ +# $Id: RunLoop.pm,v 1.48 2003/11/08 06:12:56 topia Exp $ # ----------------------------------------------------------------------------- # このクラスはTiarraのメインループを実装します。 # select()を実行し、サーバーやクライアントとのI/Oを行うのはこのクラスです。 @@ -264,7 +264,7 @@ # 送信する必要のあるIrcIOだけを抜き出し、そのソケットを送信セレクタに登録する。 #my $add_or_remove = sub { - # my $io = shift; + # my $io = shift; # my $action = ($io->need_to_send ? 'add' : 'remove'); # $this->{send_selector}->$action($io->sock); #}; @@ -279,7 +279,7 @@ # どうもこの動作が怪しい。無理に再利用しなくても良いような気がする。 my $sel = $this->{send_selector} = IO::Select->new; foreach my $io (values %{$this->{networks}}) { - if ($io->need_to_send) { + if ($io->need_to_send) { $sel->add($io->sock); } } @@ -852,13 +852,13 @@ limit => 100, minimum_to_reset => 2, interval => 10, - + count => 0, last_warned => 0, }; my $zerotime_warn = sub { my $elapsed = shift; - + if ($elapsed == 0) { $zerotime->{count}++; if ($zerotime->{count} >= $zerotime->{limit}) { @@ -875,7 +875,7 @@ $zerotime->{count} = 0; } }; - + while (1) { # 処理の流れ # @@ -943,11 +943,11 @@ last; } } - + if (!defined $msg) { next; } - + if ($io->isa("IrcIO::Server")) { # このメッセージがPONGであればpong-drop-counterを見る。 if ($msg->command eq 'PONG') { @@ -978,8 +978,12 @@ } @$filtered_messages); } else { + # シングルサーバーモードなら、メッセージをMulticastのフィルタに通す。 + my @received_messages = + (!$this->{multi_server_mode}) ? Multicast::from_server_to_client($msg,$this->networks_list) : $msg; + # モジュールを通す。 - my $filtered_messages = $this->_apply_filters([$msg],$io); + my $filtered_messages = $this->_apply_filters(\@received_messages,$io); # 対象となる鯖に送る。 # NOTICE及びPRIVMSGは返答が返ってこないので、同時にこれ以外のクライアントに転送する。 # 註釈do-not-send-to-servers => 1が付いているメッセージはここで破棄する。 @@ -987,7 +991,7 @@ if ($msg->remark('do-not-send-to-servers')) { next; } - + my $cmd = $msg->command; if ($cmd eq 'PRIVMSG' || $cmd eq 'NOTICE') { my $new_msg = undef; # 本当に必要になったら作る。 @@ -1002,7 +1006,7 @@ } } } - + Multicast::from_client_to_server($msg,$io); } } diff -urN tiarra-20031024/module/Log/Recent.pm tiarra-20031108/module/Log/Recent.pm --- tiarra-20031024/module/Log/Recent.pm 2003-11-08 04:38:32.000000000 +0900 +++ tiarra-20031108/module/Log/Recent.pm 2003-11-08 15:13:55.000000000 +0900 @@ -1,5 +1,5 @@ # ----------------------------------------------------------------------------- -# $Id: Recent.pm,v 1.5 2003/09/23 15:26:10 admin Exp $ +# $Id: Recent.pm,v 1.6 2003/11/08 06:12:56 topia Exp $ # ----------------------------------------------------------------------------- # Local: $Clovery: tiarra/module/Log/Recent.pm,v 1.5 2003/02/11 07:59:32 topia Exp $ package Log::Recent; @@ -53,12 +53,16 @@ # ログはあるか? my $vec = $ch->remarks('recent-log'); if (defined $vec) { + my $ch_name; foreach my $elem (@$vec) { + $ch_name = + RunLoop->shared->multi_server_mode_p ? + $elem->[0] : $ch->name; $client->send_message( IRCMessage->new( Prefix => 'Tiarra', Command => 'NOTICE', - Params => [$elem->[0],$elem->[1]])); + Params => [$ch_name,$elem->[1]])); } } } @@ -92,7 +96,7 @@ } else { my $format = do { - if ($this->config->distinguish_myself && $sender->isa('IrcIO::Client')) { + if ($this->config->distinguish_myself && $sender->isa('IrcIO::Client')) { $cmd eq 'PRIVMSG' ? '>%s< %s' : ')%s( %s'; } else {