+2009-03-09 Badlop <badlop@process-one.net>
+
+ * src/mod_proxy65/mod_proxy65_service.erl: if an ip option is not
+ defined, the module takes an IP address of a local
+ hostname (thanks to Evgeniy Khramtsov)
+
2009-03-07 Badlop <badlop@process-one.net>
* src/ejabberd_c2s.erl: Enforce privacy rules also for
ACL = gen_mod:get_opt(access, Opts, all),
Name = gen_mod:get_opt(name, Opts, "SOCKS5 Bytestreams"),
IP = case gen_mod:get_opt(ip, Opts, none) of
- none -> get_proxy_or_domainip(ServerHost, MyHost);
- Addr -> Addr
- end,
+ none -> get_my_ip();
+ Addr -> Addr
+ end,
StrIP = inet_parse:ntoa(IP),
StreamAddr = [{"jid", MyHost}, {"host", StrIP}, {"port", integer_to_list(Port)}],
{IP, #state{myhost = MyHost,
stream_addr = StreamAddr,
acl = ACL}}.
-%% Return the IP of the proxy host, or if not found, the ip of the xmpp domain
-get_proxy_or_domainip(ServerHost, MyHost) ->
- case inet:getaddr(MyHost, inet) of
+get_my_ip() ->
+ {ok, MyHostName} = inet:gethostname(),
+ case inet:getaddr(MyHostName, inet) of
{ok, Addr} -> Addr;
- {error, _} ->
- case inet:getaddr(ServerHost, inet) of
- {ok, Addr} -> Addr;
- {error, _} -> {127,0,0,1}
- end
+ {error, _} -> {127,0,0,1}
end.