diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2007-07-09 17:41:02 +0000 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2007-07-09 17:41:02 +0000 |
commit | c8bb4b9413f72f2e9c5f81b5f1674c9341ed369f (patch) | |
tree | 74770120ab2da93e9432f04d90eab006c8bd534d /libsieve | |
parent | 00668ac3d890df067217835b0ebb127b60902099 (diff) | |
download | mailutils-c8bb4b9413f72f2e9c5f81b5f1674c9341ed369f.tar.gz mailutils-c8bb4b9413f72f2e9c5f81b5f1674c9341ed369f.tar.bz2 |
Rewrite using new envelope accessors
Diffstat (limited to 'libsieve')
-rw-r--r-- | libsieve/actions.c | 26 | ||||
-rw-r--r-- | libsieve/tests.c | 10 |
2 files changed, 12 insertions, 24 deletions
diff --git a/libsieve/actions.c b/libsieve/actions.c index 8c719aaac..8125ab220 100644 --- a/libsieve/actions.c +++ b/libsieve/actions.c @@ -107,30 +107,19 @@ mu_sieve_get_message_sender (mu_message_t msg, char **ptext) { int rc; mu_envelope_t envelope; - char *text; - size_t size; rc = mu_message_get_envelope (msg, &envelope); if (rc) return rc; - rc = mu_envelope_sender (envelope, NULL, 0, &size); - if (rc == 0) - { - if (!(text = malloc (size + 1))) - return ENOMEM; - mu_envelope_sender (envelope, text, size + 1, NULL); - } - else + rc = mu_envelope_aget_sender (envelope, ptext); + if (rc) { mu_header_t hdr = NULL; mu_message_get_header (msg, &hdr); - if ((rc = mu_header_aget_value (hdr, MU_HEADER_SENDER, &text))) - rc = mu_header_aget_value (hdr, MU_HEADER_FROM, &text); + if ((rc = mu_header_aget_value (hdr, MU_HEADER_SENDER, ptext))) + rc = mu_header_aget_value (hdr, MU_HEADER_FROM, ptext); } - - if (rc == 0) - *ptext = text; return rc; } @@ -431,10 +420,9 @@ sieve_action_redirect (mu_sieve_machine_t mach, mu_list_t args, mu_list_t tags) if (rc) { mu_sieve_error (mach, - "redirect", - _("%d: cannot create sender address <%s>: %s"), - mu_sieve_get_message_num (mach), - fromaddr, mu_strerror (rc)); + _("%d: cannot create sender address <%s>: %s"), + mu_sieve_get_message_num (mach), + fromaddr, mu_strerror (rc)); free (fromaddr); goto end; } diff --git a/libsieve/tests.c b/libsieve/tests.c index 7ca0f0c45..0f3878a5a 100644 --- a/libsieve/tests.c +++ b/libsieve/tests.c @@ -61,7 +61,7 @@ struct address_closure { address_aget_t aget; /* appropriate address_aget_ function */ void *data; /* Either mu_header_t or mu_envelope_t */ - mu_address_t addr; /* Obtained address */ + mu_address_t addr; /* Obtained address */ }; static int @@ -243,13 +243,12 @@ retrieve_envelope (void *item, void *data, int idx, char **pval) if (!ap->addr) { - char buf[512]; - size_t n; + const char *buf; if (strcasecmp ((char*)item, "from") != 0) return 1; - if (mu_envelope_sender ((mu_envelope_t)ap->data, buf, sizeof(buf), &n)) + if (mu_envelope_sget_sender ((mu_envelope_t)ap->data, &buf)) return 1; rc = mu_address_create (&ap->addr, buf); @@ -291,7 +290,8 @@ sieve_test_envelope (mu_sieve_machine_t mach, mu_list_t args, mu_list_t tags) mu_sieve_abort (mach); } - mu_message_get_envelope (mu_sieve_get_message (mach), (mu_envelope_t*)&clos.data); + mu_message_get_envelope (mu_sieve_get_message (mach), + (mu_envelope_t*)&clos.data); clos.aget = sieve_get_address_part (tags); clos.addr = NULL; rc = mu_sieve_vlist_compare (h, v, comp, test, retrieve_envelope, &clos, |