changeset 19520:05ba8c869fb7

doveadm-server: Fixed loading doveadm plugins that use doveadm_dump_register()
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Wed, 16 Dec 2015 15:25:22 +0200
parents 7de67ada80b3
children 9cdee0911f4f
files src/doveadm/Makefile.am src/doveadm/main.c
diffstat 2 files changed, 17 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/doveadm/Makefile.am	Wed Dec 16 15:06:52 2015 +0200
+++ b/src/doveadm/Makefile.am	Wed Dec 16 15:25:22 2015 +0200
@@ -97,9 +97,22 @@
 	doveadm-mail-search.c \
 	doveadm-mail-server.c
 
+# these aren't actually useful in doveadm-server, but plugins may implement
+# both dumping and some other commands inside a single plugin. not having the
+# dump functions in doveadm-server fails to load such plugins.
+doveadm_common_dump_cmds = \
+	doveadm-dump.c \
+	doveadm-dump-dbox.c \
+	doveadm-dump-index.c \
+	doveadm-dump-log.c \
+	doveadm-dump-mailboxlog.c \
+	doveadm-dump-thread.c \
+	doveadm-zlib.c
+
 common = \
 	$(doveadm_common_cmds) \
 	$(doveadm_common_mail_cmds) \
+	$(doveadm_common_dump_cmds) \
 	doveadm-cmd.c \
 	doveadm-print.c \
 	doveadm-settings.c \
@@ -109,18 +122,11 @@
 doveadm_SOURCES = \
 	$(common) \
 	doveadm.c \
-	doveadm-dump.c \
-	doveadm-dump-dbox.c \
-	doveadm-dump-index.c \
-	doveadm-dump-log.c \
-	doveadm-dump-mailboxlog.c \
-	doveadm-dump-thread.c \
 	doveadm-print-flow.c \
 	doveadm-print-pager.c \
 	doveadm-print-tab.c \
 	doveadm-print-table.c \
-	doveadm-pw.c \
-	doveadm-zlib.c
+	doveadm-pw.c
 
 doveadm_server_SOURCES = \
 	$(common) \
--- a/src/doveadm/main.c	Wed Dec 16 15:06:52 2015 +0200
+++ b/src/doveadm/main.c	Wed Dec 16 15:25:22 2015 +0200
@@ -7,6 +7,7 @@
 #include "settings-parser.h"
 #include "client-connection.h"
 #include "doveadm-settings.h"
+#include "doveadm-dump.h"
 #include "doveadm-mail.h"
 #include "doveadm-print-private.h"
 #include "doveadm-server.h"
@@ -57,6 +58,7 @@
 					pool_datastack_create());
 
 	doveadm_cmds_init();
+	doveadm_dump_init();
 	doveadm_mail_init();
 	doveadm_load_modules();
 	doveadm_print_init(DOVEADM_PRINT_TYPE_SERVER);
@@ -67,6 +69,7 @@
 	if (doveadm_client != NULL)
 		client_connection_destroy(&doveadm_client);
 	doveadm_mail_deinit();
+	doveadm_dump_deinit();
 	doveadm_unload_modules();
 	doveadm_print_deinit();
 	doveadm_cmds_deinit();