i_zero(&ssl_set);
mail_user_init_ssl_client_settings(_backend->ns->user, &ssl_set);
- if (solr_connection_init(fuser->set.url, &ssl_set,
- fuser->set.debug, &backend->solr_conn,
- error_r) < 0)
+ if (solr_connection_init(&fuser->set, &ssl_set,
+ &backend->solr_conn, error_r) < 0)
return -1;
str = solr_escape_id_str(_backend->ns->user->username);
i_zero(&ssl_set);
mail_user_init_ssl_client_settings(_backend->ns->user, &ssl_set);
- return solr_connection_init(fuser->set.url, &ssl_set,
- fuser->set.debug, &backend->solr_conn,
- error_r);
+ return solr_connection_init(&fuser->set, &ssl_set,
+ &backend->solr_conn, error_r);
}
static void fts_backend_solr_deinit(struct fts_backend *_backend)
return i_strconcat(http_url->path, http_url->enc_query, NULL);
}
-int solr_connection_init(const char *url,
+int solr_connection_init(const struct fts_solr_settings *solr_set,
const struct ssl_iostream_settings *ssl_client_set,
- bool debug, struct solr_connection **conn_r,
- const char **error_r)
+ struct solr_connection **conn_r, const char **error_r)
{
struct http_client_settings http_set;
struct solr_connection *conn;
struct http_url *http_url;
const char *error;
- if (http_url_parse(url, NULL, HTTP_URL_ALLOW_USERINFO_PART, pool_datastack_create(),
- &http_url, &error) < 0) {
+ if (http_url_parse(solr_set->url, NULL, HTTP_URL_ALLOW_USERINFO_PART,
+ pool_datastack_create(), &http_url, &error) < 0) {
*error_r = t_strdup_printf(
"fts_solr: Failed to parse HTTP url: %s", error);
return -1;
conn->http_password = i_strdup(http_url->password != NULL ? http_url->password : "");
}
- conn->debug = debug;
+ conn->debug = solr_set->debug;
if (solr_http_client == NULL) {
i_zero(&http_set);
http_set.connect_timeout_msecs = 5*1000;
http_set.request_timeout_msecs = 60*1000;
http_set.ssl = ssl_client_set;
- http_set.debug = debug;
+ http_set.debug = solr_set->debug;
solr_http_client = http_client_init(&http_set);
}
#include "fts-api.h"
struct solr_connection;
+struct fts_solr_settings;
struct solr_result {
const char *box_id;
ARRAY_TYPE(fts_score_map) scores;
};
-int solr_connection_init(const char *url,
+int solr_connection_init(const struct fts_solr_settings *solr_set,
const struct ssl_iostream_settings *ssl_client_set,
- bool debug, struct solr_connection **conn_r,
+ struct solr_connection **conn_r,
const char **error_r);
void solr_connection_deinit(struct solr_connection **conn);