dovecot-2.0: Merged latest changes from dovecot-2.0 branch.
dovecot at dovecot.org
dovecot at dovecot.org
Sat Oct 2 14:34:01 EEST 2010
details: http://hg.dovecot.org/dovecot-2.0/rev/37a0158f2e4c
changeset: 12248:37a0158f2e4c
user: Timo Sirainen <tss at iki.fi>
date: Fri Aug 13 17:40:01 2010 +0100
description:
Merged latest changes from dovecot-2.0 branch.
diffstat:
.hgignore | 1 +
.hgsigs | 2 +
.hgtags | 2 +
AUTHORS | 2 +-
NEWS | 25 +
TODO | 1 +
configure.in | 43 +-
doc/example-config/conf.d/10-director.conf | 4 +
doc/example-config/conf.d/15-lda.conf | 2 +-
doc/example-config/conf.d/20-imap.conf | 3 +-
doc/example-config/dovecot.conf | 6 +
dovecot-config.in.in | 2 +-
src/auth/auth-master-connection.c | 2 +-
src/auth/auth-request.c | 151 +++++-----
src/auth/db-ldap.h | 2 +-
src/auth/db-passwd-file.c | 2 +-
src/director/director-settings.c | 4 +-
src/director/director-settings.h | 1 +
src/director/doveadm-connection.c | 5 +-
src/director/main.c | 14 +-
src/doveadm/Makefile.am | 57 +++-
src/doveadm/client-connection.c | 239 +++++++++++++++++
src/doveadm/client-connection.h | 9 +
src/doveadm/doveadm-director.c | 3 +-
src/doveadm/doveadm-mail-expunge.c | 20 +-
src/doveadm/doveadm-mail-mailbox-status.c | 21 +-
src/doveadm/doveadm-mail-mailbox.c | 47 ---
src/doveadm/doveadm-mail-server.c | 266 +++++++++++++++++++
src/doveadm/doveadm-mail.c | 66 +++-
src/doveadm/doveadm-mail.h | 16 +-
src/doveadm/doveadm-mutf7.c | 57 ++++
src/doveadm/doveadm-print-server.c | 82 +++++
src/doveadm/doveadm-print-tab.c | 4 +-
src/doveadm/doveadm-print.c | 18 +-
src/doveadm/doveadm-print.h | 3 +
src/doveadm/doveadm-server.h | 16 +
src/doveadm/doveadm-settings.c | 69 ++++
src/doveadm/doveadm-settings.h | 2 +
src/doveadm/doveadm-util.c | 147 ++++++++++
src/doveadm/doveadm-util.h | 16 +
src/doveadm/doveadm.c | 169 +----------
src/doveadm/doveadm.h | 7 +-
src/doveadm/main.c | 101 +++++++
src/doveadm/server-connection.c | 290 ++++++++++++++++++++
src/doveadm/server-connection.h | 27 +
src/dsync/dsync-brain-msgs.c | 6 +-
src/dsync/dsync-brain.c | 5 +
src/dsync/dsync-proxy-server.c | 4 +-
src/dsync/dsync-worker-local.c | 82 ++++-
src/dsync/dsync-worker.c | 4 +-
src/dsync/dsync.c | 1 +
src/imap-login/Makefile.am | 3 +-
src/imap-login/client-authenticate.c | 6 +-
src/imap-login/client-authenticate.h | 2 +-
src/imap-login/client.c | 27 +-
src/imap-login/imap-proxy.c | 17 +
src/imap/cmd-subscribe.c | 6 +-
src/imap/imap-client.c | 12 +-
src/imap/imap-commands-util.c | 4 +-
src/lib-dict/dict.h | 2 +-
src/lib-index/mail-cache.c | 12 +-
src/lib-index/mail-cache.h | 2 +
src/lib-lda/mail-deliver.c | 8 +
src/lib-lda/mail-deliver.h | 4 +
src/lib-mail/istream-header-filter.c | 85 +++++-
src/lib-mail/istream-header-filter.h | 4 +-
src/lib-mail/test-istream-header-filter.c | 61 ++++-
src/lib-master/master-login.c | 6 +
src/lib-master/master-service-private.h | 1 +
src/lib-master/master-service.c | 6 +
src/lib-master/master-service.h | 2 +
src/lib-master/service-settings.h | 3 +-
src/lib-sql/driver-pgsql.c | 70 ++--
src/lib-sql/sql-api.c | 32 +-
src/lib-storage/index/cydir/cydir-save.c | 47 ++-
src/lib-storage/index/dbox-common/dbox-file.c | 10 +-
src/lib-storage/index/dbox-common/dbox-mail.c | 1 +
src/lib-storage/index/dbox-multi/mdbox-map.c | 6 +
src/lib-storage/index/dbox-multi/mdbox-purge.c | 10 +
src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c | 6 +-
src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c | 3 +
src/lib-storage/index/index-mail-headers.c | 4 +-
src/lib-storage/index/index-mail.c | 7 +-
src/lib-storage/index/index-search.c | 2 +-
src/lib-storage/index/index-status.c | 2 +
src/lib-storage/index/index-thread.c | 2 +-
src/lib-storage/index/maildir/maildir-keywords.h | 2 +-
src/lib-storage/index/maildir/maildir-mail.c | 32 ++-
src/lib-storage/index/maildir/maildir-save.c | 14 +-
src/lib-storage/index/maildir/maildir-util.c | 2 +-
src/lib-storage/index/mbox/mbox-save.c | 38 +-
src/lib-storage/index/mbox/mbox-sync.c | 6 +-
src/lib-storage/index/shared/shared-storage.c | 7 +-
src/lib-storage/list/mailbox-list-delete.c | 3 +-
src/lib-storage/list/mailbox-list-fs-iter.c | 21 +-
src/lib-storage/list/mailbox-list-maildir.c | 2 +-
src/lib-storage/mail-namespace.c | 33 ++-
src/lib-storage/mail-namespace.h | 6 +
src/lib-storage/mail-storage-hooks.c | 2 +-
src/lib-storage/mail-storage-service.c | 1 +
src/lib-storage/mail-storage.c | 4 +-
src/lib-storage/mail-storage.h | 2 +-
src/lib-storage/mailbox-list.c | 38 +-
src/lib-storage/mailbox-list.h | 1 -
src/lib/ioloop-notify-inotify.c | 25 +-
src/lib/istream-file.c | 17 +-
src/lib/istream.c | 5 +
src/lib/istream.h | 2 +
src/lib/module-dir.c | 52 ++-
src/lib/module-dir.h | 2 +
src/lib/mountpoint.c | 8 +-
src/lib/network.c | 33 +-
src/lib/network.h | 6 +-
src/lib/strfuncs.c | 5 +-
src/lib/unlink-directory.c | 6 +
src/login-common/client-common-auth.c | 13 +-
src/login-common/client-common.h | 1 +
src/login-common/login-proxy.c | 2 +
src/login-common/ssl-proxy-openssl.c | 8 +-
src/master/master-settings.c | 2 +
src/master/service-monitor.c | 10 +
src/master/service-process.c | 1 +
src/master/service.c | 1 +
src/master/service.h | 1 +
src/plugins/acl/acl-backend-vfile.c | 37 +-
src/plugins/acl/acl-mailbox-list.c | 65 ++--
src/plugins/acl/acl-plugin.c | 1 +
src/plugins/acl/acl-plugin.h | 1 +
src/plugins/expire/doveadm-expire.c | 1 +
src/plugins/fts-solr/fts-backend-solr.c | 2 +-
src/plugins/imap-acl/imap-acl-plugin.c | 85 ++++-
src/plugins/lazy-expunge/lazy-expunge-plugin.c | 35 +-
src/plugins/listescape/listescape-plugin.c | 171 ++++++++----
src/plugins/mail-log/mail-log-plugin.c | 43 ++-
src/plugins/notify/Makefile.am | 1 -
src/plugins/notify/notify-noop.c | 28 --
src/plugins/notify/notify-plugin-private.h | 1 +
src/plugins/notify/notify-plugin.c | 56 +++-
src/plugins/notify/notify-plugin.h | 19 +-
src/plugins/notify/notify-storage.c | 14 +
src/plugins/quota/quota-count.c | 7 +-
src/plugins/quota/quota-maildir.c | 10 +-
src/plugins/quota/quota-plugin.c | 2 +-
src/plugins/quota/quota-plugin.h | 3 +-
src/plugins/quota/quota-storage.c | 41 +-
src/plugins/virtual/virtual-storage.c | 24 +-
src/plugins/virtual/virtual-sync.c | 4 +-
src/pop3-login/Makefile.am | 3 +-
src/pop3-login/client.h | 2 -
src/pop3-login/pop3-proxy.c | 12 +-
src/ssl-params/main.c | 15 +-
src/ssl-params/ssl-params-settings.c | 2 +-
152 files changed, 2863 insertions(+), 839 deletions(-)
diffs (truncated from 6835 to 300 lines):
diff -r 142bf0d4ae3c -r 37a0158f2e4c .hgignore
--- a/.hgignore Fri Aug 13 17:35:44 2010 +0100
+++ b/.hgignore Fri Aug 13 17:40:01 2010 +0100
@@ -65,6 +65,7 @@
src/director/director-test
src/dns/dns-client
src/doveadm/doveadm
+src/doveadm/doveadm-server
src/dsync/dsync
src/imap-login/imap-login
src/imap/imap
diff -r 142bf0d4ae3c -r 37a0158f2e4c .hgsigs
--- a/.hgsigs Fri Aug 13 17:35:44 2010 +0100
+++ b/.hgsigs Fri Aug 13 17:40:01 2010 +0100
@@ -10,3 +10,5 @@
d4d6ebad3d337295c06537d5ffe2270672cb1312 0 iEYEABECAAYFAkwuRRYACgkQyUhSUUBVismQHgCgjee6P/AJuGaxoAU76dWhg7RCfWIAn19UbLi7ZrMgsG/tCYeImhHhERP0
fd0497f5a49672c88c6aff775a9042ca9122a2a1 0 iEYEABECAAYFAkw3lYwACgkQyUhSUUBVislXCwCdHW09w+BljltFQ7lUYNm9AVf93SEAn3sctY0ImwfznoD5vMXO1ZJUpKC5
a15b694f1d64a81eea7959fe34780e9e50356321 0 iEYEABECAAYFAkxGDMMACgkQyUhSUUBViskQUgCfQKbLIx86lOpNuRNE82D4H6aLhx4AoJ1f1CALKXTppHewftXLydxS7qg1
+71b2cb9895d92e2e3c80ecdd351055ab848a4ed6 0 iEYEABECAAYFAkxZwBUACgkQyUhSUUBViskB9ACgmIAgI3syzyHQU7NMwuqJywjCnUMAnA+AnvUgDc7ewsBJMog2F8OkQ0KB
+4a2d840a80bbe85e2101e3a5fb19424c3050f923 0 iEYEABECAAYFAkxhYVUACgkQyUhSUUBVisllmwCdFEJ8CzPbbzKZSKJbmgPTQj4lgP0AoKZXDAxxrs+lWB1kp3ECTyX3gW5T
diff -r 142bf0d4ae3c -r 37a0158f2e4c .hgtags
--- a/.hgtags Fri Aug 13 17:35:44 2010 +0100
+++ b/.hgtags Fri Aug 13 17:40:01 2010 +0100
@@ -47,3 +47,5 @@
d4d6ebad3d337295c06537d5ffe2270672cb1312 2.0.rc1
fd0497f5a49672c88c6aff775a9042ca9122a2a1 2.0.rc2
a15b694f1d64a81eea7959fe34780e9e50356321 2.0.rc3
+71b2cb9895d92e2e3c80ecdd351055ab848a4ed6 2.0.rc4
+4a2d840a80bbe85e2101e3a5fb19424c3050f923 2.0.rc5
diff -r 142bf0d4ae3c -r 37a0158f2e4c AUTHORS
--- a/AUTHORS Fri Aug 13 17:35:44 2010 +0100
+++ b/AUTHORS Fri Aug 13 17:40:01 2010 +0100
@@ -6,7 +6,7 @@
src/lib-ntlm/*, src/auth/mech-ntlm.c, src/auth/mech-rpa.c)
Joshua Goodall <joshua at roughtrade.net> (src/auth/mech-cram-md5.c,
- src/util/dovecotpw.c)
+ src/doveadm/doveadm-pw.c)
Jelmer Vernooij <jelmer at samba.org> (src/auth/mech-gssapi.c)
diff -r 142bf0d4ae3c -r 37a0158f2e4c NEWS
--- a/NEWS Fri Aug 13 17:35:44 2010 +0100
+++ b/NEWS Fri Aug 13 17:40:01 2010 +0100
@@ -1,3 +1,28 @@
+v2.0.rc5 2010-08-09 Timo Sirainen <tss at iki.fi>
+
+ - Using more than 2 plugins could have caused broken behavior
+ (more fixes for this)
+ - Listescape plugin fixes
+ - mbox: Fixed a couple of assert-crashes
+ - mdbox: Fixed potential assert-crash when saving multiple messages
+ in one transaction.
+
+v2.0.rc4 2010-08-04 Timo Sirainen <tss at iki.fi>
+
+ + director: Added director_doveadm_port for accepting doveadm
+ TCP connections.
+ + doveadm: Added client/server architecture support for running mail
+ commands. Enable this by setting doveadm_worker_count to non-zero.
+ + mail-log: Added support for mailbox_create event.
+ + imap_capability = +XFOO BAR can be used to add capabilities instead
+ of replacing the whole capability string.
+ + virtual storage: Added support for IDLE notifications.
+ - doveadm mailbox status: Fixed listing non-ASCII mailbox names.
+ - doveadm fetch: Fixed output when fetching message header or body
+ - doveadm director map/add/remove: Fixed handling IP address as
+ parameter.
+ - dsync: A few more fixes
+
v2.0.rc3 2010-07-20 Timo Sirainen <tss at iki.fi>
* Single-dbox is now called "sdbox" instead of "dbox".
diff -r 142bf0d4ae3c -r 37a0158f2e4c TODO
--- a/TODO Fri Aug 13 17:35:44 2010 +0100
+++ b/TODO Fri Aug 13 17:40:01 2010 +0100
@@ -87,6 +87,7 @@
along with "Indexed n% of the mailbox"?
- how do shared mailboxes work with plugins?
- lazy-expunge, fts, etc.?
+ - listescape+acl can't handle shared mailboxes with escape chars
- dovecot-acl-list:
- how does it work with global acls?
- update immediately after SETACL: add/remove entries, update timestamps
diff -r 142bf0d4ae3c -r 37a0158f2e4c configure.in
--- a/configure.in Fri Aug 13 17:35:44 2010 +0100
+++ b/configure.in Fri Aug 13 17:40:01 2010 +0100
@@ -1,5 +1,5 @@
AC_PREREQ([2.59])
-AC_INIT([Dovecot],[2.0.rc3],[dovecot at dovecot.org])
+AC_INIT([Dovecot],[2.0.rc5],[dovecot at dovecot.org])
AC_CONFIG_SRCDIR([src])
AM_INIT_AUTOMAKE([foreign])
@@ -1696,6 +1696,9 @@
AC_CHECK_LIB(ssl, SSL_get_current_compression, [
AC_DEFINE(HAVE_SSL_COMPRESSION,, Build with OpenSSL compression)
],, $SSL_LIBS)
+ AC_CHECK_LIB(ssl, SSL_get_servername, [
+ AC_DEFINE(HAVE_SSL_GET_SERVERNAME,, Build with TLS hostname support)
+ ],, $SSL_LIBS)
fi
fi
@@ -1865,12 +1868,12 @@
have_gssapi=no
if test $want_gssapi != no; then
- AC_CHECK_PROG(KRB5CONFIG, krb5-config, YES, NO)
- if test $KRB5CONFIG = YES; then
- if ! krb5-config --version gssapi 2>/dev/null > /dev/null; then
+ AC_CHECK_PROG(KRB5CONFIG, krb5-config, krb5-config, NO)
+ if test $KRB5CONFIG != NO; then
+ if ! $KRB5CONFIG --version gssapi 2>/dev/null > /dev/null; then
# krb5-config doesn't support gssapi.
- KRB5_LIBS="`krb5-config --libs`"
- KRB5_CFLAGS=`krb5-config --cflags`
+ KRB5_LIBS="`$KRB5CONFIG --libs`"
+ KRB5_CFLAGS=`$KRB5CONFIG --cflags`
AC_CHECK_LIB(gss, gss_acquire_cred, [
# Solaris
KRB5_LIBS="$KRB5_LIBS -lgss"
@@ -1879,8 +1882,8 @@
KRB5_LIBS=
], $KRB5_LIBS)
else
- KRB5_LIBS=`krb5-config --libs gssapi`
- KRB5_CFLAGS=`krb5-config --cflags gssapi`
+ KRB5_LIBS=`$KRB5CONFIG --libs gssapi`
+ KRB5_CFLAGS=`$KRB5CONFIG --cflags gssapi`
fi
if test "$KRB5_LIBS" != ""; then
AC_SUBST(KRB5_LIBS)
@@ -2083,7 +2086,7 @@
fi
if test $want_pgsql != no; then
- AC_CHECK_PROG(PG_CONFIG, pg_config, YES, NO)
+ AC_CHECK_PROG(PG_CONFIG, pg_config, pg_config, NO)
if test $PG_CONFIG = NO; then
# based on code from PHP
for i in /usr /usr/local /usr/local/pgsql; do
@@ -2101,8 +2104,8 @@
done
done
else
- PGSQL_INCLUDE="`pg_config --includedir`"
- PGSQL_LIBDIR="`pg_config --libdir`"
+ PGSQL_INCLUDE="`$PG_CONFIG --includedir`"
+ PGSQL_LIBDIR="`$PG_CONFIG --libdir`"
fi
old_LIBS=$LIBS
@@ -2144,7 +2147,7 @@
have_mysql=no
if test $want_mysql != no; then
- AC_CHECK_PROG(MYSQL_CONFIG, mysql_config, YES, NO)
+ AC_CHECK_PROG(MYSQL_CONFIG, mysql_config, mysql_config, NO)
if test $MYSQL_CONFIG = NO; then
# based on code from PHP
for i in /usr /usr/local /usr/local/mysql; do
@@ -2160,8 +2163,8 @@
done
done
else
- MYSQL_INCLUDE="`mysql_config --include`"
- MYSQL_LIBS="`mysql_config --libs`"
+ MYSQL_INCLUDE="`$MYSQL_CONFIG --include`"
+ MYSQL_LIBS="`$MYSQL_CONFIG --libs`"
fi
old_LIBS=$LIBS
@@ -2563,10 +2566,10 @@
AM_CONDITIONAL(HAVE_RQUOTA, test "$have_rquota" = "yes")
if test "$want_solr" != "no"; then
- AC_CHECK_PROG(CURLCONFIG, curl-config, YES, NO)
- if test $CURLCONFIG = YES; then
- CURL_CFLAGS=`curl-config --cflags`
- CURL_LIBS=`curl-config --libs`
+ AC_CHECK_PROG(CURLCONFIG, curl-config, curl-config, NO)
+ if test $CURLCONFIG != NO; then
+ CURL_CFLAGS=`$CURLCONFIG --cflags`
+ CURL_LIBS=`$CURLCONFIG --libs`
dnl libcurl found, also need libexpat
AC_CHECK_LIB(expat, XML_Parse, [
@@ -2619,8 +2622,8 @@
fi
AC_SUBST(docdir)
-AC_CHECK_PROG(VALGRIND, valgrind, YES, NO)
-if test $VALGRIND = YES; then
+AC_CHECK_PROG(VALGRIND, valgrind, yes, no)
+if test $VALGRIND = yes; then
RUN_TEST='$(SHELL) $(top_srcdir)/run-test.sh'
else
RUN_TEST=''
diff -r 142bf0d4ae3c -r 37a0158f2e4c doc/example-config/conf.d/10-director.conf
--- a/doc/example-config/conf.d/10-director.conf Fri Aug 13 17:35:44 2010 +0100
+++ b/doc/example-config/conf.d/10-director.conf Fri Aug 13 17:40:01 2010 +0100
@@ -21,6 +21,10 @@
# any connections.
#director_user_expire = 15 min
+# TCP/IP port that accepts doveadm connections (instead of director connections)
+# If you enable this, you'll also need to add inet_listener for the port.
+#director_doveadm_port = 0
+
# To enable director service, uncomment the modes and assign a port.
service director {
unix_listener login/director {
diff -r 142bf0d4ae3c -r 37a0158f2e4c doc/example-config/conf.d/15-lda.conf
--- a/doc/example-config/conf.d/15-lda.conf Fri Aug 13 17:35:44 2010 +0100
+++ b/doc/example-config/conf.d/15-lda.conf Fri Aug 13 17:40:01 2010 +0100
@@ -28,7 +28,7 @@
# Delimiter character between local-part and detail in email address.
#recipient_delimiter = +
-# Should saving a mail to a non-existing mailbox automatically create it?
+# Should saving a mail to a nonexistent mailbox automatically create it?
#lda_mailbox_autocreate = no
# Should automatically created mailboxes be also automatically subscribed?
diff -r 142bf0d4ae3c -r 37a0158f2e4c doc/example-config/conf.d/20-imap.conf
--- a/doc/example-config/conf.d/20-imap.conf Fri Aug 13 17:35:44 2010 +0100
+++ b/doc/example-config/conf.d/20-imap.conf Fri Aug 13 17:40:01 2010 +0100
@@ -20,7 +20,8 @@
# %o - total number of bytes sent to client
#imap_logout_format = bytes=%i/%o
- # Override the IMAP CAPABILITY response.
+ # Override the IMAP CAPABILITY response. If the value begins with '+',
+ # add the given capabilities on top of the defaults (e.g. +XFOO XBAR).
#imap_capability =
# How long to wait between "OK Still here" notifications when client is
diff -r 142bf0d4ae3c -r 37a0158f2e4c doc/example-config/dovecot.conf
--- a/doc/example-config/dovecot.conf Fri Aug 13 17:35:44 2010 +0100
+++ b/doc/example-config/dovecot.conf Fri Aug 13 17:40:01 2010 +0100
@@ -56,6 +56,12 @@
# a problem if the upgrade is e.g. because of a security fix).
#shutdown_clients = yes
+# If non-zero, run mail commands via this many connections to doveadm server,
+# instead of running them directly in the same process.
+#doveadm_worker_count = 0
+# UNIX socket or host:port used for connecting to doveadm server
+#doveadm_socket_path = doveadm-server
+
##
## Dictionary server settings
##
diff -r 142bf0d4ae3c -r 37a0158f2e4c dovecot-config.in.in
--- a/dovecot-config.in.in Fri Aug 13 17:35:44 2010 +0100
+++ b/dovecot-config.in.in Fri Aug 13 17:40:01 2010 +0100
@@ -3,7 +3,7 @@
DOVECOT_SSL_LIBS="@SSL_LIBS@"
LIBDOVECOT="@LIBDOVECOT@ @MODULE_LIBS@"
-LIBDOVECOT_LOGIN="@LIBDOVECOT_LOGIN@"
+LIBDOVECOT_LOGIN="@LIBDOVECOT_LOGIN@ @SSL_LIBS@"
LIBDOVECOT_SQL="@LIBDOVECOT_SQL@"
LIBDOVECOT_LDA="@LIBDOVECOT_LDA@"
LIBDOVECOT_STORAGE="@LIBDOVECOT_STORAGE@"
diff -r 142bf0d4ae3c -r 37a0158f2e4c src/auth/auth-master-connection.c
--- a/src/auth/auth-master-connection.c Fri Aug 13 17:35:44 2010 +0100
+++ b/src/auth/auth-master-connection.c Fri Aug 13 17:40:01 2010 +0100
@@ -91,7 +91,7 @@
client_conn = auth_client_connection_lookup(client_pid);
if (client_conn == NULL) {
- i_error("Master requested auth for nonexisting client %u",
+ i_error("Master requested auth for nonexistent client %u",
client_pid);
(void)o_stream_send_str(conn->output,
t_strdup_printf("FAIL\t%u\n", id));
diff -r 142bf0d4ae3c -r 37a0158f2e4c src/auth/auth-request.c
--- a/src/auth/auth-request.c Fri Aug 13 17:35:44 2010 +0100
+++ b/src/auth/auth-request.c Fri Aug 13 17:40:01 2010 +0100
@@ -31,7 +31,6 @@
static void get_log_prefix(string_t *str, struct auth_request *auth_request,
const char *subsystem);
-static void auth_request_userdb_reply_update_user(struct auth_request *request);
struct auth_request *
auth_request_new(const struct mech_module *mech)
@@ -1042,12 +1041,80 @@
auth_stream_reply_add(request->extra_fields, name, value);
}
+static void auth_request_userdb_reply_update_user(struct auth_request *request)
+{
+ const char *str, *p;
+
+ str = t_strdup(auth_stream_reply_export(request->userdb_reply));
+
+ /* reset the reply and add the new username */
More information about the dovecot-cvs
mailing list