From: Marco Bettini Date: Fri, 14 Apr 2023 13:00:34 +0000 (+0000) Subject: fts-solr: Extract fts_backend_solr_commit() X-Git-Tag: 2.4.0~2797 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=61dbb93d625ce30814534d5b14428f5fc40f6f60;p=thirdparty%2Fdovecot%2Fcore.git fts-solr: Extract fts_backend_solr_commit() --- diff --git a/src/plugins/fts-solr/fts-backend-solr.c b/src/plugins/fts-solr/fts-backend-solr.c index 7f699b5e5a..25b7ab3226 100644 --- a/src/plugins/fts-solr/fts-backend-solr.c +++ b/src/plugins/fts-solr/fts-backend-solr.c @@ -382,16 +382,27 @@ fts_backend_solr_expunge_flush(struct solr_fts_backend_update_context *ctx) str_append(ctx->cmd_expunge, ""); } +static int fts_backend_solr_commit(struct solr_fts_backend_update_context *ctx) +{ + struct solr_fts_backend *backend = + (struct solr_fts_backend *) ctx->ctx.backend; + struct fts_solr_user *fuser = FTS_SOLR_USER_CONTEXT(ctx->ctx.backend->ns->user); + + if (!fuser->set.soft_commit) + return 0; + + const char *str = t_strdup_printf( + "", + ctx->documents_added ? "true" : "false"); + return solr_connection_post(backend->solr_conn, str); +} + static int fts_backend_solr_update_deinit(struct fts_backend_update_context *_ctx) { struct solr_fts_backend_update_context *ctx = (struct solr_fts_backend_update_context *)_ctx; - struct solr_fts_backend *backend = - (struct solr_fts_backend *)_ctx->backend; - struct fts_solr_user *fuser = FTS_SOLR_USER_CONTEXT(_ctx->backend->ns->user); struct solr_fts_field *field; - const char *str; int ret = _ctx->failed ? -1 : 0; if (fts_backed_solr_build_flush(ctx) < 0) @@ -402,12 +413,8 @@ fts_backend_solr_update_deinit(struct fts_backend_update_context *_ctx) visible to the following search */ if (ctx->expunges) fts_backend_solr_expunge_flush(ctx); - if (fuser->set.soft_commit) { - str = t_strdup_printf("", - ctx->documents_added ? "true" : "false"); - if (solr_connection_post(backend->solr_conn, str) < 0) - ret = -1; - } + if (fts_backend_solr_commit(ctx) < 0) + ret = -1; } str_free(&ctx->cmd);