diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2003-01-21 08:03:51 +0000 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2003-01-21 08:03:51 +0000 |
commit | fa686270cc881e43c7aabcd9fbdb85e1fecb9c46 (patch) | |
tree | a2087c8e169731bdf6407c3d2ef377875b1585ad /imap4d | |
parent | 45896e4a106e80db1b5acf9b4dae75e05cbd89c6 (diff) | |
download | mailutils-fa686270cc881e43c7aabcd9fbdb85e1fecb9c46.tar.gz mailutils-fa686270cc881e43c7aabcd9fbdb85e1fecb9c46.tar.bz2 |
(imap4d_capability_add,imap4d_capability_remove,imap4d_capability_init): New functions
Diffstat (limited to 'imap4d')
-rw-r--r-- | imap4d/capability.c | 53 | ||||
-rw-r--r-- | imap4d/imap4d.h | 5 |
2 files changed, 44 insertions, 14 deletions
diff --git a/imap4d/capability.c b/imap4d/capability.c index 30da859de..b90e69878 100644 --- a/imap4d/capability.c +++ b/imap4d/capability.c @@ -17,12 +17,43 @@ #include "imap4d.h" -char *capa[] = { - "IMAP4rev1", - "NAMESPACE", - "X-VERSION", - NULL -}; +static list_t capa_list; + +void +imap4d_capability_add (const char *str) +{ + if (!capa_list) + list_create (&capa_list); + list_append (capa_list, (void*)str); +} + +void +imap4d_capability_remove (const char *str) +{ + list_remove (capa_list, (void*)str); +} + +void +imap4d_capability_init () +{ + static char *capa[] = { + "IMAP4rev1", + "NAMESPACE", + "X-VERSION", + NULL + }; + int i; + + for (i = 0; capa[i]; i++) + imap4d_capability_add (capa[i]); +} + +static int +print_capa (void *item, void *data) +{ + util_send (" %s", (char *)item); + return 0; +} int imap4d_capability (struct imap4d_command *command, char *arg) @@ -32,14 +63,8 @@ imap4d_capability (struct imap4d_command *command, char *arg) (void) arg; util_send ("* CAPABILITY"); - for (i = 0; capa[i]; i++) - util_send (" %s", capa[i]); - -#ifdef WITH_TLS - if (tls_available && !tls_done) - util_send (" STARTTLS"); -#endif /* WITH_TLS */ - + list_do (capa_list, print_capa, NULL); + imap4d_auth_capability (); util_send ("\r\n"); diff --git a/imap4d/imap4d.h b/imap4d/imap4d.h index 4b9f131d5..b5c3f05f1 100644 --- a/imap4d/imap4d.h +++ b/imap4d/imap4d.h @@ -153,6 +153,7 @@ extern struct mu_auth_data *auth_data; #ifdef WITH_TLS extern int tls_available; extern int tls_done; +extern int login_disabled; #endif /* WITH_TLS */ #ifndef HAVE_STRTOK_R @@ -218,6 +219,10 @@ extern int namespace_init __P((char *path)); extern char * namespace_getfullpath __P((char *name, const char *delim)); extern char * namespace_checkfullpath __P((char *name, const char *pattern, const char *delim)); +/* Capability functions */ +extern void imap4d_capability_add __P((const char *str)); +extern void imap4d_capability_remove __P((const char *str)); +extern void imap4d_capability_init __P((void)); /* Helper functions. */ extern int util_out __P ((int, const char *, ...)); |