summaryrefslogtreecommitdiff
path: root/include/mailutils/sys
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2011-08-26 16:22:09 +0300
committerSergey Poznyakoff <gray@gnu.org.ua>2011-08-26 16:41:54 +0300
commita71c4b6be03d60b9db1d878a912f23a3864c548a (patch)
tree28ba6bb529f30d826a9fb24195c830c98529d3f3 /include/mailutils/sys
parentbdf3c6cf36fd7781c9a59babda57c5eb9261de45 (diff)
downloadmailutils-a71c4b6be03d60b9db1d878a912f23a3864c548a.tar.gz
mailutils-a71c4b6be03d60b9db1d878a912f23a3864c548a.tar.bz2
Improve mime support, introduce ref/unref functions for mu_message_t and mu_mime_t.
* include/mailutils/message.h (mu_message_ref): Change proto. (mu_message_unref): New proto (instead of macro). * include/mailutils/mime.h (mu_mime_ref) (mu_mime_unref, mu_mime_to_message): New protos. * include/mailutils/sys/message.h (MESSAGE_MODIFIED) (MESSAGE_INTERNAL_STREAM): New constants (from mime.c) (MESSAGE_MIME_OWNER): New constant. (_mu_message) <ref_count>: Rename from ref. * include/mailutils/sys/mime.h (MIME_SEEK_ACTIVE): New constant. (_mu_mime) <ref_count>: New member. * libmailutils/mailbox/message.c (MESSAGE_MODIFIED) (MESSAGE_INTERNAL_STREAM): Removed (see above). * libmailutils/mailer/mailer.c (mu_message_unref): New function. (mu_message_destroy): Rewrite. (mu_message_ref): Returns void. (mu_message_lines): Don't access header and body directly to give virtual functions a chance to initialize them. (mu_message_quick_lines): likewise. * libmailutils/mailer/mailer.c (send_fragments): Use mu_mime_to_message instead of mu_message_unref. * libmailutils/mime/mime.c (_mime_append_part): Set offset only if mime->stream is not null. (_mime_body_stream_seek): Implement (albeit inefficiently). (mu_mime_create): Set ref_count. (mu_mime_ref, mu_mime_unref): New functions. (mu_mime_destroy): Reimplement as a wrapper over _mu_mime_free. (mu_mime_get_message): Increase refcount of the message being returned. (mu_mime_to_message): New function. * libmailutils/stream/message_stream.c (_message_open): Handle arbitrary text as RFC822 without headers. * libmu_sieve/actions.c: Unref the message returned by mu_mime_get_message. * libmu_sieve/extensions/vacation.c: Likewise. * mh/mhn.c: Likewise. * libmailutils/stream/stream.c (mu_stream_seek) <MU_SEEK_CUR>: Bugfix.
Diffstat (limited to 'include/mailutils/sys')
-rw-r--r--include/mailutils/sys/message.h10
-rw-r--r--include/mailutils/sys/mime.h2
2 files changed, 9 insertions, 3 deletions
diff --git a/include/mailutils/sys/message.h b/include/mailutils/sys/message.h
index 6f90485b8..f538fc9bb 100644
--- a/include/mailutils/sys/message.h
+++ b/include/mailutils/sys/message.h
@@ -30,8 +30,15 @@
extern "C" {
#endif
+#define MESSAGE_MODIFIED 0x10000
+#define MESSAGE_INTERNAL_STREAM 0x20000
+#define MESSAGE_MIME_OWNER 0x40000
+
struct _mu_message
{
+ /* Reference count. */
+ int ref_count;
+
/* Who is the owner. */
void *owner;
@@ -48,9 +55,6 @@ struct _mu_message
mu_mailbox_t mailbox;
size_t orig_header_size;
- /* Reference count. */
- int ref;
-
int (*_get_stream) (mu_message_t, mu_stream_t *);
int (*_get_uidl) (mu_message_t, char *, size_t, size_t *);
int (*_get_uid) (mu_message_t, size_t *);
diff --git a/include/mailutils/sys/mime.h b/include/mailutils/sys/mime.h
index 3a28602e3..0fe5b74b8 100644
--- a/include/mailutils/sys/mime.h
+++ b/include/mailutils/sys/mime.h
@@ -44,9 +44,11 @@ extern "C" {
#define MIME_ADDED_MULTIPART_CT 0x08000000
#define MIME_INSERT_BOUNDARY 0x04000000
#define MIME_ADDING_BOUNDARY 0x02000000
+#define MIME_SEEK_ACTIVE 0x01000000
struct _mu_mime
{
+ int ref_count;
mu_message_t msg;
mu_header_t hdrs;
mu_stream_t stream;

Return to:

Send suggestions and report system problems to the System administrator.