AM_CPPFLAGS = \
-I$(top_srcdir)/src/lib \
+ -I$(top_srcdir)/src/lib-ssl-iostream \
-I$(top_srcdir)/src/lib-http \
-I$(top_srcdir)/src/lib-mail \
-I$(top_srcdir)/src/lib-imap \
#include "hash.h"
#include "strescape.h"
#include "unichar.h"
+#include "iostream-ssl.h"
#include "http-url.h"
#include "imap-utf7.h"
#include "mail-storage-private.h"
{
struct solr_fts_backend *backend = (struct solr_fts_backend *)_backend;
struct fts_solr_user *fuser = FTS_SOLR_USER_CONTEXT(_backend->ns->user);
+ struct ssl_iostream_settings ssl_set;
const char *str;
if (fuser == NULL) {
*error_r = "Invalid fts_solr setting";
return -1;
}
- if (solr_connection_init(fuser->set.url, fuser->set.debug,
- &backend->solr_conn, error_r) < 0)
+
+ 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)
return -1;
str = solr_escape_id_str(_backend->ns->user->username);
#include "hash.h"
#include "strescape.h"
#include "unichar.h"
+#include "iostream-ssl.h"
#include "http-url.h"
#include "mail-storage-private.h"
#include "mailbox-list-private.h"
{
struct solr_fts_backend *backend = (struct solr_fts_backend *)_backend;
struct fts_solr_user *fuser = FTS_SOLR_USER_CONTEXT(_backend->ns->user);
+ struct ssl_iostream_settings ssl_set;
if (fuser == NULL) {
*error_r = "Invalid fts_solr setting";
_backend->flags &= ~FTS_BACKEND_FLAG_FUZZY_SEARCH;
_backend->flags |= FTS_BACKEND_FLAG_TOKENIZED_INPUT;
}
- return solr_connection_init(fuser->set.url, fuser->set.debug,
- &backend->solr_conn, error_r);
+
+ 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);
}
static void fts_backend_solr_deinit(struct fts_backend *_backend)
return 0;
}
-int solr_connection_init(const char *url, bool debug,
- struct solr_connection **conn_r, const char **error_r)
+int solr_connection_init(const char *url,
+ const struct ssl_iostream_settings *ssl_client_set,
+ bool debug, struct solr_connection **conn_r,
+ const char **error_r)
{
struct http_client_settings http_set;
struct solr_connection *conn;
http_set.max_pipelined_requests = 1;
http_set.max_redirects = 1;
http_set.max_attempts = 3;
- http_set.debug = debug;
http_set.connect_timeout_msecs = 5*1000;
http_set.request_timeout_msecs = 60*1000;
+ http_set.ssl = ssl_client_set;
+ http_set.debug = debug;
solr_http_client = http_client_init(&http_set);
}
ARRAY_TYPE(fts_score_map) scores;
};
-int solr_connection_init(const char *url, bool debug,
- struct solr_connection **conn_r, const char **error_r);
+int solr_connection_init(const char *url,
+ const struct ssl_iostream_settings *ssl_client_set,
+ bool debug, struct solr_connection **conn_r,
+ const char **error_r);
void solr_connection_deinit(struct solr_connection **conn);
int solr_connection_select(struct solr_connection *conn, const char *query,