summaryrefslogtreecommitdiff
path: root/include/mailutils/sys
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2011-11-19 20:34:24 +0200
committerSergey Poznyakoff <gray@gnu.org.ua>2011-11-19 20:34:24 +0200
commit35718326403f83b3e44cbeb8a3899e9d0d4dab90 (patch)
tree8b9349e66121b4cb22d8a712d1846dca1a93b0f3 /include/mailutils/sys
parent530953e151f011eb2f57918039c402f475431a09 (diff)
downloadmailutils-35718326403f83b3e44cbeb8a3899e9d0d4dab90.tar.gz
mailutils-35718326403f83b3e44cbeb8a3899e9d0d4dab90.tar.bz2
Implement general-purpose processing of unsolicited responses in imap client.
* include/mailutils/imap.h (mu_imap_response_action_t): New typedef. (mu_imap_foreach_response): New proto. (MU_IMAP_CB_PERMANENT_FLAGS,MU_IMAP_CB_MESSAGE_COUNT) (MU_IMAP_CB_RECENT_COUNT,MU_IMAP_CB_FIRST_UNSEEN) (MU_IMAP_CB_UIDNEXT,MU_IMAP_CB_UIDVALIDITY) (MU_IMAP_CB_OK,_MU_IMAP_CB_MAX): New constants. (mu_imap_callback_t): New typedef. (mu_imap_callback,mu_imap_register_callback_function): New protos. (MU_IMAP_RESPONSE_ALERT,MU_IMAP_RESPONSE_BADCHARSET) (MU_IMAP_RESPONSE_CAPABILITY,MU_IMAP_RESPONSE_PARSE) (MU_IMAP_RESPONSE_PERMANENTFLAGS,MU_IMAP_RESPONSE_READ_ONLY) (MU_IMAP_RESPONSE_READ_WRITE,MU_IMAP_RESPONSE_TRYCREATE) (MU_IMAP_RESPONSE_UIDNEXT,MU_IMAP_RESPONSE_UIDVALIDITY) (MU_IMAP_RESPONSE_UNSEEN): New constants. (mu_imap_response_codes): New extern. * include/mailutils/sys/imap.h (_mu_imap) <callback>: New member. (_mu_imap_collect_flags, _mu_imap_list_at): New protos. * libproto/imap/resplist.c (_mu_imap_list_at): New function. * libproto/imap/callback.c: New file. * libproto/imap/resproc.c: New file. * libproto/imap/Makefile.am: Add new files. * libproto/imap/capability.c: Rewrite using mu_imap_foreach_response. * libproto/imap/id.c: Likewise. * libproto/imap/select.c: Likewise.
Diffstat (limited to 'include/mailutils/sys')
-rw-r--r--include/mailutils/sys/imap.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/include/mailutils/sys/imap.h b/include/mailutils/sys/imap.h
index dd4b1dfea..de3d1bfb3 100644
--- a/include/mailutils/sys/imap.h
+++ b/include/mailutils/sys/imap.h
@@ -83,6 +83,13 @@ struct _mu_imap
char *mbox_name; /* Name of the currently opened mailbox */
int mbox_writable:1; /* Is it open read/write? */
struct mu_imap_stat mbox_stat; /* Stats obtained from it */
+
+ /* Callbacks */
+ struct
+ {
+ mu_imap_callback_t action;
+ void *data;
+ } callback[_MU_IMAP_CB_MAX];
};
enum imap_eltype
@@ -160,6 +167,10 @@ int _mu_imap_untagged_response_add (mu_imap_t imap);
int _mu_imap_list_element_is_string (struct imap_list_element *elt,
const char *str);
+int _mu_imap_collect_flags (struct imap_list_element *arg, int *res);
+
+struct imap_list_element *_mu_imap_list_at (mu_list_t list, int idx);
+
# ifdef __cplusplus
}

Return to:

Send suggestions and report system problems to the System administrator.