Compare commits
4 Commits
dbf0fb8e86
...
426e33d3a6
Author | SHA1 | Date |
---|---|---|
Badlop | 426e33d3a6 | |
Badlop | d6d8bce0e4 | |
Badlop | 7c76f2b764 | |
Paweł Chmielowski | 735516ed37 |
|
@ -79,6 +79,9 @@ fi
|
||||||
if [ -n "$INET_DIST_INTERFACE" ] ; then
|
if [ -n "$INET_DIST_INTERFACE" ] ; then
|
||||||
INET_DIST_INTERFACE2=$("$ERL" $ERLANG_OPTS -noshell -eval 'case inet:parse_address("'$INET_DIST_INTERFACE'") of {ok,IP} -> io:format("~p",[IP]); _ -> ok end.' -s erlang halt)
|
INET_DIST_INTERFACE2=$("$ERL" $ERLANG_OPTS -noshell -eval 'case inet:parse_address("'$INET_DIST_INTERFACE'") of {ok,IP} -> io:format("~p",[IP]); _ -> ok end.' -s erlang halt)
|
||||||
if [ -n "$INET_DIST_INTERFACE2" ] ; then
|
if [ -n "$INET_DIST_INTERFACE2" ] ; then
|
||||||
|
if [ "$(echo "$INET_DIST_INTERFACE2" | grep -o "," | wc -l)" -eq 7 ] ; then
|
||||||
|
INET_DIST_INTERFACE2="$INET_DIST_INTERFACE2 -proto_dist inet6_tcp"
|
||||||
|
fi
|
||||||
ERLANG_OPTS="$ERLANG_OPTS -kernel inet_dist_use_interface $INET_DIST_INTERFACE2"
|
ERLANG_OPTS="$ERLANG_OPTS -kernel inet_dist_use_interface $INET_DIST_INTERFACE2"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -78,6 +78,9 @@ fi
|
||||||
if [ -n "$INET_DIST_INTERFACE" ] ; then
|
if [ -n "$INET_DIST_INTERFACE" ] ; then
|
||||||
INET_DIST_INTERFACE2=$("$ERL" $ERLANG_OPTS -noshell -eval 'case inet:parse_address("'$INET_DIST_INTERFACE'") of {ok,IP} -> io:format("~p",[IP]); _ -> ok end.' -s erlang halt)
|
INET_DIST_INTERFACE2=$("$ERL" $ERLANG_OPTS -noshell -eval 'case inet:parse_address("'$INET_DIST_INTERFACE'") of {ok,IP} -> io:format("~p",[IP]); _ -> ok end.' -s erlang halt)
|
||||||
if [ -n "$INET_DIST_INTERFACE2" ] ; then
|
if [ -n "$INET_DIST_INTERFACE2" ] ; then
|
||||||
|
if [ "$(echo "$INET_DIST_INTERFACE2" | grep -o "," | wc -l)" -eq 7 ] ; then
|
||||||
|
INET_DIST_INTERFACE2="$INET_DIST_INTERFACE2 -proto_dist inet6_tcp"
|
||||||
|
fi
|
||||||
ERLANG_OPTS="$ERLANG_OPTS -kernel inet_dist_use_interface $INET_DIST_INTERFACE2"
|
ERLANG_OPTS="$ERLANG_OPTS -kernel inet_dist_use_interface $INET_DIST_INTERFACE2"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -37,30 +37,36 @@ start(Host) ->
|
||||||
case is_started(Host) of
|
case is_started(Host) of
|
||||||
true -> ok;
|
true -> ok;
|
||||||
false ->
|
false ->
|
||||||
App = case ejabberd_option:sql_type(Host) of
|
case lists:member(Host, ejabberd_option:hosts()) of
|
||||||
mysql -> p1_mysql;
|
false ->
|
||||||
pgsql -> p1_pgsql;
|
?WARNING_MSG("Rejecting start of sql worker for unknown host: ~ts", [Host]),
|
||||||
sqlite -> sqlite3;
|
{error, invalid_host};
|
||||||
_ -> odbc
|
true ->
|
||||||
end,
|
App = case ejabberd_option:sql_type(Host) of
|
||||||
ejabberd:start_app(App),
|
mysql -> p1_mysql;
|
||||||
Spec = #{id => gen_mod:get_module_proc(Host, ?MODULE),
|
pgsql -> p1_pgsql;
|
||||||
start => {ejabberd_sql_sup, start_link, [Host]},
|
sqlite -> sqlite3;
|
||||||
restart => transient,
|
_ -> odbc
|
||||||
shutdown => infinity,
|
end,
|
||||||
type => supervisor,
|
ejabberd:start_app(App),
|
||||||
modules => [?MODULE]},
|
Spec = #{id => gen_mod:get_module_proc(Host, ?MODULE),
|
||||||
case supervisor:start_child(ejabberd_db_sup, Spec) of
|
start => {ejabberd_sql_sup, start_link, [Host]},
|
||||||
{ok, _} ->
|
restart => transient,
|
||||||
ejabberd_sql_schema:start(Host),
|
shutdown => infinity,
|
||||||
ok;
|
type => supervisor,
|
||||||
{error, {already_started, Pid}} ->
|
modules => [?MODULE]},
|
||||||
%% Wait for the supervisor to fully start
|
case supervisor:start_child(ejabberd_db_sup, Spec) of
|
||||||
_ = supervisor:count_children(Pid),
|
{ok, _} ->
|
||||||
ok;
|
ejabberd_sql_schema:start(Host),
|
||||||
{error, Why} = Err ->
|
ok;
|
||||||
?ERROR_MSG("Failed to start ~ts: ~p", [?MODULE, Why]),
|
{error, {already_started, Pid}} ->
|
||||||
Err
|
%% Wait for the supervisor to fully start
|
||||||
|
_ = supervisor:count_children(Pid),
|
||||||
|
ok;
|
||||||
|
{error, Why} = Err ->
|
||||||
|
?ERROR_MSG("Failed to start ~ts: ~p", [?MODULE, Why]),
|
||||||
|
Err
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
|
|
@ -322,8 +322,13 @@ convert_roster_item(LUser, LServer, JIDstring, LuaList) ->
|
||||||
[R#roster{name = Name}];
|
[R#roster{name = Name}];
|
||||||
({<<"persist">>, false}, _) ->
|
({<<"persist">>, false}, _) ->
|
||||||
[];
|
[];
|
||||||
(_, []) ->
|
({<<"approved">>, _}, [R]) ->
|
||||||
[]
|
[R];
|
||||||
|
(A, [R]) ->
|
||||||
|
io:format("Warning: roster of user ~ts@~ts includes unknown "
|
||||||
|
"attribute:~n ~p~nand that one is discarded.~n",
|
||||||
|
[LUser, LServer, A]),
|
||||||
|
[R]
|
||||||
end, [InitR], LuaList)
|
end, [InitR], LuaList)
|
||||||
catch _:{bad_jid, _} ->
|
catch _:{bad_jid, _} ->
|
||||||
[]
|
[]
|
||||||
|
|
Loading…
Reference in New Issue