Add IPv6 support to mod_irc (thanks to Matthias Schiffer)(EJAB-1298)
This commit is contained in:
parent
6952324509
commit
c754c91ad1
|
@ -105,8 +105,16 @@ init([From, Host, Server, Username, Encoding, Port, Password]) ->
|
||||||
open_socket(init, StateData) ->
|
open_socket(init, StateData) ->
|
||||||
Addr = StateData#state.server,
|
Addr = StateData#state.server,
|
||||||
Port = StateData#state.port,
|
Port = StateData#state.port,
|
||||||
?DEBUG("connecting to ~s:~p~n", [Addr, Port]),
|
?DEBUG("Connecting with IPv6 to ~s:~p", [Addr, Port]),
|
||||||
case gen_tcp:connect(Addr, Port, [binary, {packet, 0}]) of
|
Connect6 = gen_tcp:connect(Addr, Port, [inet6, binary, {packet, 0}]),
|
||||||
|
Connect = case Connect6 of
|
||||||
|
{error, _} ->
|
||||||
|
?DEBUG("Connection with IPv6 to ~s:~p failed. Now using IPv4.", [Addr, Port]),
|
||||||
|
gen_tcp:connect(Addr, Port, [inet, binary, {packet, 0}]);
|
||||||
|
_ ->
|
||||||
|
Connect6
|
||||||
|
end,
|
||||||
|
case Connect of
|
||||||
{ok, Socket} ->
|
{ok, Socket} ->
|
||||||
NewStateData = StateData#state{socket = Socket},
|
NewStateData = StateData#state{socket = Socket},
|
||||||
if
|
if
|
||||||
|
|
Loading…
Reference in New Issue