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 /src/mod_irc | |
| 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)
Diffstat (limited to 'src/mod_irc')
| -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 |
