diff --git a/src/ejabberd_riak.erl b/src/ejabberd_riak.erl index 90bdb4c06..82ffe5e3d 100644 --- a/src/ejabberd_riak.erl +++ b/src/ejabberd_riak.erl @@ -73,7 +73,13 @@ start_link(Num, Server, Port, _StartInterval, Options) -> %% @private is_connected() -> - catch riakc_pb_socket:is_connected(get_random_pid()). + lists:all( + fun({_Id, Pid, _Type, _Modules}) when is_pid(Pid) -> + case catch riakc_pb_socket:is_connected(get_random_pid()) of + true -> true; + _ -> false + end + end, supervisor:which_children(ejabberd_riak_sup)). %% @private get_proc(I) -> diff --git a/src/ejabberd_riak_sup.erl b/src/ejabberd_riak_sup.erl index 7294e0055..af811441b 100644 --- a/src/ejabberd_riak_sup.erl +++ b/src/ejabberd_riak_sup.erl @@ -109,6 +109,7 @@ init([]) -> Options = lists:filter( fun(X) -> X /= nil end, [auto_reconnect, + {keepalive, true}, if CACertFile /= nil -> {cacertfile ,CACertFile}; true -> nil end,