[pochy-user] Re: はじめましてこんにちわ&バグ報告

Back to archive index

sabor****@olive***** sabor****@olive*****
2004年 1月 15日 (木) 17:01:22 JST


West @ Eastさん、こんにちは。
Pochyの開発をしております平中です。

ご連絡ありがとうございます。

> それはさておき、バグっぽいもの報告。
> 
> 長文メールや添付ファイルのついたメールを受信すると、高い確率で
> 妙な場所に改行コード <CR><LF> が挿入されます。

もしよろしければ、具体的にどのような場所に挿入されたのかお教えいただけます
と大変助かります。

> 
> ざっとソースを読んでみたのですが、Fetchmail.cpp の 334 - 336 行と
> 345 - 347 行にある
> 
> 				buf.TrimRight('\x0A');
> 				buf.TrimRight('\x0D');
> 				buf += "\x0D\x0A";
> 
> というあたりが怪しそう。
> # というか、ここ、何をやりたいのかわからない…

これは\n->\r\nを意図したものです。
ご指摘頂いている通り、ここの実装は何をやりたいのかわからないぐらいショボイ
実装でして改善の余地は多分にあります。

> # 改行コード変換なら、通常 SMTP では <CR><LF> で送られることに
> # なってるから不要じゃないかと思うし。

仰るとおり、全てのメールの改行コードが\r\nになっていれば問題はないのですが、
一部の実装ではマルチパートの部分の改行コードが"\n"や"\r"だったりすることも
あり、厳格なsmtpサーバー以外はそれを中継するようです。

内部処理的にはすべて\r\nを前提にして行っていますので、のちのちめんどくさい
ことにならないように、ここで変換しているのですが、これが原因かもしれません。

また、
改行が挿入される問題については、winsockのMSG_PEEK辺りにも問題がある可能
性が高いと思ってまして、現在MSG_PEEKを使わない実装を模索している最中です。





pochy-user メーリングリストの案内
Back to archive index