qmailのpop3d。もとからあまり立派な実装もしてないので、さくっとdovecotにでも乗り換えたほうがいいんだとは思うんだが、vpopmailとの連携もあるのでとりあえず放置されてた。
で、pop3dは結構ガタガタな実装なのはよく知られている話で、DJBのおっさんはどうもメールを送ることにはご執心なのだがメールボックスに入ってからは「おまえらシェルでメール読めれば文句ねーだろ」というような思想でも持っているのか、かなりめちゃくちゃである。
が、実際問題そんなpopサーバでもあまり問題なく動く(いているように見える)ので、さして気にもしてないし実害も出なけりゃそれでいーやと。
。。。実害出たwwwwwwwwwwwwww
現在のRFCではPOPとの通信は
User送ってPassコマンド送って、statなりで通数とって、listでサイズ見つつuidlで固有ID取得しておいてretrで読み出して既読未読管理を行うってのが基本。
で、はるか昔にRFCに実装されてたのがLASTコマンド。これはretrで読み出したナンバーの次のナンバーを返すのだが、UIDLの固有IDを返すわけじゃない。
…きわめて無意味だったので、さっくりとRFCからお姿を御隠しになられた。
よってLASTコマンド投げて来るクライアントなんてもうほとんどいねーし、使ってたらお前がRFC違反じゃん!みたいな気分なのだが。
いた。
一般ユーザーが自分の使ってるメールサーバがLAST対応かどうかなんて知るわけないだろう馬鹿wwwwwwwwwwwwwwwwww
堂々とLAST使ってますとか書くなよwwwwwwwwwwwwwwwww
とはいえ、qmail-pop3dも一応LASTコマンドはサポートしている。
ただし、retrの次のナンバーじゃなくて、Dele(削除)が投げられたときだけ機能する。よって既読未読管理にはそもそも使えない仕様。というかこれはこれでなかなか豪快にむちゃくちゃなのだが。
さすがDJB。むちゃくちゃしてやった。
今も反省していない。
仕方がないので対応することにする。要はretr食らった時にlast+1してあげればいいだけなんだから
qmail-pop3d 270行目ぐらいに以下の行を追加(アバウトなw
if (i + 1 > last) last = i + 1;
コンパイルしてqmail-pop3d置き換えてsvc -xで再起動。
動作チェック。
last
+OK 0
list
+OK
1 34699
2 34589
.
retr 1
+OK
(メール表示)
.
last
+OK 1
quit
+OK
うし、おk。ちなみにlastがくるってるときのpop3dは二回目のlastに+OK 0を返す。
lastを基準に既読未読判断をしてると全メールを読んじゃうって塩梅だ。
ていうかLAST送ってくんなYahoo。UIDLでちゃんとやれちゃんと。
メールクライアント機能の実装が手抜き過ぎだ!w(qmail使いがいうことでもないと思いますwwwww
まぁねぇ。
決められたことを守らなかったのは事実。
責任はその人に発生するんだから。。。
できちゃったで済ませようてのは筋は通らんでしょ。
どこも行くところが無い?
でも飼いたい?
交渉云々の前に、「ゴメンナサイ」が先でしょうと思うのはウチが甘いんでしょーか。
悪いことやったのは悪い。
それを認めない人に何も言う権限はないぽ。
能登と三重の援助は~義捐金箱が婦人会で回ってきて~なけなしの2千円投入っす><
一口千円からって何よぉぉぉぉぉ><
そんなん聞いたら気持ちよく寄付デキナイ。
気持ち表現するのに下限決めないでよと思った。
キモチとして孤独老人が孫も子供もめったに遊びに来ない、猫だけが普段から傍で、みたいなのは”気持ちとして”は理解できる。
でもだからってルールを破っていいとか甘えちゃえってのは違うんだと思う。
どうしても避けられないなら飼う前に言わなきゃいけなかったことだと思うし、十分に事情を話して本当に飼わないといけないような話なら日本のお隣さんや行政は多少のことは目をつぶってくれる優しさだってあると思う。
黙ってなんかやっておいて開き直るのはだめだよねぇ。まずごめんなさいは言わなきゃな。
もっとも生活保護もらっといてペットとか言ってるのは理解不能だ。生活保護でどうやってペットの命への責任を持てるってんだ。
子供のあれがほしいこれがほしいの駄々となんも変わらんわな。
あれですよ。
義務と権利の優先順位が分からない人なんですよ。
契約違反で退去にはならないよう祈ります。
それにしても善意に目標や下限があるのもおかしな話だねぇ。
まるで強制に見える罠。
ふと昔の話を思いだしましたよよよ。