[dovecot/core] e42cd9: imap: Fix sending UID only when necessary on broke...

GitHub noreply at github.com
Sun Feb 19 16:00:13 UTC 2017


  Branch: refs/heads/master-2.2
  Home:   https://github.com/dovecot/core
  Commit: e42cd9406f15140ba43a17d90385eecf0624aeac
      https://github.com/dovecot/core/commit/e42cd9406f15140ba43a17d90385eecf0624aeac
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-02-19 (Sun, 19 Feb 2017)

  Changed paths:
    M src/imap/imap-fetch.c
    M src/imap/imap-fetch.h

  Log Message:
  -----------
  imap: Fix sending UID only when necessary on broken FETCHes.

b748f91d0677fffaa2208b39ebb6db3aeb2e937b changed UID to be sent for most
FETCH replies. There was also some existing code that attempted to do this,
but didn't fully work.

So now:

1) If there are no non-buffered replies, the entire FETCH response isn't
sent.

2) If the buffer was already flushed and nothing else was sent, add UID to
reply. The code paths for handling this are differently for
imap_fetch_failure = disconnect-immediately vs others (depending on
imap_fetch_cur_failed() return value).


  Commit: 099cd74264ca3bdb858fa508310c22268d166723
      https://github.com/dovecot/core/commit/099cd74264ca3bdb858fa508310c22268d166723
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-02-19 (Sun, 19 Feb 2017)

  Changed paths:
    M src/imap/imap-fetch.c
    M src/imap/imap-fetch.h

  Log Message:
  -----------
  imap: Code cleanup - Remove duplicate flags from imap_fetch_state

All the cur_flushed, line_partial and line_finished were about the same
thing.


  Commit: cd7d2946f356c78d4d73f9667c9342a111678d7e
      https://github.com/dovecot/core/commit/cd7d2946f356c78d4d73f9667c9342a111678d7e
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-02-19 (Sun, 19 Feb 2017)

  Changed paths:
    M src/lib-fs/fs-posix.c

  Log Message:
  -----------
  fs-posix: Add "no-fsync" parameter.

This disables calling fdatasync() when fs_write() was done with
FS_OPEN_FLAG_FSYNC. Useful for making tests faster.


  Commit: c72c40333dde84b09423abf49bcf89e8088c5898
      https://github.com/dovecot/core/commit/c72c40333dde84b09423abf49bcf89e8088c5898
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-02-19 (Sun, 19 Feb 2017)

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

  Log Message:
  -----------
  lib-storage: Assert-crash if duplicate internal hooks are added.


  Commit: d670659283bb6e00ce306b116e3acda230530f29
      https://github.com/dovecot/core/commit/d670659283bb6e00ce306b116e3acda230530f29
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-02-19 (Sun, 19 Feb 2017)

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

  Log Message:
  -----------
  lib-storage: mail_storage_init/deinit() is now reference counted.

This allows calling them multiple times and only the final deinit frees the
data.


  Commit: 3413b38df881a8c712ae4a88cfe72bbfed2a7b37
      https://github.com/dovecot/core/commit/3413b38df881a8c712ae4a88cfe72bbfed2a7b37
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-02-19 (Sun, 19 Feb 2017)

  Changed paths:
    M src/doveadm/doveadm-mail.c

  Log Message:
  -----------
  doveadm: Add explicit mail_storage_init/deinit() calls

This mainly prevents losing hooks that were registered by doveadm plugins.

Otherwise what happens is:
 - mail_plugins are unloaded and they unregister their hooks
 - doveadm plugins (e.g. doveadm_sieve) are NOT unloaded
 - mail_storage_deinit() frees all the registered hooks
 - next mail_storage_init() initializes all new hooks
 - All mail_plugins are loaded and they register again their hooks
 - doveadm plugins are NOT re-loaded or re-initialized, so their existing
hooks were lost.


  Commit: bd612a097050665e8e5d72cb352ab3ac11c9a3b6
      https://github.com/dovecot/core/commit/bd612a097050665e8e5d72cb352ab3ac11c9a3b6
  Author: Timo Sirainen <timo.sirainen at dovecot.fi>
  Date:   2017-02-19 (Sun, 19 Feb 2017)

  Changed paths:
    M src/imap/imap-client.c
    M src/imap/imap-client.h
    M src/imap/imap-commands.c
    M src/imap/imap-commands.h

  Log Message:
  -----------
  imap: Fix running time in tagged command replies.

The timing information was updated only after command_exec() returned.
Most of the commands were handled within a single command_exec() though,
so at the time when tagline was sent the running_usecs was still zero.

The msecs in ioloop timing was correct though, because it relied only on
the command start timing info.


Compare: https://github.com/dovecot/core/compare/f6f4ad6f59bf...bd612a097050


More information about the dovecot-cvs mailing list