summaryrefslogtreecommitdiff
path: root/libsieve
diff options
context:
space:
mode:
Diffstat (limited to 'libsieve')
-rw-r--r--libsieve/actions.c26
-rw-r--r--libsieve/tests.c10
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,

Return to:

Send suggestions and report system problems to the System administrator.