From b00e5cd36adb5b6cc6c3e81afce7660d4e5ac9d3 Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Wed, 27 Dec 2000 04:06:35 +0000 Subject: [PATCH] * IMAP stuff --- citadel/imap_tools.c | 27 +++++++++++++++++++++++++++ citadel/imap_tools.h | 1 + citadel/internet_addressing.h | 8 ++++++++ 3 files changed, 36 insertions(+) diff --git a/citadel/imap_tools.c b/citadel/imap_tools.c index a633cbde4..8c9360545 100644 --- a/citadel/imap_tools.c +++ b/citadel/imap_tools.c @@ -13,6 +13,7 @@ #include "citadel.h" #include "sysdep_decls.h" #include "tools.h" +#include "internet_addressing.h" #include "imap_tools.h" @@ -99,3 +100,29 @@ void imap_mailboxname(char *buf, int bufsize, struct quickroom *qrbuf) { } } + +/* + * Output a struct internet_address_list in the form an IMAP client wants + */ +void imap_ial_out(struct internet_address_list *ialist) { + struct internet_address_list *iptr; + + if (ialist == NULL) { + cprintf("NIL"); + return; + } + + cprintf("("); + + for (iptr = ialist; iptr != NULL; iptr = iptr->next) { + cprintf("("); + imap_strout(iptr->ial_name); + cprintf(" NIL "); + imap_strout(iptr->ial_user); + cprintf(" "); + imap_strout(iptr->ial_node); + cprintf(")"); + } + + cprintf(")"); +} diff --git a/citadel/imap_tools.h b/citadel/imap_tools.h index 7df327991..1505d2828 100644 --- a/citadel/imap_tools.h +++ b/citadel/imap_tools.h @@ -6,3 +6,4 @@ void imap_strout(char *buf); int imap_parameterize(char **args, char *buf); void imap_mailboxname(char *buf, int bufsize, struct quickroom *qrbuf); +void imap_ial_out(struct internet_address_list *ialist); diff --git a/citadel/internet_addressing.h b/citadel/internet_addressing.h index 432aed8d2..1d16aa782 100644 --- a/citadel/internet_addressing.h +++ b/citadel/internet_addressing.h @@ -3,6 +3,14 @@ * */ +struct internet_address_list { + struct internet_address_list *next; + char ial_user[256]; + char ial_node[256]; + char ial_name[256]; +}; + + int fuzzy_match(struct usersupp *us, char *matchstring); void process_rfc822_addr(char *rfc822, char *user, char *node, char *name); char *rfc822_fetch_field(char *rfc822, char *fieldname); -- 2.30.2