diff options
author | Alexey Shchepin <alexey@process-one.net> | 2003-03-27 15:28:47 +0000 |
---|---|---|
committer | Alexey Shchepin <alexey@process-one.net> | 2003-03-27 15:28:47 +0000 |
commit | 27b0a72c6f48ffc65cac0d85bd7cc20c071ac03b (patch) | |
tree | 8f6670d04d1795a649baa16a6ff279c2649c99d0 /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.erl | 18 |
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}), |