[mew-dist 20382] Re: IMAP

Hajimu UMEMOTO ume at example.com
2002年 2月 23日 (土) 20:07:06 JST


  梅本@IMASYです。

  IPv6 対応には IMAP4 プロトコル自体はあまり知る必要がないので、ほとん
ど知らないかったりします。

>>>>> On Sat, 23 Feb 2002 10:08:53 +0900 (JST)
>>>>> Kazu Yamamoto (山本和彦) <kazu at example.com> said:

> imapd は cyrus-imapd を使って試してます。
> 's' "update" を繰り返すと最後の message が %inbox に増殖します。
> 's' "all" でまともに戻りますが。。。

kazu> cyrus-imap は以下のような謎の挙動をします。

kazu> xxx uid fetch 561:* uid
kazu> * 558 FETCH (UID 560)
kazu> xxx OK Completed

kazu> uid 561 以降を指定しているのに、uid 560 も返す。

kazu> IMAP はアマチュアなのでよく分りませんが、cryus-imapd のバグのような気
kazu> がします。

  Cyrus IMAPd は既に SASL v2 ベースの 2.1.X に移行しています。しかし、
SASL v1 との互換性は全くなく、現状では SASL v2 に対応しているのは 
Cyrus IMAPd だけだと思われます。そのため、手元では 2.1.X を動かしてい
ますが、FreeBSD の ports はまだ 2.0.16 のままにしていますし、まだほと
んどのユーザは 2.0.16 にとどまっていると思われます。
  というわけで、もしバグであったとしても、おそらく 2.0.X がケアされる
ことはないような気がします。
  で、最新版でどうなっているか確認しようと思っているのですが、Cyrus
IMAPd 2.1.X 作業マシンの HDD がお亡くなりで、現在復旧作業中なので、ちょっ
と確認できない状況です。

kazu> いいから、端末ぐらい detach しろ。> cryus-imapd
kazu> # 一体いつになったら直るの? > ume さん

  誰かがパッチ投げれば。:-)
  Cyrus は基本的に Solaris がターゲットで、作者は *BSD を全く知らない
ようです。
  *BSD だけを考えるなら daemon() を呼ぶようにするだけで解決と思います
が、non-BSD で等価な挙動をするようにするのが面倒かも。POSIX 的には 
fork() して setsid() 呼べば良いのかなって気がしますけど、setsid() って
どれだけ一般的に使えるのだろうかとか。

Index: master/master.c
diff -u master/master.c.orig master/master.c
--- master/master.c.orig	Fri Feb 22 19:19:25 2002
+++ master/master.c	Sat Feb 23 16:10:21 2002
@@ -1108,6 +1108,7 @@
     memset(&ctable, 0, sizeof(struct centry *) * child_table_size);
 
     if (close_std) {
+      daemon(0, 0);
       /* close stdin/out/err */
       for (fd = 0; fd < 3; fd++) {
 	close(fd);


-- 
梅本 肇 @ インターネット互助会横浜  http://www.imasy.org/~ume/
ume at example.com  ume at example.com  ume@{,jp.}FreeBSD.org
プログラムは書いた人の意図ではなく書かれた通り動く  I hate Modula-3 :-)



Mew-dist メーリングリストの案内