I've fixed qmail-popbull.  It was occasionally the case that a message
was deleted after qmail-popbull created the symlink, but before
qmail-pop3d saw it.  qmail-pop3d would then ignore the dangling
symlink.  The fix is quite simple.  Insert the following line in
qmail-popbull.c.

   if (stat(fn.s, &st) == -1) die();
+  if ((st.st_mode & 0222) == 0) continue;
   if (st.st_mtime > ts_date)

Then, instead of deleting a bulletin, run "chmod ugo-w" on it.  When
it lacks any write permissions, it's considered archived, and
qmail-popbull will no longer create new symlinks pointing to it.
There is still a possibility of a user creating a symlink and then not
deleting it in the same POP3 session.  Leave the message around until
the probability of that has dropped close enough to zero.

The proper fix would be for qmail-pop3d (actually maildir.c) to delete
dangling symlinks.

-- 
-russ nelson <[EMAIL PROTECTED]>  http://russnelson.com
Crynwr sells support for free software  | PGPok | Government schools are so
521 Pleasant Valley Rd. | +1 315 268 1925 voice | bad that any rank amateur
Potsdam, NY 13676-3213  | +1 315 268 9201 FAX   | can outdo them. Homeschool!

Reply via email to