Hello community,

here is the log from the commit of package dovecot21 for openSUSE:Factory 
checked in at 2013-02-22 16:49:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dovecot21 (Old)
 and      /work/SRC/openSUSE:Factory/.dovecot21.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "dovecot21", Maintainer is ""

Changes:
--------
--- /work/SRC/openSUSE:Factory/dovecot21/dovecot21.changes      2013-01-31 
14:44:49.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.dovecot21.new/dovecot21.changes 2013-02-22 
16:49:06.000000000 +0100
@@ -1,0 +2,7 @@
+Fri Feb  8 17:03:42 UTC 2013 - [email protected]
+
+- Update to 2.1.15:
+  - v2.1.14's dovecot.index.cache fixes caused Dovecot to use more disk I/O
+    and memory than was necessary.
+
+-------------------------------------------------------------------

Old:
----
  dovecot-2.1.14.tar.bz2

New:
----
  dovecot-2.1.15.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ dovecot21.spec ++++++
--- /var/tmp/diff_new_pack.1zqehi/_old  2013-02-22 16:49:09.000000000 +0100
+++ /var/tmp/diff_new_pack.1zqehi/_new  2013-02-22 16:49:09.000000000 +0100
@@ -17,11 +17,11 @@
 
 
 Name:           dovecot21
-Version:        2.1.14
+Version:        2.1.15
 Release:        0
 %define pkg_name dovecot
 %define sieve_version 2.1
-%define dovecot_version 2.1.14
+%define dovecot_version 2.1.15
 %define dovecot_pigeonhole_docdir       
%{_docdir}/%{pkg_name}/dovecot-pigeonhole
 %define with_solr 1
 %define with_clucene 1

++++++ dovecot-2.1.14.tar.bz2 -> dovecot-2.1.15.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dovecot-2.1.14/ChangeLog new/dovecot-2.1.15/ChangeLog
--- old/dovecot-2.1.14/ChangeLog        2013-01-30 22:45:15.000000000 +0100
+++ new/dovecot-2.1.15/ChangeLog        2013-02-08 14:05:45.000000000 +0100
@@ -1,8 +1,91 @@
+2013-02-08  Timo Sirainen  <[email protected]>
+
+       * .hgsigs:
+       Added signature for changeset fc75811f3c08
+       [26fa19903dcd] [tip]
+
+       * .hgtags:
+       Added tag 2.1.15 for changeset fc75811f3c08
+       [5fe181f1497a]
+
+       * NEWS, configure.in:
+       Released v2.1.15.
+       [fc75811f3c08] [2.1.15]
+
+2013-02-06  Timo Sirainen  <[email protected]>
+
+       * src/lib-storage/mail-storage.c:
+       lib-storage: Convert INBOX to uppercase also when namespace has
+       inbox=no. This fixes assert-crash in
+       mailbox_check_mismatching_separators().
+       [3ec0d772be49]
+
+       * src/lib-index/mail-cache.c:
+       lib-index: Avoid assert-crashing later if mmap(dovecot.index.cache)
+       fails.
+       [a54f749f5a44]
+
+2013-02-05  Timo Sirainen  <[email protected]>
+
+       * src/lmtp/client.c, src/lmtp/client.h, src/lmtp/commands.c:
+       lmtp: If verbose_proctitle=yes, update the process state in the
+       title.
+       [63117ab893dc]
+
+2013-02-04  Timo Sirainen  <[email protected]>
+
+       * src/lib-index/mail-cache.c:
+       lib-index: Bug in cache file size verification caused the whole
+       cache file to be mapped.
+       [443ff272317f]
+
+       * src/lib-storage/index/index-mail.c:
+       lib-storage: If message parser's input stream is closed early, don't
+       treat it as error. This seems to happen sometimes during message
+       saving(?), although I'm not exactly sure why. In any case it
+       shouldn't log an error about it. This behavior is probably better
+       than failing. The caller should be the one to figure out if saving
+       has failed or not.
+       [b15a98fd8e15]
+
+       * src/imap/imap-client.c:
+       imap: Set [io]stream name for imap client connections.
+       [23fb615c3628]
+
+       * src/lib/istream-tee.c:
+       istream-tee: Copy the parent stream's name to child streams.
+       [eb117a619075]
+
+       * src/lib/istream.c:
+       i_stream_close(): Set stream_errno to EPIPE instead of ENOENT.
+       [93633121bc9d]
+
+2013-02-02  Timo Sirainen  <[email protected]>
+
+       * src/lib-storage/index/dbox-common/dbox-storage.c:
+       dbox: Fail if trying to create a mailbox that already exists.
+       [004b69090776]
+
+2013-01-31  Timo Sirainen  <[email protected]>
+
+       * src/lib-ssl-iostream/istream-openssl.c:
+       lib-ssl-iostream: Pass the plain istream's fd to ssl_istream.
+       [bf80034a547d]
+
+       * src/lib/iostream-rawlog.c:
+       iostream-rawlog: Ignore 0 byte writes instead of assert-crashing.
+       [f35a8649634c]
+
+       * src/auth/auth-request.c:
+       auth: Removed assert-checks, allowing plugins to set
+       skip_password_check.
+       [5751963a3be8]
+
 2013-01-30  Timo Sirainen  <[email protected]>
 
        * .hgsigs:
        Added signature for changeset b314c97d4bbf
