diff -urN tiarra-20040604/ChangeLog tiarra-20040609/ChangeLog --- tiarra-20040604/ChangeLog 2004-06-04 21:58:25.000000000 +0900 +++ tiarra-20040609/ChangeLog 2004-06-09 18:28:31.000000000 +0900 @@ -1,3 +1,11 @@ +2004-06-09 Topia + + * main/IrcIO/Server.pm: + (_receive_while_logging_in): + - PING に対応した。 + - RPL_WELCOME / NOTICE / PRIVMSG 以外で無視することになった場合、 + 警告を出す。 + 2004-06-04 Topia * main/IRCMessage.pm: @@ -1689,7 +1697,7 @@ * これ以前のログは書いていません。 -# Id: $Id: ChangeLog,v 1.152 2004/06/04 12:57:30 topia Exp $ +# Id: $Id: ChangeLog,v 1.153 2004/06/09 09:27:37 topia Exp $ # Author: $Author: topia $ -# Date: $Date: 2004/06/04 12:57:30 $ -# Revision: $Revision: 1.152 $ +# Date: $Date: 2004/06/09 09:27:37 $ +# Revision: $Revision: 1.153 $ diff -urN tiarra-20040604/NEWS tiarra-20040609/NEWS --- tiarra-20040604/NEWS 2004-06-04 21:58:25.000000000 +0900 +++ tiarra-20040609/NEWS 2004-06-09 18:28:31.000000000 +0900 @@ -4,7 +4,7 @@ - 今回の変更は RPL_ISUPPORT のクライアントへの送信が必要なければ、 再起動する必要はありません。 再起動せずにリロードしてもエラーが起こることはないと思います。 - - 書き忘れていましたが Unicode::Japanes 0.21 (の PurePerl) にて + - 書き忘れていましたが Unicode::Japanese 0.21 (の PurePerl) にて SI/SO な jis への対応が行われています。(2004-05-26 の update) 2004-03-07 Topia diff -urN tiarra-20040604/main/IrcIO/Server.pm tiarra-20040609/main/IrcIO/Server.pm --- tiarra-20040604/main/IrcIO/Server.pm 2004-06-04 21:58:25.000000000 +0900 +++ tiarra-20040609/main/IrcIO/Server.pm 2004-06-09 18:28:31.000000000 +0900 @@ -1,5 +1,5 @@ # ----------------------------------------------------------------------------- -# $Id: Server.pm,v 1.57 2004/05/09 04:08:00 topia Exp $ +# $Id: Server.pm,v 1.58 2004/06/09 09:27:37 topia Exp $ # ----------------------------------------------------------------------------- # IrcIO::ServerはIRCサーバーに接続し、IRCメッセージをやり取りするクラスです。 # このクラスはサーバーからメッセージを受け取ってチャンネル情報や現在のnickなどを保持しますが、 @@ -419,10 +419,16 @@ $this->_set_to_next_nick($first_msg->param(1)); return; # 何も返さない→クライアントにはこの結果を知らせない。 } - elsif ($reply eq RPL_HELLO) { - # RPL_HELLO (irc2.11.x) + elsif (grep { $_ eq $reply } (RPL_WELCOME, qw(NOTICE PRIVMSG))) { + # RPL_HELLO (irc2.11.x) / NOTICE / PRIVMSG return; # 何もしない } + elsif ($reply eq 'PING') { + $this->send_message( + new IRCMessage( + Command => 'PONG', + Param => $first_msg->param(0))); + } else { # それ以外。手の打ちようがないのでconnectionごと切断してしまう。 # 但し、ニューメリックリプライでもERRORでもなければ無視する。 @@ -431,6 +437,7 @@ die "Server replied $reply.\n".$first_msg->serialize."\n"; } else { + warn "Server replied $reply.\n".$first_msg->serialize."\n"; return; } }