[dovecot/core] f9dad5: pop3: Start autoexpunging only after client is dis...

GitHub noreply at github.com
Fri Mar 24 01:30:10 UTC 2017


  Branch: refs/heads/master
  Home:   https://github.com/dovecot/core
  Commit: f9dad58173067427f68fd67c3cdc7412c3efedba
      https://github.com/dovecot/core/commit/f9dad58173067427f68fd67c3cdc7412c3efedba
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-03-23 (Thu, 23 Mar 2017)

  Changed paths:
    M src/pop3/pop3-client.c

  Log Message:
  -----------
  pop3: Start autoexpunging only after client is disconnected


  Commit: 646817f0cfb39b0e0eb545900f1566b76a851b20
      https://github.com/dovecot/core/commit/646817f0cfb39b0e0eb545900f1566b76a851b20
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-03-23 (Thu, 23 Mar 2017)

  Changed paths:
    M src/imap/imap-client.c
    M src/imap/main.c
    M src/lib-storage/mail-storage-service.c
    M src/lib-storage/mail-storage-service.h
    M src/lib-storage/mail-user.c
    M src/lib-storage/mail-user.h
    M src/lmtp/commands.c
    M src/lmtp/main.c
    M src/pop3/main.c
    M src/pop3/pop3-client.c

  Log Message:
  -----------
  lib-storage: Replace MAIL_STORAGE_SERVICE_FLAG_AUTOEXPUNGE with explicit mail_user_autoexpunge()

This allows better control of which users are being autoexpunged. This
patch changes behavior at least in two ways now:

1) After shared folder access, the owner user isn't autoexpunged at deinit.
Although this is a bit questionable of whether it should be or not.

2) LMTP's quota check at RCPT TO stage doesn't trigger autoexpunging.


  Commit: 0c9dda2bad67db38d67d92d64839a14214f7d293
      https://github.com/dovecot/core/commit/0c9dda2bad67db38d67d92d64839a14214f7d293
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-03-23 (Thu, 23 Mar 2017)

  Changed paths:
    M src/lmtp/commands.c

  Log Message:
  -----------
  lmtp: Trigger autoexpunging only for the last RCPT TO.

Otherwise if the autoexpunging takes a long time, the LMTP client could
disconnect due to a timeout. The mails would still eventually get delivered
though, so it would result in duplicate mails being delivered.

An alternative to this would be to keep all the mail_users referenced until
the delivery is finished and then autoexpunge all of them at the end. It
increases memory usage though and complicates the code, so at least for now
it's not implemented.


  Commit: 8c0afac054fc783b1510c7839324302e8dc23643
      https://github.com/dovecot/core/commit/8c0afac054fc783b1510c7839324302e8dc23643
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-03-23 (Thu, 23 Mar 2017)

  Changed paths:
    M src/lib-storage/mail-autoexpunge.c
    M src/lib-storage/mail-autoexpunge.h

  Log Message:
  -----------
  lib-storage: Change mail_user_autoexpunge() to return number of autoexpunged mails


Compare: https://github.com/dovecot/core/compare/439dab8f70cb...8c0afac054fc


More information about the dovecot-cvs mailing list