-       [57eb9a6ac6c0] [tip]
+       [57eb9a6ac6c0]
 
        * .hgtags:
        Added tag 2.1.14 for changeset b314c97d4bbf
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dovecot-2.1.14/NEWS new/dovecot-2.1.15/NEWS
--- old/dovecot-2.1.14/NEWS     2013-01-30 22:44:27.000000000 +0100
+++ new/dovecot-2.1.15/NEWS     2013-02-08 14:03:27.000000000 +0100
@@ -1,3 +1,8 @@
+v2.1.15 2013-02-08  Timo Sirainen <[email protected]>
+
+       - v2.1.14: dovecot.index.cache fixes caused it to use more disk I/O
+         and memory than necessary.
+
 v2.1.14 2013-01-30  Timo Sirainen <[email protected]>
 
        + doveadm acl recalc command added
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dovecot-2.1.14/configure new/dovecot-2.1.15/configure
--- old/dovecot-2.1.14/configure        2013-01-30 22:25:35.000000000 +0100
+++ new/dovecot-2.1.15/configure        2013-02-08 14:05:09.000000000 +0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for Dovecot 2.1.14.
+# Generated by GNU Autoconf 2.69 for Dovecot 2.1.15.
 #
 # Report bugs to <[email protected]>.
 #
@@ -590,8 +590,8 @@
 # Identity of this package.
 PACKAGE_NAME='Dovecot'
 PACKAGE_TARNAME='dovecot'
-PACKAGE_VERSION='2.1.14'
-PACKAGE_STRING='Dovecot 2.1.14'
+PACKAGE_VERSION='2.1.15'
+PACKAGE_STRING='Dovecot 2.1.15'
 PACKAGE_BUGREPORT='[email protected]'
 PACKAGE_URL=''
 
