From owner-freebsd-hackers Mon Feb 17 15:45:34 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id PAA24990 for hackers-outgoing; Mon, 17 Feb 1997 15:45:34 -0800 (PST) Received: from precipice.shockwave.com (ppp-206-170-5-164.rdcy01.pacbell.net [206.170.5.164]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id PAA24980 for ; Mon, 17 Feb 1997 15:45:28 -0800 (PST) Received: from shockwave.com (localhost.shockwave.com [127.0.0.1]) by precipice.shockwave.com (8.8.4/8.7.3) with ESMTP id PAA28691; Mon, 17 Feb 1997 15:44:24 -0800 (PST) Message-Id: <199702172344.PAA28691@precipice.shockwave.com> To: Terry Lambert cc: hackers@freebsd.org, fetchmail-friends@snark.thyrsus.com Subject: Re: looking for QualComm qpopper testers to try new patch In-reply-to: Your message of "Mon, 17 Feb 1997 15:56:22 MST." <199702172256.PAA09811@phaeton.artisoft.com> Date: Mon, 17 Feb 1997 15:44:23 -0800 From: Paul Traina Sender: owner-hackers@freebsd.org X-Loop: FreeBSD.org Precedence: bulk From: Terry Lambert Subject: Re: looking for QualComm qpopper testers to try new patch > I've got a patch to QualComm's QPOP 2.2 that generates Return-Path: lines > in place of the ommitted "From_" line information (which QPOP has incorrect >>ly > ignored for years). This patch should work well with the newly updated > version of Fetchmail that now respects Return-Path: lines. The "From" line is dumped in when leaving an RFC821 transport. I believe you are (incorrectly) assuming that all your mail came from an RFC821 transport. RFC822 does NOT require a From line; in point of fact, it can cause errors on some clients, since the stamp is not necessarily the only way to seperate messages, and the From line is not a valid RFC822 header and may prematurely terminate RFC822 message parsing used to extract little things -- like, oh, say, "boundry=..." from a MIME header line indicating MIME encapsulation is occurring in the RFC822 message body. I agree with you 100%. This converts the From_ line that is in a unix style /var/mail file into the LEGAL Return-Path: line. I've been involved in these fights for a long time (10 years?) and am just interpreting consensus. In any case, it's illegal to transmit a From_ line over a POP connection, IMO, but there is information loss (the envelope from) if you don't pass it some way. Return-Path: is the legal and well supported alternative. Anyway... Yes, since we're violently agreeing with each other. :-) > I'm looking for victims who UNDERSTAND THE POP PROTOCOL to test this patch. > I know it generates the Return-Path: properly, but I don't know if it is > handling the UIDL generation in a deterministic fashion (I hope it is). > > Note: UIDL's generated by this new version of QPOP include the Return-Path: > line in their calcualtion, whereas the old QPOP did not. Therefore on-the > fly UIDL generation is different in the new version, However, since QPOP > stores the first calcualted UIDL, this /shouldn't/ cause your MUA to think > old messages are now new again. > > Of course, that's what I need someone to test (since I don't use UIDLs). Download an older version of Netscape with the POP3 client (you should see RFC1939 for details). I'm kind of hesitant to consider "Return-Path:" in the UID generation; I would much, much prefer that a timestamp of the form: YYYYMMDDHHMMSSII No, you don't understand. QPOP computes the UIDL by calculating a MD5 hash across the entire message header (not including fields that can change, such as Status:). The server previously did not include the envelope from information in the hash (the From_ line). I am now including the Return-Path: line in the hash. I am just adding more data to the hash. Additionally, if a message is already in the spool file with an X-UIDL line in it, QPOP will use that computed value instead of recomputing its own, which is why I can get away with adding Return-Path: to the hash. I'd like the UIDL to simply be the message ID, but frankly, they are NOT unique, and the author of QPOP realized that too. (where II == instance for a given second) be placed in an "X-UID:" or a "Message-ID:" header by the transport (not generated on the fly by the QPopper). I don't think it's the QPopper's responsibility, I think it's the message store's responsibility, and sendmail is the (current) maintainer of your message store. A "Message-ID:" would be doubly helpful, in that it would allow threading of the (nominally SMTP-created) list archives... really necessary to make the archives even marginally useful. That can be extracted from the header already. > If you don't know what a UIDL is, and why it's used, or you're not > sure your MUA is using UIDLs to determine which messages it has already > seen, then please don't bother testing this. Heh, sorry, my MUA doesn't use the UIDL Pop3 command to list UID's. Yep, I use MH myself. > Things I need answered: > > (a) Did this cause you to download old messages left on server > as if they were new again? (hopefully not) > (b) If you leave mail on the server, do you get stuck downloading > that same message over and over again every time you start > your pop client. I have to say that this kind of empirical testing isn't very useful. Actually, it is. It makes sure that the old UIDs are persistant across POP sessions, and that the new hash change didn't screw anything up, assuming that your MUA uses UID's as specified by POP3. :-) Another mechanism, if you *must* generate "on the fly", is to generate a lexical index on user authentication to a particular maildrop, then MD5 the full message body. The timestamp from the SMTP will be different in any case (think SMTPd generation of "Apparently-To:" from the "RCPT TO:..." line). Regards, Terry Lambert terry@lambert.org --- Any opinions in this posting are my own and not those of my present or previous employers.