+2009-02-27 Evgeniy Khramtsov <ekhramtsov@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.
+
2009-02-26 Badlop <badlop@process-one.net>
* doc/guide.tex: No mention to the release date in ejabberd Guide
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)}],
#state{myhost = MyHost,
- serverhost = ServerHost,
- name = Name,
- port = Port,
- ip = IP,
- 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
+ serverhost = ServerHost,
+ name = Name,
+ port = Port,
+ ip = IP,
+ stream_addr = StreamAddr,
+ acl = ACL}.
+
+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.