Mercurial > dovecot > original-hg > dovecot-1.2
view src/imap/cmd-search.c @ 0:3b1985cbc908 HEAD
Initial revision
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 09 Aug 2002 12:15:38 +0300 |
parents | |
children | ba058497efa9 |
line wrap: on
line source
/* Copyright (C) 2002 Timo Sirainen */ #include "common.h" #include "commands.h" #include "mail-search.h" int cmd_search(Client *client) { MailSearchArg *sargs; ImapArg *args; int args_count; Pool pool; const char *error; args_count = imap_parser_read_args(client->parser, 0, 0, &args); if (args_count == -2) return FALSE; if (args_count < 1) { client_send_command_error(client, "Missing or invalid arguments."); return TRUE; } if (!client_verify_open_mailbox(client)) return TRUE; pool = pool_create("MailSearchArgs", 2048, FALSE); sargs = mail_search_args_build(pool, args, args_count, &error); if (sargs == NULL) { /* error in search arguments */ client_send_tagline(client, t_strconcat("NO ", error, NULL)); } else { if (client->mailbox->search(client->mailbox, sargs, client->outbuf, client->cmd_uid)) { /* NOTE: syncing isn't allowed here */ client_send_tagline(client, "OK Search completed."); } else { client_send_storage_error(client); } } pool_unref(pool); return TRUE; }