aboutsummaryrefslogtreecommitdiff
path: root/src/mod_pubsub
diff options
context:
space:
mode:
authorChristophe Romain <chris.romain@gmail.com>2010-03-08 15:16:58 +0100
committerChristophe Romain <chris.romain@gmail.com>2010-03-08 15:16:58 +0100
commit77e549e504c8eba7ad3825ed16eaf2ce5bf632f6 (patch)
tree71910f188de44d8b945c4c15fbeabc1fc6759091 /src/mod_pubsub
parentDocument mod_sic (EJAB-1205) (diff)
allow sending PEP to bare jid on s2s
Diffstat (limited to 'src/mod_pubsub')
-rw-r--r--src/mod_pubsub/mod_pubsub.erl10
-rw-r--r--src/mod_pubsub/mod_pubsub_odbc.erl10
-rw-r--r--src/mod_pubsub/pubsub_odbc.patch16
3 files changed, 22 insertions, 14 deletions
diff --git a/src/mod_pubsub/mod_pubsub.erl b/src/mod_pubsub/mod_pubsub.erl
index 266e4c775..2dd4cc0c7 100644
--- a/src/mod_pubsub/mod_pubsub.erl
+++ b/src/mod_pubsub/mod_pubsub.erl
@@ -3105,9 +3105,13 @@ broadcast_stanza({LUser, LServer, LResource}, Publisher, Node, NodeId, Type, Nod
Contacts when is_list(Contacts) ->
lists:foreach(fun({U, S, _}) ->
spawn(fun() ->
- lists:foreach(fun(To) ->
- ejabberd_router:route(Sender, jlib:make_jid(To), StanzaToSend)
- end, [{U, S, R} || R <- user_resources(U, S)])
+ case lists:member(S, ?MYHOSTS) of
+ true ->
+ lists:foreach(fun(To) ->
+ ejabberd_router:route(Sender, jlib:make_jid(To), StanzaToSend)
+ end, [{U, S, R} || R <- user_resources(U, S)]);
+ false ->
+ ejabberd_router:route(Sender, jlib:make_jid(U, S, ""), StanzaToSend)
end)
end, Contacts);
_ ->
diff --git a/src/mod_pubsub/mod_pubsub_odbc.erl b/src/mod_pubsub/mod_pubsub_odbc.erl
index f01ac865a..9acebf45c 100644
--- a/src/mod_pubsub/mod_pubsub_odbc.erl
+++ b/src/mod_pubsub/mod_pubsub_odbc.erl
@@ -2914,9 +2914,13 @@ broadcast_stanza({LUser, LServer, LResource}, Publisher, Node, NodeId, Type, Nod
Contacts when is_list(Contacts) ->
lists:foreach(fun({U, S, _}) ->
spawn(fun() ->
- lists:foreach(fun(To) ->
- ejabberd_router:route(Sender, jlib:make_jid(To), StanzaToSend)
- end, [{U, S, R} || R <- user_resources(U, S)])
+ case lists:member(S, ?MYHOSTS) of
+ true ->
+ lists:foreach(fun(To) ->
+ ejabberd_router:route(Sender, jlib:make_jid(To), StanzaToSend)
+ end, [{U, S, R} || R <- user_resources(U, S)]);
+ false ->
+ ejabberd_router:route(Sender, jlib:make_jid(U, S, ""), StanzaToSend)
end)
end, Contacts);
_ ->
diff --git a/src/mod_pubsub/pubsub_odbc.patch b/src/mod_pubsub/pubsub_odbc.patch
index 36644cf04..f12ff3619 100644
--- a/src/mod_pubsub/pubsub_odbc.patch
+++ b/src/mod_pubsub/pubsub_odbc.patch
@@ -1,5 +1,5 @@
---- mod_pubsub.erl 2010-03-05 18:19:48.033276211 +0100
-+++ mod_pubsub_odbc.erl 2010-03-05 18:20:02.694164397 +0100
+--- mod_pubsub.erl 2010-03-08 15:16:09.000000000 +0100
++++ mod_pubsub_odbc.erl 2010-03-08 15:16:19.000000000 +0100
@@ -42,7 +42,7 @@
%%% 6.2.3.1, 6.2.3.5, and 6.3. For information on subscription leases see
%%% XEP-0060 section 12.18.
@@ -658,7 +658,7 @@
_ -> Acc
end;
(_, Acc) ->
-@@ -3229,6 +3038,30 @@
+@@ -3233,6 +3042,30 @@
Result
end.
@@ -689,7 +689,7 @@
%% @spec (Host, Options) -> MaxItems
%% Host = host()
%% Options = [Option]
-@@ -3624,7 +3457,13 @@
+@@ -3628,7 +3461,13 @@
tree_action(Host, Function, Args) ->
?DEBUG("tree_action ~p ~p ~p",[Host,Function,Args]),
Fun = fun() -> tree_call(Host, Function, Args) end,
@@ -704,7 +704,7 @@
%% @doc <p>node plugin call.</p>
node_call(Type, Function, Args) ->
-@@ -3644,13 +3483,13 @@
+@@ -3648,13 +3487,13 @@
node_action(Host, Type, Function, Args) ->
?DEBUG("node_action ~p ~p ~p ~p",[Host,Type,Function,Args]),
@@ -720,7 +720,7 @@
case tree_call(Host, get_node, [Host, Node]) of
N when is_record(N, pubsub_node) ->
case Action(N) of
-@@ -3663,8 +3502,14 @@
+@@ -3667,8 +3506,14 @@
end
end, Trans).
@@ -737,7 +737,7 @@
{result, Result} -> {result, Result};
{error, Error} -> {error, Error};
{atomic, {result, Result}} -> {result, Result};
-@@ -3672,6 +3517,15 @@
+@@ -3676,6 +3521,15 @@
{aborted, Reason} ->
?ERROR_MSG("transaction return internal error: ~p~n", [{aborted, Reason}]),
{error, ?ERR_INTERNAL_SERVER_ERROR};
@@ -753,7 +753,7 @@
{'EXIT', Reason} ->
?ERROR_MSG("transaction return internal error: ~p~n", [{'EXIT', Reason}]),
{error, ?ERR_INTERNAL_SERVER_ERROR};
-@@ -3680,6 +3534,17 @@
+@@ -3684,6 +3538,17 @@
{error, ?ERR_INTERNAL_SERVER_ERROR}
end.