dovecot-2.2: fts-solr: Free the solr_connection at exit.
dovecot at dovecot.org
dovecot at dovecot.org
Fri Feb 1 02:19:10 EET 2013
details: http://hg.dovecot.org/dovecot-2.2/rev/e62a7ca7d1f2
changeset: 15711:e62a7ca7d1f2
user: Timo Sirainen <tss at iki.fi>
date: Fri Feb 01 02:18:54 2013 +0200
description:
fts-solr: Free the solr_connection at exit.
diffstat:
src/plugins/fts-solr/fts-backend-solr-old.c | 9 ++++++++-
src/plugins/fts-solr/fts-backend-solr.c | 9 ++++++++-
2 files changed, 16 insertions(+), 2 deletions(-)
diffs (54 lines):
diff -r c5230b8ffd40 -r e62a7ca7d1f2 src/plugins/fts-solr/fts-backend-solr-old.c
--- a/src/plugins/fts-solr/fts-backend-solr-old.c Fri Feb 01 01:39:41 2013 +0200
+++ b/src/plugins/fts-solr/fts-backend-solr-old.c Fri Feb 01 02:18:54 2013 +0200
@@ -225,6 +225,11 @@
return &backend->backend;
}
+static void fts_backend_solr_connection_deinit(void)
+{
+ solr_connection_deinit(solr_conn);
+}
+
static int
fts_backend_solr_init(struct fts_backend *_backend,
const char **error_r ATTR_UNUSED)
@@ -234,8 +239,10 @@
const struct fts_solr_settings *set = &fuser->set;
const char *str;
- if (solr_conn == NULL)
+ if (solr_conn == NULL) {
solr_conn = solr_connection_init(set->url, set->debug);
+ lib_atexit(fts_backend_solr_connection_deinit);
+ }
str = solr_escape_id_str(_backend->ns->user->username);
backend->id_username = i_strdup(str);
diff -r c5230b8ffd40 -r e62a7ca7d1f2 src/plugins/fts-solr/fts-backend-solr.c
--- a/src/plugins/fts-solr/fts-backend-solr.c Fri Feb 01 01:39:41 2013 +0200
+++ b/src/plugins/fts-solr/fts-backend-solr.c Fri Feb 01 02:18:54 2013 +0200
@@ -150,6 +150,11 @@
return &backend->backend;
}
+static void fts_backend_solr_connection_deinit(void)
+{
+ solr_connection_deinit(solr_conn);
+}
+
static int
fts_backend_solr_init(struct fts_backend *_backend,
const char **error_r ATTR_UNUSED)
@@ -157,8 +162,10 @@
struct fts_solr_user *fuser = FTS_SOLR_USER_CONTEXT(_backend->ns->user);
const struct fts_solr_settings *set = &fuser->set;
- if (solr_conn == NULL)
+ if (solr_conn == NULL) {
solr_conn = solr_connection_init(set->url, set->debug);
+ lib_atexit(fts_backend_solr_connection_deinit);
+ }
return 0;
}
More information about the dovecot-cvs
mailing list