imap-commands.c revision 3032fe1c7b066780a5d3e3c34d5157b03494cec4
2454dfa32c93c20a8522c6ed42fe057baaac9f9aStephan Bosch/* Copyright (c) 2002-2010 Dovecot authors, see the included COPYING file */
4ee00532a265bdfb38539d811fcd12d51210ac35Timo Sirainenstatic const struct command imap4rev1_commands[] = {
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainen { "LOGOUT", cmd_logout, COMMAND_FLAG_BREAKS_MAILBOX },
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainen { "NOOP", cmd_noop, COMMAND_FLAG_BREAKS_SEQS },
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainen { "APPEND", cmd_append, COMMAND_FLAG_BREAKS_SEQS },
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainen { "EXAMINE", cmd_examine, COMMAND_FLAG_BREAKS_MAILBOX },
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainen { "DELETE", cmd_delete, COMMAND_FLAG_BREAKS_MAILBOX |
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainen { "RENAME", cmd_rename, COMMAND_FLAG_USE_NONEXISTENT },
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainen { "SELECT", cmd_select, COMMAND_FLAG_BREAKS_MAILBOX },
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainen { "UNSUBSCRIBE", cmd_unsubscribe, COMMAND_FLAG_USE_NONEXISTENT },
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainen { "CHECK", cmd_check, COMMAND_FLAG_BREAKS_SEQS },
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainen { "CLOSE", cmd_close, COMMAND_FLAG_BREAKS_MAILBOX },
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainen { "EXPUNGE", cmd_expunge, COMMAND_FLAG_BREAKS_SEQS },
2bd58dc6e7c991c86713a4b91f9db468abe734a4Aki Tuomi { "UID COPY", cmd_copy, COMMAND_FLAG_BREAKS_SEQS },
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainen { "UID FETCH", cmd_fetch, COMMAND_FLAG_BREAKS_SEQS },
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainen { "UID SEARCH", cmd_search, COMMAND_FLAG_BREAKS_SEQS },
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainen { "UID STORE", cmd_store, COMMAND_FLAG_BREAKS_SEQS }
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainen#define IMAP4REV1_COMMANDS_COUNT N_ELEMENTS(imap4rev1_commands)
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainenstatic const struct command imap_ext_commands[] = {
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainen { "IDLE", cmd_idle, COMMAND_FLAG_BREAKS_SEQS |
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainen { "THREAD", cmd_thread, COMMAND_FLAG_USES_SEQS },
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainen { "UID EXPUNGE", cmd_uid_expunge, COMMAND_FLAG_BREAKS_SEQS },
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainen { "UID SORT", cmd_sort, COMMAND_FLAG_BREAKS_SEQS },
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainen { "UID THREAD", cmd_thread, COMMAND_FLAG_BREAKS_SEQS },
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainen { "UNSELECT", cmd_unselect, COMMAND_FLAG_BREAKS_MAILBOX },
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainen#define IMAP_EXT_COMMANDS_COUNT N_ELEMENTS(imap_ext_commands)
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainenvoid command_register(const char *name, command_func_t *func,
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainen unsigned int i, count;
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainen for (i = 0; i < count; i++) {
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainen i_error("Trying to unregister unknown command '%s'", name);
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainenvoid command_register_array(const struct command *cmdarr, unsigned int count)
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainenvoid command_unregister_array(const struct command *cmdarr, unsigned int count)
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainen while (count > 0) {
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainenstatic int command_cmp(const struct command *c1, const struct command *c2)
65a1c01472ebf88b9f5bbd6636827902936d5497Timo Sirainenstatic int command_bsearch(const char *name, const struct command *cmd)
void commands_init(void)
void commands_deinit(void)