new option "hostname" is added (thanks to Stefan Hepp) (EJAB-838)

This commit is contained in:
ekhramtsov 2010-02-17 23:17:33 +09:00
parent bc69b96e4c
commit 1a96944929
2 changed files with 16 additions and 2 deletions

View File

@ -3515,6 +3515,12 @@ to listen for. Default is an IP address of the service's DNS name, or,
if fails, \verb|{127,0,0,1}|.
\titem{\{port, Number\}}\ind{options!port}This option defines port to listen for
incoming connections. Default is~7777.
\titem{\{hostname, HostName\}}\ind{options!hostname}Defines a hostname advertised
by the service when establishing a session with clients. This is useful when
you run the service behind a NAT. The default is the value of \term{ip} option.
Examples: \term{"proxy.mydomain.org"}, \term{"200.150.100.50"}. Note that
not all clients understand domain names in stream negotiation,
so you should think twice before setting domain name in this option.
\titem{\{auth\_type, anonymous|plain\}}\ind{options!auth\_type}SOCKS5 authentication type.
Possible values are \term{anonymous} and \term{plain}. Default is
\term{anonymous}.

View File

@ -222,8 +222,16 @@ parse_options(ServerHost, Opts) ->
none -> get_my_ip();
Addr -> Addr
end,
StrIP = inet_parse:ntoa(IP),
StreamAddr = [{"jid", MyHost}, {"host", StrIP}, {"port", integer_to_list(Port)}],
HostName = case gen_mod:get_opt(hostname, Opts, none) of
none ->
inet_parse:ntoa(IP);
HostAddr when is_tuple(HostAddr) ->
inet_parse:ntoa(HostAddr);
HostNameStr ->
HostNameStr
end,
StreamAddr = [{"jid", MyHost}, {"host", HostName},
{"port", integer_to_list(Port)}],
#state{myhost = MyHost,
serverhost = ServerHost,
name = Name,