Mercurial > dovecot > original-hg > dovecot-1.2
view src/plugins/fts-solr/fts-solr-plugin.c @ 9604:cf0da2cd31fb HEAD
fts-solr: Replace characters not valid for XML with replacement char.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Fri, 20 Aug 2010 20:38:26 +0100 |
parents | 00cd9aacd03c |
children |
line wrap: on
line source
/* Copyright (c) 2006-2010 Dovecot authors, see the included COPYING file */ #include "lib.h" #include "fts-solr-plugin.h" #include <stdlib.h> const char *fts_solr_plugin_version = PACKAGE_VERSION; struct fts_solr_settings fts_solr_settings; static void fts_solr_plugin_init_settings(const char *str) { struct fts_solr_settings *set = &fts_solr_settings; const char *const *tmp; if (str == NULL) str = ""; for (tmp = t_strsplit_spaces(str, " "); *tmp != NULL; tmp++) { if (strncmp(*tmp, "url=", 4) == 0) { i_free(set->url); set->url = i_strdup(*tmp + 4); } else if (strcmp(*tmp, "debug") == 0) { set->debug = TRUE; } else if (strcmp(*tmp, "break-imap-search") == 0) { set->substring_search = TRUE; } else if (strcmp(*tmp, "default_ns=") == 0) { i_free(set->default_ns_prefix); set->default_ns_prefix = i_strdup(*tmp + 11); } else { i_fatal("fts_solr: Invalid setting: %s", *tmp); } } if (set->url == NULL) i_fatal("fts_solr: url setting missing"); } void fts_solr_plugin_init(void) { fts_solr_plugin_init_settings(getenv("FTS_SOLR")); fts_backend_register(&fts_backend_solr); } void fts_solr_plugin_deinit(void) { i_free(fts_solr_settings.url); fts_backend_unregister(fts_backend_solr.name); }