summaryrefslogtreecommitdiff
path: root/src/ejabberd_s2s_in.erl
diff options
context:
space:
mode:
authorAlexey Shchepin <alexey@process-one.net>2003-03-27 15:28:47 +0000
committerAlexey Shchepin <alexey@process-one.net>2003-03-27 15:28:47 +0000
commit27b0a72c6f48ffc65cac0d85bd7cc20c071ac03b (patch)
tree8f6670d04d1795a649baa16a6ff279c2649c99d0 /src/ejabberd_s2s_in.erl
parent* src/mod_muc/: Small fixes in discovering (diff)
* src/ejabberd_s2s_in.erl: Bugfix
SVN Revision: 94
Diffstat (limited to 'src/ejabberd_s2s_in.erl')
-rw-r--r--src/ejabberd_s2s_in.erl18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/ejabberd_s2s_in.erl b/src/ejabberd_s2s_in.erl
index 2f25c267..0256820f 100644
--- a/src/ejabberd_s2s_in.erl
+++ b/src/ejabberd_s2s_in.erl
@@ -109,7 +109,6 @@ wait_for_stream({xmlstreamstart, Name, Attrs}, StateData) ->
send_text(StateData#state.socket, ?INVALID_DOMAIN_ERR),
{stop, normal, StateData}
end;
-
_ ->
send_text(StateData#state.socket, ?INVALID_HEADER_ERR),
{stop, normal, StateData}
@@ -123,11 +122,18 @@ wait_for_key({xmlstreamelement, El}, StateData) ->
case is_key_packet(El) of
{key, To, From, Id, Key} ->
io:format("GET KEY: ~p~n", [{To, From, Id, Key}]),
- ejabberd_s2s_out:start(StateData#state.myname, From,
- {verify, self(), Key}),
- {next_state,
- wait_for_verification,
- StateData#state{server = From}};
+ case lists:member(To, ejabberd_router:dirty_get_all_domains()) of
+ true ->
+ ejabberd_s2s_out:start(To, From,
+ {verify, self(), Key}),
+ {next_state,
+ wait_for_verification,
+ StateData#state{myname = To,
+ server = From}};
+ _ ->
+ send_text(StateData#state.socket, ?INVALID_DOMAIN_ERR),
+ {stop, normal, StateData}
+ end;
{verify, To, From, Id, Key} ->
io:format("VERIFY KEY: ~p~n", [{To, From, Id, Key}]),
Key1 = ejabberd_s2s:get_key({StateData#state.myname, From}),