From c2d12799d102dc4424de829a6c47ed67006b4252 Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan@rename-it.nl> Date: Sun, 17 Aug 2008 23:44:02 +0200 Subject: [PATCH] Cleaned up subaddress extension. --- .../plugins/subaddress/ext-subaddress.c | 89 ++++++++++++------- 1 file changed, 57 insertions(+), 32 deletions(-) diff --git a/src/lib-sieve/plugins/subaddress/ext-subaddress.c b/src/lib-sieve/plugins/subaddress/ext-subaddress.c index 79c4812f7..4020b3c93 100644 --- a/src/lib-sieve/plugins/subaddress/ext-subaddress.c +++ b/src/lib-sieve/plugins/subaddress/ext-subaddress.c @@ -1,3 +1,6 @@ +/* Copyright (c) 2002-2008 Dovecot Sieve authors, see the included COPYING file + */ + /* Extension subaddress * -------------------- * @@ -24,19 +27,28 @@ #include <string.h> -/* Config */ +/* + * Configuration + */ #define SUBADDRESS_DEFAULT_SEP_CHAR '+' -/* Forward declarations */ +/* + * Forward declarations + */ + +const struct sieve_address_part user_address_part; +const struct sieve_address_part detail_address_part; static struct sieve_operand subaddress_operand; +/* + * Extension + */ + static bool ext_subaddress_load(int ext_id); static bool ext_subaddress_validator_load(struct sieve_validator *validator); -/* Extension definitions */ - static int ext_my_id; const struct sieve_extension subaddress_extension = { @@ -56,7 +68,44 @@ static bool ext_subaddress_load(int ext_id) return TRUE; } -/* Actual extension implementation */ +static bool ext_subaddress_validator_load(struct sieve_validator *validator) +{ + sieve_address_part_register(validator, &user_address_part); + sieve_address_part_register(validator, &detail_address_part); + + return TRUE; +} + +/* + * Address parts + */ + +enum ext_subaddress_address_part { + SUBADDRESS_USER, + SUBADDRESS_DETAIL +}; + +/* Forward declarations */ + +static const char *subaddress_user_extract_from + (const struct sieve_address *address); +static const char *subaddress_detail_extract_from + (const struct sieve_address *address); + + +/* Address part objects */ + +const struct sieve_address_part user_address_part = { + SIEVE_OBJECT("user", &subaddress_operand, SUBADDRESS_USER), + subaddress_user_extract_from +}; + +const struct sieve_address_part detail_address_part = { + SIEVE_OBJECT("detail", &subaddress_operand, SUBADDRESS_DETAIL), + subaddress_detail_extract_from +}; + +/* Address part implementation */ static const char *subaddress_user_extract_from (const struct sieve_address *address) @@ -78,22 +127,9 @@ static const char *subaddress_detail_extract_from return sep+1; } -/* Extension access structures */ - -enum ext_subaddress_address_part { - SUBADDRESS_USER, - SUBADDRESS_DETAIL -}; - -const struct sieve_address_part user_address_part = { - SIEVE_OBJECT("user", &subaddress_operand, SUBADDRESS_USER), - subaddress_user_extract_from -}; - -const struct sieve_address_part detail_address_part = { - SIEVE_OBJECT("detail", &subaddress_operand, SUBADDRESS_DETAIL), - subaddress_detail_extract_from -}; +/* + * Operand + */ const struct sieve_address_part *ext_subaddress_parts[] = { &user_address_part, &detail_address_part @@ -109,14 +145,3 @@ static struct sieve_operand subaddress_operand = { &ext_address_parts }; -/* Load extension into validator */ - -static bool ext_subaddress_validator_load(struct sieve_validator *validator) -{ - sieve_address_part_register(validator, &user_address_part); - sieve_address_part_register(validator, &detail_address_part); - - return TRUE; -} - - -- GitLab