- /* The commans below require a logged-in state */
-
- else if (!strcasecmp(Imap->Cmd.Params[1].Key, "SELECT")) {
- imap_select(Imap->Cmd.num_parms, Imap->Cmd.Params);
- }
-
- else if (!strcasecmp(Imap->Cmd.Params[1].Key, "EXAMINE")) {
- imap_select(Imap->Cmd.num_parms, Imap->Cmd.Params);
- }
-
- else if (!strcasecmp(Imap->Cmd.Params[1].Key, "LSUB")) {
- imap_list(Imap->Cmd.num_parms, Imap->Cmd.Params);
- }
-
- else if (!strcasecmp(Imap->Cmd.Params[1].Key, "LIST")) {
- imap_list(Imap->Cmd.num_parms, Imap->Cmd.Params);
- }
-
- else if (!strcasecmp(Imap->Cmd.Params[1].Key, "CREATE")) {
- imap_create(Imap->Cmd.num_parms, Imap->Cmd.Params);
- }
-
- else if (!strcasecmp(Imap->Cmd.Params[1].Key, "DELETE")) {
- imap_delete(Imap->Cmd.num_parms, Imap->Cmd.Params);
- }
-
- else if (!strcasecmp(Imap->Cmd.Params[1].Key, "RENAME")) {
- imap_rename(Imap->Cmd.num_parms, Imap->Cmd.Params);
- }
-
- else if (!strcasecmp(Imap->Cmd.Params[1].Key, "STATUS")) {
- imap_status(Imap->Cmd.num_parms, Imap->Cmd.Params);
- }
-
- else if (!strcasecmp(Imap->Cmd.Params[1].Key, "SUBSCRIBE")) {
- imap_subscribe(Imap->Cmd.num_parms, Imap->Cmd.Params);
- }
-
- else if (!strcasecmp(Imap->Cmd.Params[1].Key, "UNSUBSCRIBE")) {
- imap_unsubscribe(Imap->Cmd.num_parms, Imap->Cmd.Params);
- }
-
- else if (!strcasecmp(Imap->Cmd.Params[1].Key, "APPEND")) {
- imap_append(Imap->Cmd.num_parms, Imap->Cmd.Params);
- }
-
- else if (!strcasecmp(Imap->Cmd.Params[1].Key, "NAMESPACE")) {
- imap_namespace(Imap->Cmd.num_parms, Imap->Cmd.Params);
- }
-
- else if (!strcasecmp(Imap->Cmd.Params[1].Key, "SETACL")) {
- imap_setacl(Imap->Cmd.num_parms, Imap->Cmd.Params);
- }
-
- else if (!strcasecmp(Imap->Cmd.Params[1].Key, "DELETEACL")) {
- imap_deleteacl(Imap->Cmd.num_parms, Imap->Cmd.Params);
- }
-
- else if (!strcasecmp(Imap->Cmd.Params[1].Key, "GETACL")) {
- imap_getacl(Imap->Cmd.num_parms, Imap->Cmd.Params);
- }
-
- else if (!strcasecmp(Imap->Cmd.Params[1].Key, "LISTRIGHTS")) {
- imap_listrights(Imap->Cmd.num_parms, Imap->Cmd.Params);
- }
-
- else if (!strcasecmp(Imap->Cmd.Params[1].Key, "MYRIGHTS")) {
- imap_myrights(Imap->Cmd.num_parms, Imap->Cmd.Params);
- }
-
- else if (!strcasecmp(Imap->Cmd.Params[1].Key, "GETMETADATA")) {
- imap_getmetadata(Imap->Cmd.num_parms, Imap->Cmd.Params);
- }
-
- else if (!strcasecmp(Imap->Cmd.Params[1].Key, "SETMETADATA")) {
- imap_setmetadata(Imap->Cmd.num_parms, Imap->Cmd.Params);
- }
-
- else if (Imap->selected == 0) {
- cprintf("%s BAD no folder selected\r\n", Imap->Cmd.Params[0].Key);
- }
-
- /* The commands below require the SELECT state on a mailbox */
-
- else if (!strcasecmp(Imap->Cmd.Params[1].Key, "FETCH")) {
- imap_fetch(Imap->Cmd.num_parms, Imap->Cmd.Params);
- }
-
- else if ((!strcasecmp(Imap->Cmd.Params[1].Key, "UID"))
- && (!strcasecmp(Imap->Cmd.Params[2].Key, "FETCH"))) {
- imap_uidfetch(Imap->Cmd.num_parms, Imap->Cmd.Params);
- }
-
- else if (!strcasecmp(Imap->Cmd.Params[1].Key, "SEARCH")) {
- imap_search(Imap->Cmd.num_parms, Imap->Cmd.Params);
- }
-
- else if ((!strcasecmp(Imap->Cmd.Params[1].Key, "UID"))
- && (!strcasecmp(Imap->Cmd.Params[2].Key, "SEARCH"))) {
- imap_uidsearch(Imap->Cmd.num_parms, Imap->Cmd.Params);
- }
-
- else if (!strcasecmp(Imap->Cmd.Params[1].Key, "STORE")) {
- imap_store(Imap->Cmd.num_parms, Imap->Cmd.Params);
- }
-
- else if ((!strcasecmp(Imap->Cmd.Params[1].Key, "UID"))
- && (!strcasecmp(Imap->Cmd.Params[2].Key, "STORE"))) {
- imap_uidstore(Imap->Cmd.num_parms, Imap->Cmd.Params);
- }
-
- else if (!strcasecmp(Imap->Cmd.Params[1].Key, "COPY")) {
- imap_copy(Imap->Cmd.num_parms, Imap->Cmd.Params);
- }
-
- else if ((!strcasecmp(Imap->Cmd.Params[1].Key, "UID")) && (!strcasecmp(Imap->Cmd.Params[2].Key, "COPY"))) {
- imap_uidcopy(Imap->Cmd.num_parms, Imap->Cmd.Params);
- }
-
- else if (!strcasecmp(Imap->Cmd.Params[1].Key, "EXPUNGE")) {
- imap_expunge(Imap->Cmd.num_parms, Imap->Cmd.Params);
- }
-
- else if ((!strcasecmp(Imap->Cmd.Params[1].Key, "UID")) && (!strcasecmp(Imap->Cmd.Params[2].Key, "EXPUNGE"))) {
- imap_expunge(Imap->Cmd.num_parms, Imap->Cmd.Params);
- }
-
- else if (!strcasecmp(Imap->Cmd.Params[1].Key, "CLOSE")) {
- imap_close(Imap->Cmd.num_parms, Imap->Cmd.Params);
- }
-
- /* End of commands. If we get here, the command is either invalid
- * or unimplemented.
- */