[Mew-dist 11917] Re: Password is wrong!
SAKAI Kiyotaka
ksakai at example.com
1999年 12月 22日 (水) 16:22:24 JST
>> In article <19991201204236E.kazu at example.com>, Kazu Yamamoto (山本和彦) <kazu at example.com> writes:
> mew-summary-buffer-wrong-pws が nil でないなら
> mew-user-imget-assoc が t なら
> "Password is wrong (mew-summary-buffer-wrong-pwsの中身)!"
> ケースがデフォルトでないなら
> "Password is wrong (そのケース)!"
> さもなくば
> "Password is wrong!"
> mew-summary-buffer-error が nil でないなら
> そのメッセージを表示
> さもなくば
> get したメッセージ数などを表示
> となります。
> ---
> それで、パスワードの入力を間違っていないのに、Password is wrong と表示
> されるのは明らかにバグです。
ところが、imget ではどのようなエラーでも無条件に
imget: ERROR: invalid password ....
に返してしまうので、Mew も "Password is wrong!" と表示してしまうことに
なります。
これは、popper によって返すエラーメッセージがまちまちで、エラーが発生
しても imget 側でどのエラーが発生したか判断するのは難しいためです。
実際にエラーメッセージを調べてみたところ、以下のようになりました。
qpopper-2.53
パスワード間違い
-ERR Password supplied for "ksakai" is incorrect.
セッション使用中
-ERR /.../.ksakai.pop lock busy! Is another session active? (35)
qpopper-3.0b23
パスワード間違い
-ERR Password supplied for "ksakai" is incorrect.
セッション使用中
-ERR [IN-USE] /.../.ksakai.pop lock busy! Is another session active? (11)
imap-4.6 に付属の ipop3d
パスワード間違い
-ERR Password supplied for "ksakai" is incorrect.
セッション使用中
-ERR Can't get lock. Mailbox in use
GNU POP (http://www.nodomainname.net/software/gnu-pop3d.shtml)
パスワード間違い
-ERR Bad login
セッション使用中
ソースを読む限り「-ERR [IN-USE] Mailbox in use」が返ってくるよう
だが、現在のバージョンでは延々とロックを試みている。
ただし、rfc2449 によって、セッションが使用中のときは qpopper-3 のよう
にエラーメッセージに [IN-USE] と入れるべしとなったようですので、これに
対応すればいいのであれば、以下のパッチのようにすればいいかと思います。
--
酒井 清隆 (E-mail: ksakai at example.com)
-------------- next part --------------
===================================================================
RCS file: im-134/IM/RCS/Pop.pm,v
retrieving revision 1.1
diff -u -r1.1 im-134/IM/Pop.pm
--- im-134/IM/Pop.pm 1999/12/22 06:53:13 1.1
+++ im-134/IM/Pop.pm 1999/12/22 06:53:58
@@ -88,7 +88,11 @@
}
$resp = &send_command(\*POPd, "PASS $pass", 'PASS ********');
if ($resp !~ /^\+/) {
- im_err("invalid password ($prompt) [$resp].\n");
+ if ($resp =~ /IN-USE/) {
+ im_err("session is in use ($prompt) [$resp].\n");
+ } else {
+ im_err("invalid password ($prompt) [$resp].\n");
+ }
return -1;
}
} elsif ($auth eq 'RPOP') {
Mew-dist メーリングリストの案内