view src/imap/commands.c @ 0:3b1985cbc908 HEAD

Initial revision
author Timo Sirainen <tss@iki.fi>
date Fri, 09 Aug 2002 12:15:38 +0300
parents
children 83ae914a583a
line wrap: on
line source

/* Copyright (C) 2002 Timo Sirainen */

#include "common.h"
#include "commands.h"

ClientCommandFunc client_command_find(const char *name)
{
	/* keep the command uppercased */
	name = str_ucase((char *) t_strdup(name));

	switch (*name) {
	case 'A':
		if (strcmp(name, "APPEND") == 0)
			return cmd_append;
		if (strcmp(name, "AUTHENTICATE") == 0)
			return cmd_authenticate;
		break;
	case 'C':
		if (strcmp(name, "CREATE") == 0)
			return cmd_create;
		if (strcmp(name, "COPY") == 0)
			return cmd_copy;
		if (strcmp(name, "CLOSE") == 0)
			return cmd_close;
		if (strcmp(name, "CHECK") == 0)
			return cmd_copy;
		if (strcmp(name, "CAPABILITY") == 0)
			return cmd_capability;
		break;
	case 'D':
		if (strcmp(name, "DELETE") == 0)
			return cmd_delete;
		break;
	case 'E':
		if (strcmp(name, "EXPUNGE") == 0)
			return cmd_expunge;
		if (strcmp(name, "EXAMINE") == 0)
			return cmd_examine;
		break;
	case 'F':
		if (strcmp(name, "FETCH") == 0)
			return cmd_fetch;
		break;
	case 'L':
		if (strcmp(name, "LIST") == 0)
			return cmd_list;
		if (strcmp(name, "LSUB") == 0)
			return cmd_lsub;
		if (strcmp(name, "LOGOUT") == 0)
			return cmd_logout;
		if (strcmp(name, "LOGIN") == 0)
			return cmd_login;
		break;
	case 'N':
		if (strcmp(name, "NOOP") == 0)
			return cmd_noop;
		break;
	case 'R':
		if (strcmp(name, "RENAME") == 0)
			return cmd_rename;
		break;
	case 'S':
		if (strcmp(name, "STORE") == 0)
			return cmd_store;
		if (strcmp(name, "SEARCH") == 0)
			return cmd_search;
		if (strcmp(name, "SELECT") == 0)
			return cmd_select;
		if (strcmp(name, "STATUS") == 0)
			return cmd_status;
		if (strcmp(name, "SUBSCRIBE") == 0)
			return cmd_subscribe;
		break;
	case 'U':
		if (strcmp(name, "UID") == 0)
			return cmd_uid;
		if (strcmp(name, "UNSUBSCRIBE") == 0)
			return cmd_unsubscribe;
		break;
	}

	return NULL;
}