From 57cfc0aac9f8cc5d00fa1155367dfd055da27761 Mon Sep 17 00:00:00 2001 From: Daniel Hokka Zakrisson Date: Sun, 27 Feb 2011 01:49:00 +0100 Subject: make backend selection at runtime --- crm114-exec.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) (limited to 'crm114-exec.c') diff --git a/crm114-exec.c b/crm114-exec.c index 7727409..f4245dd 100644 --- a/crm114-exec.c +++ b/crm114-exec.c @@ -129,7 +129,7 @@ struct antispam_transaction_context { struct siglist *siglist; }; -struct antispam_transaction_context * +static struct antispam_transaction_context * backend_start(struct mailbox *box __attr_unused__) { struct antispam_transaction_context *ast; @@ -139,13 +139,13 @@ backend_start(struct mailbox *box __attr_unused__) return ast; } -void backend_rollback(struct antispam_transaction_context *ast) +static void backend_rollback(struct antispam_transaction_context *ast) { signature_list_free(&ast->siglist); i_free(ast); } -int backend_commit(struct mailbox_transaction_context *ctx, +static int backend_commit(struct mailbox_transaction_context *ctx, struct antispam_transaction_context *ast) { struct siglist *item = ast->siglist; @@ -167,14 +167,14 @@ int backend_commit(struct mailbox_transaction_context *ctx, return ret; } -int backend_handle_mail(struct mailbox_transaction_context *t, - struct antispam_transaction_context *ast, - struct mail *mail, enum classification want) +static int backend_handle_mail(struct mailbox_transaction_context *t, + struct antispam_transaction_context *ast, + struct mail *mail, enum classification want) { return signature_extract_to_list(t, mail, &ast->siglist, want); } -void backend_init(pool_t pool) +static void backend_init(pool_t pool) { const char *tmp; int i; @@ -198,6 +198,15 @@ void backend_init(pool_t pool) signature_init(); } -void backend_exit(void) +static void backend_exit(void) { } + +struct backend antispam_backend = { + .init = backend_init, + .exit = backend_exit, + .handle_mail = backend_handle_mail, + .start = backend_start, + .rollback = backend_rollback, + .commit = backend_commit, +}; -- cgit v1.2.3 From ca91e1366a57ff45597168592781cdaf35af48a0 Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Sun, 27 Feb 2011 11:09:49 +0100 Subject: add an API version to the backend struct Just to make sure nobody loads a backend plugin that isn't suitable for the version of antispam itself. --- crm114-exec.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'crm114-exec.c') diff --git a/crm114-exec.c b/crm114-exec.c index f4245dd..3947dbc 100644 --- a/crm114-exec.c +++ b/crm114-exec.c @@ -203,10 +203,11 @@ static void backend_exit(void) } struct backend antispam_backend = { - .init = backend_init, - .exit = backend_exit, - .handle_mail = backend_handle_mail, - .start = backend_start, - .rollback = backend_rollback, - .commit = backend_commit, + .api_version = BACKEND_API_VERSION, + .init = backend_init, + .exit = backend_exit, + .handle_mail = backend_handle_mail, + .start = backend_start, + .rollback = backend_rollback, + .commit = backend_commit, }; -- cgit v1.2.3 From 7a13a04dc0ef562e53097f614e887285965d4659 Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Sun, 27 Feb 2011 15:40:03 +0100 Subject: build in all backend plugins --- crm114-exec.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'crm114-exec.c') diff --git a/crm114-exec.c b/crm114-exec.c index 3947dbc..ea0babc 100644 --- a/crm114-exec.c +++ b/crm114-exec.c @@ -202,8 +202,7 @@ static void backend_exit(void) { } -struct backend antispam_backend = { - .api_version = BACKEND_API_VERSION, +struct backend crm114_backend = { .init = backend_init, .exit = backend_exit, .handle_mail = backend_handle_mail, -- cgit v1.2.3