aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--src/ejabberd_s2s_out.erl15
2 files changed, 15 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index c13553938..cb7f8bcb8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-12-29 Alexey Shchepin <alexey@process-one.net>
+
+ * src/ejabberd_s2s_out.erl: Fixed behavior when outgoing_s2s_port
+ option is not defined (EJAB-487)
+
2007-12-27 Badlop <badlop@process-one.net>
* src/mod_vcard_ldap.erl: Fix some field names (EJAB-483)
diff --git a/src/ejabberd_s2s_out.erl b/src/ejabberd_s2s_out.erl
index c8094f8f9..bb862a91a 100644
--- a/src/ejabberd_s2s_out.erl
+++ b/src/ejabberd_s2s_out.erl
@@ -923,14 +923,13 @@ get_addr_port(Server) ->
case Res of
{error, Reason} ->
?DEBUG("srv lookup of '~s' failed: ~p~n", [Server, Reason]),
- [{Server, ejabberd_config:get_local_option(outgoing_s2s_port)}];
+ [{Server, outgoing_s2s_port()}];
{ok, HEnt} ->
?DEBUG("srv lookup of '~s': ~p~n",
[Server, HEnt#hostent.h_addr_list]),
case HEnt#hostent.h_addr_list of
[] ->
- [{Server,
- ejabberd_config:get_local_option(outgoing_s2s_port)}];
+ [{Server, outgoing_s2s_port()}];
AddrList ->
%% Probabilities are not exactly proportional to weights
%% for simplicity (higher weigths are overvalued)
@@ -945,8 +944,7 @@ get_addr_port(Server) ->
{Priority * 65536 - N, Host, Port}
end, AddrList)) of
{'EXIT', _Reasn} ->
- [{Server,
- ejabberd_config:get_local_option(outgoing_s2s_port)}];
+ [{Server, outgoing_s2s_port()}];
SortedList ->
List = lists:map(
fun({_, Host, Port}) ->
@@ -970,6 +968,13 @@ test_get_addr_port(Server) ->
end
end, [], lists:seq(1, 100000)).
+outgoing_s2s_port() ->
+ case ejabberd_config:get_local_option(outgoing_s2s_port) of
+ Port when is_integer(Port) ->
+ Port;
+ undefined ->
+ 5269
+ end.
%% Human readable S2S logging: Log only new outgoing connections as INFO
%% Do not log dialback