+ if (ImapCmds == NULL)
+ ImapCmds = NewHash(1, NULL);
+
+ RegisterImapCMD("NOOP", "", imap_noop, I_FLAG_NONE);
+ RegisterImapCMD("CHECK", "", imap_noop, I_FLAG_NONE);
+ RegisterImapCMD("ID", "", imap_id, I_FLAG_NONE);
+ RegisterImapCMD("LOGOUT", "", imap_logout, I_FLAG_NONE);
+ RegisterImapCMD("LOGIN", "", imap_login, I_FLAG_NONE);
+ RegisterImapCMD("AUTHENTICATE", "", imap_authenticate, I_FLAG_NONE);
+ RegisterImapCMD("CAPABILITY", "", imap_capability, I_FLAG_NONE);
+#ifdef HAVE_OPENSSL
+ RegisterImapCMD("STARTTLS", "", imap_starttls, I_FLAG_NONE);
+#endif
+
+ /* The commans below require a logged-in state */
+ RegisterImapCMD("SELECT", "", imap_select, I_FLAG_LOGGED_IN);
+ RegisterImapCMD("EXAMINE", "", imap_select, I_FLAG_LOGGED_IN);
+ RegisterImapCMD("LSUB", "", imap_list, I_FLAG_LOGGED_IN);
+ RegisterImapCMD("LIST", "", imap_list, I_FLAG_LOGGED_IN);
+ RegisterImapCMD("CREATE", "", imap_create, I_FLAG_LOGGED_IN);
+ RegisterImapCMD("DELETE", "", imap_delete, I_FLAG_LOGGED_IN);
+ RegisterImapCMD("RENAME", "", imap_rename, I_FLAG_LOGGED_IN);
+ RegisterImapCMD("STATUS", "", imap_status, I_FLAG_LOGGED_IN);
+ RegisterImapCMD("SUBSCRIBE", "", imap_subscribe, I_FLAG_LOGGED_IN);
+ RegisterImapCMD("UNSUBSCRIBE", "", imap_unsubscribe, I_FLAG_LOGGED_IN);
+ RegisterImapCMD("APPEND", "", imap_append, I_FLAG_LOGGED_IN);
+ RegisterImapCMD("NAMESPACE", "", imap_namespace, I_FLAG_LOGGED_IN);
+ RegisterImapCMD("SETACL", "", imap_setacl, I_FLAG_LOGGED_IN);
+ RegisterImapCMD("DELETEACL", "", imap_deleteacl, I_FLAG_LOGGED_IN);
+ RegisterImapCMD("GETACL", "", imap_getacl, I_FLAG_LOGGED_IN);
+ RegisterImapCMD("LISTRIGHTS", "", imap_listrights, I_FLAG_LOGGED_IN);
+ RegisterImapCMD("MYRIGHTS", "", imap_myrights, I_FLAG_LOGGED_IN);
+ RegisterImapCMD("GETMETADATA", "", imap_getmetadata, I_FLAG_LOGGED_IN);
+ RegisterImapCMD("SETMETADATA", "", imap_setmetadata, I_FLAG_LOGGED_IN);
+
+ /* The commands below require the SELECT state on a mailbox */
+ RegisterImapCMD("FETCH", "", imap_fetch, I_FLAG_LOGGED_IN | I_FLAG_SELECT | I_FLAG_UNTAGGED);
+ RegisterImapCMD("UID", "FETCH", imap_uidfetch, I_FLAG_LOGGED_IN | I_FLAG_SELECT);
+ RegisterImapCMD("SEARCH", "", imap_search, I_FLAG_LOGGED_IN | I_FLAG_SELECT | I_FLAG_UNTAGGED);
+ RegisterImapCMD("UID", "SEARCH", imap_uidsearch, I_FLAG_LOGGED_IN | I_FLAG_SELECT);
+ RegisterImapCMD("STORE", "", imap_store, I_FLAG_LOGGED_IN | I_FLAG_SELECT | I_FLAG_UNTAGGED);
+ RegisterImapCMD("UID", "STORE", imap_uidstore, I_FLAG_LOGGED_IN | I_FLAG_SELECT);
+ RegisterImapCMD("COPY", "", imap_copy, I_FLAG_LOGGED_IN | I_FLAG_SELECT);
+ RegisterImapCMD("UID", "COPY", imap_uidcopy, I_FLAG_LOGGED_IN | I_FLAG_SELECT);
+ RegisterImapCMD("EXPUNGE", "", imap_expunge, I_FLAG_LOGGED_IN | I_FLAG_SELECT);
+ RegisterImapCMD("UID", "EXPUNGE", imap_expunge, I_FLAG_LOGGED_IN | I_FLAG_SELECT);
+ RegisterImapCMD("CLOSE", "", imap_close, I_FLAG_LOGGED_IN | I_FLAG_SELECT);
+