From 60b9cfd5abf4e2c68821b8435cc73ec3a7d1e058 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Fonseca?= Date: Sat, 5 Jul 2003 10:49:22 +0000 Subject: Better documentation. Support for more sendmail options. Error verification for libESMTP calls. --- message.c | 41 +++++++++++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 12 deletions(-) (limited to 'message.c') diff --git a/message.c b/message.c index 8adb463..5f487d6 100644 --- a/message.c +++ b/message.c @@ -28,7 +28,9 @@ message_t *message_new(void) INIT_LIST_HEAD(&message->remote_recipients); INIT_LIST_HEAD(&message->local_recipients); + message->ret = Ret_NOTSET; message->notify = Notify_NOTSET; + message->body = E8bitmime_NOTSET; return message; } @@ -47,8 +49,9 @@ void message_free(message_t *message) recipient = list_entry(ptr, recipient_t, list); list_del(ptr); - if(recipient->address) - free(recipient->address); + assert(recipient->address); + + free(recipient->address); free(ptr); } @@ -59,12 +62,16 @@ void message_free(message_t *message) recipient = list_entry(ptr, recipient_t, list); list_del(ptr); - if(recipient->address) - free(recipient->address); + assert(recipient->address); + + free(recipient->address); free(ptr); } + if(message->envid) + free(message->envid); + if(message->fp) fclose(message->fp); @@ -79,18 +86,29 @@ void message_set_reverse_path(message_t *message, const char *address) message->reverse_path = xstrdup(address); } +void message_set_envid(message_t *message, const char *address) +{ + if(message->envid) + free(message->envid); + + message->envid = xstrdup(address); +} + void message_add_recipient(message_t *message, const char *address) { recipient_t *recipient; - recipient = (recipient_t *)xmalloc(sizeof(recipient_t)); + if(address) + { + recipient = (recipient_t *)xmalloc(sizeof(recipient_t)); - recipient->address = xstrdup(address); + recipient->address = xstrdup(address); - if(local_address(address)) - list_add(&recipient->list, &message->local_recipients); - else - list_add(&recipient->list, &message->remote_recipients); + if(local_address(address)) + list_add(&recipient->list, &message->local_recipients); + else + list_add(&recipient->list, &message->remote_recipients); + } } static void message_buffer_alloc(message_t *message) @@ -305,8 +323,7 @@ static unsigned message_parse_header(message_t *message, size_t start, size_t st unsigned message_parse_headers(message_t *message) { - FILE *fp = message->fp ? message->fp : stdin; - char *line, *header; + char *line; size_t start, stop; unsigned count = 0; -- cgit v1.2.3