diff options
author | Badlop <badlop@process-one.net> | 2010-08-30 23:23:28 +0200 |
---|---|---|
committer | Badlop <badlop@process-one.net> | 2010-08-30 23:25:02 +0200 |
commit | c754c91ad1e68bb10afc541321dc13c4711fc665 (patch) | |
tree | 217cefdea98b64a5bb9aef5672b1d92db0ed3b8b | |
parent | implemented backend-independed key-value cacheing table; applied to mod_caps.... (diff) |
Add IPv6 support to mod_irc (thanks to Matthias Schiffer)(EJAB-1298)
-rw-r--r-- | src/mod_irc/mod_irc_connection.erl | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/mod_irc/mod_irc_connection.erl b/src/mod_irc/mod_irc_connection.erl index 107e6602e..39a06a294 100644 --- a/src/mod_irc/mod_irc_connection.erl +++ b/src/mod_irc/mod_irc_connection.erl @@ -105,8 +105,16 @@ init([From, Host, Server, Username, Encoding, Port, Password]) -> open_socket(init, StateData) -> Addr = StateData#state.server, Port = StateData#state.port, - ?DEBUG("connecting to ~s:~p~n", [Addr, Port]), - case gen_tcp:connect(Addr, Port, [binary, {packet, 0}]) of + ?DEBUG("Connecting with IPv6 to ~s:~p", [Addr, Port]), + 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} -> NewStateData = StateData#state{socket = Socket}, if |