summaryrefslogtreecommitdiff
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
parent* src/mod_muc/: Small fixes in discovering (diff)
* src/ejabberd_s2s_in.erl: Bugfix
SVN Revision: 94
-rw-r--r--ChangeLog2
-rw-r--r--src/ejabberd_s2s_in.erl18
2 files changed, 14 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 3834f85b..0791b8d7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
2003-03-27 Alexey Shchepin <alexey@sevcom.net>
+ * src/ejabberd_s2s_in.erl: Bugfix
+
* src/mod_muc/: Small fixes in discovering
2003-03-26 Alexey Shchepin <alexey@sevcom.net>
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}),