$NetBSD: patch-ah,v 1.2 2009/03/22 10:39:44 martti Exp $

Modified to use IPv6/v4 patch (https://support.process-one.net/browse/EJAB-389)

--- src/mod_proxy65/mod_proxy65_service.erl.orig	2009-03-12 08:41:02.000000000 +0000
+++ src/mod_proxy65/mod_proxy65_service.erl	2009-03-22 10:27:50.000000000 +0000
@@ -52,6 +52,7 @@
 	  name,
 	  stream_addr,
 	  port,
+	  ip,
 	  acl
 	 }).
 
@@ -69,14 +70,14 @@
     gen_server:start_link({local, Proc}, ?MODULE, [Host, Opts], []).
 
 init([Host, Opts]) ->
-    {IP, State} = parse_options(Host, Opts),
-    NewOpts = [Host, {ip, IP} | Opts],
-    ejabberd_listener:add_listener(State#state.port, mod_proxy65_stream, NewOpts),
+    State = parse_options(Host, Opts),
+    NewOpts = [Host | Opts],
+    ejabberd_listener:add_listener({State#state.port, State#state.ip}, mod_proxy65_stream, NewOpts),
     ejabberd_router:register_route(State#state.myhost),
     {ok, State}.
 
-terminate(_Reason, #state{myhost=MyHost, port=Port}) ->
-    catch ejabberd_listener:delete_listener(Port),
+terminate(_Reason, #state{myhost=MyHost, port=Port, ip=IP}) ->
+    catch ejabberd_listener:delete_listener({Port, IP}),
     ejabberd_router:unregister_route(MyHost),
     ok.
 
@@ -202,12 +203,13 @@
 	 end,
     StrIP = inet_parse:ntoa(IP),
     StreamAddr = [{"jid", MyHost}, {"host", StrIP}, {"port", integer_to_list(Port)}],
-    {IP, #state{myhost      = MyHost,
+    #state{myhost      = MyHost,
 		serverhost  = ServerHost,
 		name        = Name,
 		port        = Port,
+		ip          = IP,
 		stream_addr = StreamAddr, 
-		acl         = ACL}}.
+		acl         = ACL}.
 
 get_my_ip() ->
     {ok, MyHostName} = inet:gethostname(),
