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