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 - alexandre(a)exatati.com.br
+
+- 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 <tss(a)iki.fi>
+
+ * .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 <tss(a)iki.fi>
+
+ * 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 <tss(a)iki.fi>
+
+ * 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 <tss(a)iki.fi>
+
+ * 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 <tss(a)iki.fi>
+
+ * 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 <tss(a)iki.fi>
+
+ * 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 <tss(a)iki.fi>
* .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 <tss(a)iki.fi>
+
+ - 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 <tss(a)iki.fi>
+ 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 <dovecot(a)dovecot.org>.
#
@@ -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='dovecot(a)dovecot.org'
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],[dovecot(a)dovecot.org])
+AC_INIT([Dovecot],[2.1.15],[dovecot(a)dovecot.org])
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: opensuse-commit+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-commit+help(a)opensuse.org