@@ -1461,7 +1461,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures Dovecot 2.1.14 to adapt to many kinds of systems.
+\`configure' configures Dovecot 2.1.15 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1531,7 +1531,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of Dovecot 2.1.14:";;
+     short | recursive ) echo "Configuration of Dovecot 2.1.15:";;
    esac
   cat <<\_ACEOF
 
@@ -1692,7 +1692,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-Dovecot configure 2.1.14
+Dovecot configure 2.1.15
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2419,7 +2419,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by Dovecot $as_me 2.1.14, which was
+It was created by Dovecot $as_me 2.1.15, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3236,7 +3236,7 @@
 
 # Define the identity of the package.
  PACKAGE='dovecot'
- VERSION='2.1.14'
+ VERSION='2.1.15'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -25251,7 +25251,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by Dovecot $as_me 2.1.14, which was
+This file was extended by Dovecot $as_me 2.1.15, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -25317,7 +25317,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-Dovecot config.status 2.1.14
+Dovecot config.status 2.1.15
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dovecot-2.1.14/configure.in 
new/dovecot-2.1.15/configure.in
--- old/dovecot-2.1.14/configure.in     2013-01-30 22:25:23.000000000 +0100
+++ new/dovecot-2.1.15/configure.in     2013-02-08 14:03:31.000000000 +0100
@@ -1,5 +1,5 @@
 AC_PREREQ([2.59])
-AC_INIT([Dovecot],[2.1.14],[[email protected]])
+AC_INIT([Dovecot],[2.1.15],[[email protected]])
 AC_CONFIG_SRCDIR([src])
 
 AM_INIT_AUTOMAKE([foreign])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dovecot-2.1.14/src/auth/auth-request.c 
new/dovecot-2.1.15/src/auth/auth-request.c
--- old/dovecot-2.1.14/src/auth/auth-request.c  2013-01-30 16:12:43.000000000 
+0100
+++ new/dovecot-2.1.15/src/auth/auth-request.c  2013-01-30 23:26:21.000000000 
+0100
@@ -291,10 +291,9 @@
                request->no_login = TRUE;
        else if (strcmp(key, "successful") == 0)
                request->successful = TRUE;
-       else if (strcmp(key, "skip_password_check") == 0) {
-               i_assert(request->master_user !=  NULL);
+       else if (strcmp(key, "skip_password_check") == 0)
                request->skip_password_check = TRUE;
-       } else if (strcmp(key, "mech") == 0)
+       else if (strcmp(key, "mech") == 0)
                request->mech_name = p_strdup(request->pool, value);
        else
                return FALSE;
@@ -1705,7 +1704,6 @@
 
        if (request->skip_password_check) {
                /* currently this can happen only with master logins */
-               i_assert(request->master_user != NULL);
                return 1;
        }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dovecot-2.1.14/src/imap/imap-client.c 
new/dovecot-2.1.15/src/imap/imap-client.c
--- old/dovecot-2.1.14/src/imap/imap-client.c   2012-03-07 12:18:39.000000000 
+0100
+++ new/dovecot-2.1.15/src/imap/imap-client.c   2013-02-04 15:01:48.000000000 
+0100
@@ -56,6 +56,8 @@
        client->input = i_stream_create_fd(fd_in,
                                           set->imap_max_line_length, FALSE);
        client->output = o_stream_create_fd(fd_out, (size_t)-1, FALSE);
+       i_stream_set_name(client->input, "<imap client>");
+       o_stream_set_name(client->output, "<imap client>");
 
        o_stream_set_flush_callback(client->output, client_output, client);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dovecot-2.1.14/src/lib/iostream-rawlog.c 
new/dovecot-2.1.15/src/lib/iostream-rawlog.c
--- old/dovecot-2.1.14/src/lib/iostream-rawlog.c        2012-02-12 
17:55:55.000000000 +0100
+++ new/dovecot-2.1.15/src/lib/iostream-rawlog.c        2013-01-31 
17:14:34.000000000 +0100
@@ -44,7 +44,8 @@
 {
        size_t i, start;
 
-       i_assert(size > 0);
+       if (size == 0)
+               return;
 
        io_loop_time_refresh();
        if (rstream->write_timestamp)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dovecot-2.1.14/src/lib/istream-tee.c 
new/dovecot-2.1.15/src/lib/istream-tee.c
--- old/dovecot-2.1.14/src/lib/istream-tee.c    2012-02-12 17:55:55.000000000 
+0100
+++ new/dovecot-2.1.15/src/lib/istream-tee.c    2013-02-04 14:46:10.000000000 
+0100
@@ -223,6 +223,7 @@
        tee->children = tstream;
 
        ret = i_stream_create(&tstream->istream, input, i_stream_get_fd(input));
+       i_stream_set_name(&tstream->istream.istream, i_stream_get_name(input));
        /* we keep the reference in tee stream, no need for extra references */
        i_stream_unref(&input);
        return ret;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dovecot-2.1.14/src/lib/istream.c 
new/dovecot-2.1.15/src/lib/istream.c
--- old/dovecot-2.1.14/src/lib/istream.c        2012-02-12 17:55:55.000000000 
+0100
+++ new/dovecot-2.1.15/src/lib/istream.c        2013-02-04 14:58:30.000000000 
+0100
@@ -75,7 +75,7 @@
        stream->closed = TRUE;
 
        if (stream->stream_errno == 0)
-               stream->stream_errno = ENOENT;
+               stream->stream_errno = EPIPE;
 }
 
 void i_stream_set_init_buffer_size(struct istream *stream, size_t size)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dovecot-2.1.14/src/lib-index/mail-cache.c 
new/dovecot-2.1.15/src/lib-index/mail-cache.c
--- old/dovecot-2.1.14/src/lib-index/mail-cache.c       2013-01-29 
16:53:09.000000000 +0100
+++ new/dovecot-2.1.15/src/lib-index/mail-cache.c       2013-02-06 
17:28:59.000000000 +0100
@@ -367,7 +367,8 @@
        /* verify offset + size before trying to allocate a huge amount of
           memory due to them. note that we may be prefetching more than we
           actually need, so don't fail too early. */
-       if (size > cache->mmap_length || offset + size > cache->mmap_length) {
+       if ((size > cache->mmap_length || offset + size > cache->mmap_length) &&
+           (offset > 0 || size > sizeof(struct mail_cache_header))) {
                if (fstat(cache->fd, &st) < 0) {
                        i_error("fstat(%s) failed: %m", cache->filepath);
                        return -1;
@@ -376,7 +377,8 @@
                        *data_r = NULL;
                        return 0;
                }
-               size = st.st_size - offset;
+               if (offset + size > (uoff_t)st.st_size)
+                       size = st.st_size - offset;
        }
 
        cache->remap_counter++;
@@ -435,6 +437,7 @@
        cache->mmap_base = mmap_ro_file(cache->fd, &cache->mmap_length);
        if (cache->mmap_base == MAP_FAILED) {
                cache->mmap_base = NULL;
+               cache->mmap_length = 0;
                mail_cache_set_syscall_error(cache, "mmap()");
                return -1;
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dovecot-2.1.14/src/lib-ssl-iostream/istream-openssl.c 
new/dovecot-2.1.15/src/lib-ssl-iostream/istream-openssl.c
--- old/dovecot-2.1.14/src/lib-ssl-iostream/istream-openssl.c   2012-06-22 
16:35:19.000000000 +0200
+++ new/dovecot-2.1.15/src/lib-ssl-iostream/istream-openssl.c   2013-01-31 
17:27:08.000000000 +0100
@@ -82,5 +82,6 @@
        sstream->istream.read = i_stream_ssl_read;
 
        sstream->istream.istream.readable_fd = FALSE;
-       return i_stream_create(&sstream->istream, NULL, -1);
+       return i_stream_create(&sstream->istream, NULL,
+                              i_stream_get_fd(ssl_io->plain_input));
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/dovecot-2.1.14/src/lib-storage/index/dbox-common/dbox-storage.c 
new/dovecot-2.1.15/src/lib-storage/index/dbox-common/dbox-storage.c
--- old/dovecot-2.1.14/src/lib-storage/index/dbox-common/dbox-storage.c 
2012-12-13 11:22:07.000000000 +0100
+++ new/dovecot-2.1.15/src/lib-storage/index/dbox-common/dbox-storage.c 
2013-02-01 23:29:59.000000000 +0100
@@ -254,6 +254,12 @@
        if (mailbox_open(box) < 0)
                return -1;
 
+       if (mail_index_get_header(box->view)->uid_validity != 0) {
+               mail_storage_set_error(box->storage, MAIL_ERROR_EXISTS,
+                                      "Mailbox already exists");
+               return -1;
+       }
+
        /* if alt path already exists and contains files, rebuild storage so
           that we don't start overwriting files. */
        alt_path = mailbox_list_get_path(box->list, box->name,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dovecot-2.1.14/src/lib-storage/index/index-mail.c 
new/dovecot-2.1.15/src/lib-storage/index/index-mail.c
--- old/dovecot-2.1.14/src/lib-storage/index/index-mail.c       2013-01-22 
15:24:48.000000000 +0100
+++ new/dovecot-2.1.15/src/lib-storage/index/index-mail.c       2013-02-04 
15:07:10.000000000 +0100
@@ -762,15 +762,20 @@
                i_stream_ref(parser_input);
                ret = message_parser_deinit(&mail->data.parser_ctx,
                                            &mail->data.parts) < 0 ? 0 : 1;
-               if (parser_input->stream_errno != 0) {
+               if (parser_input->stream_errno == 0 ||
+                   parser_input->stream_errno == EPIPE) {
+                       /* EPIPE = input already closed. allow the caller to
+                          decide if that is an error or not. */
+                       i_assert(i_stream_read(parser_input) == -1 &&
+                                !i_stream_have_bytes_left(parser_input));
+               } else {
                        errno = parser_input->stream_errno;
                        mail_storage_set_critical(mail->mail.mail.box->storage,
-                                       "read(%s) failed: %m",
-                                       i_stream_get_name(parser_input));
+                               "mail parser: read(%s, box=%s) failed: %m",
+                               i_stream_get_name(parser_input),
+                               mail->mail.mail.box->vname);
                        ret = -1;
                }
-               i_assert(i_stream_read(parser_input) == -1 &&
-                        !i_stream_have_bytes_left(parser_input));
                i_stream_unref(&parser_input);
        }
        if (ret <= 0) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dovecot-2.1.14/src/lib-storage/mail-storage.c 
new/dovecot-2.1.15/src/lib-storage/mail-storage.c
--- old/dovecot-2.1.14/src/lib-storage/mail-storage.c   2013-01-04 
21:36:44.000000000 +0100
+++ new/dovecot-2.1.15/src/lib-storage/mail-storage.c   2013-02-06 
17:59:40.000000000 +0100
@@ -627,10 +627,12 @@
 
        i_assert(uni_utf8_str_is_valid(vname));
 
-       if ((list->ns->flags & NAMESPACE_FLAG_INBOX_USER) != 0 &&
-           strncasecmp(vname, "INBOX", 5) == 0 &&
+       if (strncasecmp(vname, "INBOX", 5) == 0 &&
            strncmp(vname, "INBOX", 5) != 0) {
-               /* make sure INBOX shows up in uppercase everywhere */
+               /* make sure INBOX shows up in uppercase everywhere. do this
+                  regardless of whether we're in inbox=yes namespace, because
+                  clients expect INBOX to be case insensitive regardless of
+                  server's internal configuration. */
                if (vname[5] == '\0')
                        vname = "INBOX";
                else if (vname[5] == mail_namespace_get_sep(list->ns))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dovecot-2.1.14/src/lmtp/client.c 
new/dovecot-2.1.15/src/lmtp/client.c
--- old/dovecot-2.1.14/src/lmtp/client.c        2012-09-22 18:36:20.000000000 
+0200
+++ new/dovecot-2.1.15/src/lmtp/client.c        2013-02-05 15:46:13.000000000 
+0100
@@ -8,6 +8,7 @@
 #include "istream.h"
 #include "ostream.h"
 #include "hostpid.h"
+#include "process-title.h"
 #include "var-expand.h"
 #include "settings-parser.h"
 #include "master-service.h"
@@ -31,6 +32,20 @@
 static struct client *clients = NULL;
 unsigned int clients_count = 0;
 
+void client_state_set(struct client *client, const char *name)
+{
+       client->state.name = name;
+
+       if (!client->service_set->verbose_proctitle)
+               return;
+       if (clients_count == 0)
+               process_title_set("[idling]");
+       else if (clients_count > 1)
+               process_title_set(t_strdup_printf("[%u clients]", 
clients_count));
+       else
+               process_title_set(t_strdup_printf("[%s]", client->state.name));
+}
+
 static void client_idle_timeout(struct client *client)
 {
        client_destroy(client,
@@ -156,6 +171,7 @@
        lmtp_settings_dup(set_parser, client->pool, &lmtp_set, &lda_set);
        settings_var_expand(&lmtp_setting_parser_info, lmtp_set, client->pool,
                mail_storage_service_get_var_expand_table(storage_service, 
&input));
+       client->service_set = master_service_settings_get(master_service);
        client->lmtp_set = lmtp_set;
        client->set = lda_set;
 }
@@ -219,7 +235,6 @@
        client_io_reset(client);
        client->state_pool = pool_alloconly_create("client state", 4096);
        client->state.mail_data_fd = -1;
-       client->state.name = "banner";
        client_read_settings(client);
        client_raw_user_create(client);
        client_generate_session_id(client);
@@ -229,6 +244,7 @@
        DLLIST_PREPEND(&clients, client);
        clients_count++;
 
+       client_state_set(client, "banner");
        client_send_line(client, "220 %s %s", client->my_domain,
                         client->lmtp_set->login_greeting);
        i_info("Connect from %s", client_remote_id(client));
@@ -243,6 +259,8 @@
        clients_count--;
        DLLIST_REMOVE(&clients, client);
 
+       client_state_set(client, "destroyed");
+
        if (client->raw_mail_user != NULL)
                mail_user_unref(&client->raw_mail_user);
        if (client->proxy != NULL)
@@ -326,7 +344,7 @@
        client->state.mail_data_fd = -1;
 
        client_generate_session_id(client);
-       client->state.name = "reset";
+       client_state_set(client, "reset");
 }
 
 void client_send_line(struct client *client, const char *fmt, ...)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dovecot-2.1.14/src/lmtp/client.h 
new/dovecot-2.1.15/src/lmtp/client.h
--- old/dovecot-2.1.14/src/lmtp/client.h        2011-12-10 09:34:32.000000000 
+0100
+++ new/dovecot-2.1.15/src/lmtp/client.h        2013-02-05 15:44:04.000000000 
+0100
@@ -43,6 +43,7 @@
        const struct setting_parser_info *user_set_info;
        const struct lda_settings *set;
        const struct lmtp_settings *lmtp_set;
+       const struct master_service_settings *service_set;
        int fd_in, fd_out;
        struct io *io;
        struct istream *input;
@@ -76,6 +77,7 @@
                       const char *reason);
 void client_io_reset(struct client *client);
 void client_state_reset(struct client *client);
+void client_state_set(struct client *client, const char *name);
 
 void client_input_handle(struct client *client);
 int client_input_read(struct client *client);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dovecot-2.1.14/src/lmtp/commands.c 
new/dovecot-2.1.15/src/lmtp/commands.c
--- old/dovecot-2.1.14/src/lmtp/commands.c      2012-10-30 13:39:55.000000000 
+0100
+++ new/dovecot-2.1.15/src/lmtp/commands.c      2013-02-05 15:44:21.000000000 
+0100
@@ -74,7 +74,7 @@
 
        i_free(client->lhlo);
        client->lhlo = i_strdup(str_c(domain));
-       client->state.name = "LHLO";
+       client_state_set(client, "LHLO");
        return 0;
 }
 
@@ -143,7 +143,7 @@
        client->state.mail_from = p_strdup(client->state_pool, addr);
        p_array_init(&client->state.rcpt_to, client->state_pool, 64);
        client_send_line(client, "250 2.1.0 OK");
-       client->state.name = "MAIL FROM";
+       client_state_set(client, "MAIL FROM");
        return 0;
 }
 
@@ -488,7 +488,7 @@
        const char *error = NULL;
        int ret = 0;
 
-       client->state.name = "RCPT TO";
+       client_state_set(client, "RCPT TO");
 
        if (client->state.mail_from == NULL) {
                client_send_line(client, "503 5.5.1 MAIL needed first");
@@ -1014,7 +1014,7 @@
        client_send_line(client, "354 OK");
 
        io_remove(&client->io);
-       client->state.name = "DATA";
+       client_state_set(client, "DATA");
        client->io = io_add(client->fd_in, IO_READ, client_input_data, client);
        client_input_data_handle(client);
        return -1;

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to