From 9c25d1024a06143a7efab3092ee56b2bb2de2b10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Chmielowski?= Date: Wed, 26 Feb 2020 10:50:35 +0100 Subject: [PATCH] Support ssl connection on mysql --- rebar.config | 2 +- src/ejabberd_sql.erl | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/rebar.config b/rebar.config index 9aa3667f5..a373149e2 100644 --- a/rebar.config +++ b/rebar.config @@ -39,7 +39,7 @@ {if_var_true, stun, {stun, ".*", {git, "https://github.com/processone/stun", {tag, "1.0.31"}}}}, {if_var_true, sip, {esip, ".*", {git, "https://github.com/processone/esip", {tag, "1.0.32"}}}}, {if_var_true, mysql, {p1_mysql, ".*", {git, "https://github.com/processone/p1_mysql", - {tag, "1.0.13"}}}}, + "a34873415d3e66de98f5abfe89406fade9915964"}}}, {if_var_true, pgsql, {p1_pgsql, ".*", {git, "https://github.com/processone/p1_pgsql", {tag, "1.1.9"}}}}, {if_var_true, sqlite, {sqlite3, ".*", {git, "https://github.com/processone/erlang-sqlite3", diff --git a/src/ejabberd_sql.erl b/src/ejabberd_sql.erl index 308c33020..ebbd9a5cb 100644 --- a/src/ejabberd_sql.erl +++ b/src/ejabberd_sql.erl @@ -1001,12 +1001,18 @@ pgsql_execute_to_odbc(_) -> {updated, undefined}. %% part of init/1 %% Open a database connection to MySQL -mysql_connect(Server, Port, DB, Username, Password, ConnectTimeout, _, _) -> +mysql_connect(Server, Port, DB, Username, Password, ConnectTimeout, Transport, _) -> + SSLOpts = case Transport of + ssl -> + [ssl_required]; + _ -> + [] + end, case p1_mysql_conn:start(binary_to_list(Server), Port, binary_to_list(Username), binary_to_list(Password), binary_to_list(DB), - ConnectTimeout, fun log/3) + ConnectTimeout, fun log/3, SSLOpts) of {ok, Ref} -> p1_mysql_conn:fetch( @@ -1112,6 +1118,8 @@ warn_if_ssl_unsupported(tcp, _) -> ok; warn_if_ssl_unsupported(ssl, pgsql) -> ok; +warn_if_ssl_unsupported(ssl, mysql) -> + ok; warn_if_ssl_unsupported(ssl, Type) -> ?WARNING_MSG("SSL connection is not supported for ~ts", [Type]).