doveadm-fts.c revision 5fbccc935e3f7b916aa7c6e302a212821072e83a
5f5870385cff47efd2f58e7892f251cf13761528Timo Sirainen/* Copyright (c) 2011-2012 Dovecot authors, see the included COPYING file */
d3380f13cb3e398bb5e7acbd4d04582397f62ec2Timo Sirainenconst char *doveadm_fts_plugin_version = DOVECOT_VERSION;
d3380f13cb3e398bb5e7acbd4d04582397f62ec2Timo Sirainenfts_namespace_find(struct mail_user *user, const char *ns_prefix,
d3380f13cb3e398bb5e7acbd4d04582397f62ec2Timo Sirainen ns = mail_namespace_find_inbox(user->namespaces);
d3380f13cb3e398bb5e7acbd4d04582397f62ec2Timo Sirainen ns = mail_namespace_find_prefix(user->namespaces, ns_prefix);
d3380f13cb3e398bb5e7acbd4d04582397f62ec2Timo Sirainen i_error("Namespace prefix not found: %s", ns_prefix);
d3380f13cb3e398bb5e7acbd4d04582397f62ec2Timo Sirainen i_error("fts not enabled for user's namespace %s", ns_prefix);
d3380f13cb3e398bb5e7acbd4d04582397f62ec2Timo Sirainencmd_fts_optimize_run(struct doveadm_mail_cmd_context *ctx,
5fbccc935e3f7b916aa7c6e302a212821072e83aTimo Sirainen if (fts_namespace_find(user, ns_prefix, &ns) < 0) {
5fbccc935e3f7b916aa7c6e302a212821072e83aTimo Sirainen doveadm_mail_failed_error(ctx, MAIL_ERROR_NOTFOUND);
5fbccc935e3f7b916aa7c6e302a212821072e83aTimo Sirainen doveadm_mail_failed_error(ctx, MAIL_ERROR_TEMP);
d3380f13cb3e398bb5e7acbd4d04582397f62ec2Timo Sirainencmd_fts_optimize_init(struct doveadm_mail_cmd_context *ctx ATTR_UNUSED,
d3380f13cb3e398bb5e7acbd4d04582397f62ec2Timo Sirainen const char *const args[])
d3380f13cb3e398bb5e7acbd4d04582397f62ec2Timo Sirainen ctx = doveadm_mail_cmd_alloc(struct doveadm_mail_cmd_context);
3dfa8c707590b8a37a99095dc617d0b4eac3cf87Timo Sirainencmd_fts_rescan_run(struct doveadm_mail_cmd_context *ctx, struct mail_user *user)
5fbccc935e3f7b916aa7c6e302a212821072e83aTimo Sirainen if (fts_namespace_find(user, ns_prefix, &ns) < 0) {
5fbccc935e3f7b916aa7c6e302a212821072e83aTimo Sirainen doveadm_mail_failed_error(ctx, MAIL_ERROR_NOTFOUND);
5fbccc935e3f7b916aa7c6e302a212821072e83aTimo Sirainen doveadm_mail_failed_error(ctx, MAIL_ERROR_TEMP);
3dfa8c707590b8a37a99095dc617d0b4eac3cf87Timo Sirainencmd_fts_rescan_init(struct doveadm_mail_cmd_context *ctx ATTR_UNUSED,
3dfa8c707590b8a37a99095dc617d0b4eac3cf87Timo Sirainen const char *const args[])
3dfa8c707590b8a37a99095dc617d0b4eac3cf87Timo Sirainen ctx = doveadm_mail_cmd_alloc(struct doveadm_mail_cmd_context);
d3380f13cb3e398bb5e7acbd4d04582397f62ec2Timo Sirainenstatic struct doveadm_mail_cmd fts_commands[] = {
3dfa8c707590b8a37a99095dc617d0b4eac3cf87Timo Sirainen { cmd_fts_optimize_alloc, "fts optimize", "[<namespace>]" },
3dfa8c707590b8a37a99095dc617d0b4eac3cf87Timo Sirainen { cmd_fts_rescan_alloc, "fts rescan", "[<namespace>]" }
d3380f13cb3e398bb5e7acbd4d04582397f62ec2Timo Sirainenvoid doveadm_fts_plugin_init(struct module *module ATTR_UNUSED)
d3380f13cb3e398bb5e7acbd4d04582397f62ec2Timo Sirainen unsigned int i;
d3380f13cb3e398bb5e7acbd4d04582397f62ec2Timo Sirainen for (i = 0; i < N_ELEMENTS(fts_commands); i++)