From ruben@helium.verweg.com  Wed Apr 30 10:14:20 2008
Return-Path: <ruben@helium.verweg.com>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 74C401065671
	for <FreeBSD-gnats-submit@freebsd.org>; Wed, 30 Apr 2008 10:14:20 +0000 (UTC)
	(envelope-from ruben@helium.verweg.com)
Received: from helium.verweg.com (tunnel41.ipv6.xs4all.nl [IPv6:2001:888:10:29::2])
	by mx1.freebsd.org (Postfix) with ESMTP id 10A608FC1C
	for <FreeBSD-gnats-submit@freebsd.org>; Wed, 30 Apr 2008 10:14:19 +0000 (UTC)
	(envelope-from ruben@helium.verweg.com)
Received: from helium.verweg.com (ruben@localhost.verweg.com [127.0.0.1])
	by helium.verweg.com (8.14.2/8.14.1) with ESMTP id m3UAECA7007634
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
	for <FreeBSD-gnats-submit@freebsd.org>; Wed, 30 Apr 2008 12:14:18 +0200 (CEST)
	(envelope-from ruben@helium.verweg.com)
Received: (from ruben@localhost)
	by helium.verweg.com (8.14.2/8.14.1/Submit) id m3UAECpM007633;
	Wed, 30 Apr 2008 12:14:12 +0200 (CEST)
	(envelope-from ruben)
Message-Id: <200804301014.m3UAECpM007633@helium.verweg.com>
Date: Wed, 30 Apr 2008 12:14:12 +0200 (CEST)
From: Ruben van Staveren <ruben@verweg.com>
Reply-To: Ruben van Staveren <ruben@verweg.com>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: fix IPv6 support and enable dual stack support in jabber14
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         123253
>Category:       ports
>Synopsis:       fix IPv6 support and enable dual stack support in net-im/jabber
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    mm
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Wed Apr 30 10:20:01 UTC 2008
>Closed-Date:    Wed Apr 30 11:30:47 UTC 2008
>Last-Modified:  Wed Apr 30 11:30:47 UTC 2008
>Originator:     Ruben van Staveren
>Release:        FreeBSD 7.0-STABLE i386
>Organization:
Verweg dot com
>Environment:
System: FreeBSD helium.verweg.com 7.0-STABLE FreeBSD 7.0-STABLE #21: Tue Apr 22 12:41:05 CEST 2008 root@helium.verweg.com:/usr/obj/usr/cvsup/7-stable/src/sys/HELIUM-SMP i386


	
>Description:

Atleast on FreeBSD 7 IPv6 detection fails because the snippet testing for
getaddrinfo fails because NULL is undefined. including stddef.h fixes this

using setsockopt with IPV6_V6ONLY = 0 on the listening sockets allows for both
v4 and v6 clients to connect.

(I'm not sure this socket option is supported on all platforms, and thus
getting this patched more upstream)

>How-To-Repeat:

Build current net-im/jabber with IPv6 enabled to see it only listens to IPv4 sockets.

>Fix:


diff -Nur jabber.orig/files/patch-configure jabber/files/patch-configure
--- jabber.orig/files/patch-configure	2007-02-27 14:13:26.000000000 +0100
+++ jabber/files/patch-configure	2008-04-29 18:51:38.000000000 +0200
@@ -1,6 +1,14 @@
---- configure.orig	Sat Feb 17 10:54:39 2007
-+++ configure	Sat Feb 17 10:56:22 2007
-@@ -23750,8 +23750,8 @@
+--- configure.orig	2007-07-19 00:24:45.000000000 +0200
++++ configure	2008-04-29 18:51:04.000000000 +0200
+@@ -21168,6 +21168,7 @@
+ cat confdefs.h >>conftest.$ac_ext
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h.  */
++#include <sys/stddef.h>
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #include <netdb.h>
+@@ -22787,8 +22788,8 @@
  	CPPFLAGS="${CPPFLAGS} -I$postgresql/include"
      fi
      if test "${ac_cv_header_postgresql_libpq_fe_h+set}" = set; then
@@ -11,7 +19,7 @@
  if test "${ac_cv_header_postgresql_libpq_fe_h+set}" = set; then
    echo $ECHO_N "(cached) $ECHO_C" >&6
  fi
-@@ -23759,8 +23759,8 @@
+@@ -22796,8 +22797,8 @@
  echo "${ECHO_T}$ac_cv_header_postgresql_libpq_fe_h" >&6; }
  else
    # Is the header compilable?
@@ -22,7 +30,7 @@
  cat >conftest.$ac_ext <<_ACEOF
  /* confdefs.h.  */
  _ACEOF
-@@ -23768,7 +23768,7 @@
+@@ -22805,7 +22806,7 @@
  cat >>conftest.$ac_ext <<_ACEOF
  /* end confdefs.h.  */
  $ac_includes_default
@@ -31,7 +39,7 @@
  _ACEOF
  rm -f conftest.$ac_objext
  if { (ac_try="$ac_compile"
-@@ -23817,15 +23817,15 @@
+@@ -22837,15 +22838,15 @@
  echo "${ECHO_T}$ac_header_compiler" >&6; }
  
  # Is the header present?
@@ -50,7 +58,7 @@
  _ACEOF
  if { (ac_try="$ac_cpp conftest.$ac_ext"
  case "(($ac_try" in
-@@ -23865,30 +23865,30 @@
+@@ -22878,30 +22879,30 @@
  # So?  What about this header?
  case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in
    yes:no: )
diff -Nur jabber.orig/files/patch-jabberd-lib-socket.cc jabber/files/patch-jabberd-lib-socket.cc
--- jabber.orig/files/patch-jabberd-lib-socket.cc	1970-01-01 01:00:00.000000000 +0100
+++ jabber/files/patch-jabberd-lib-socket.cc	2008-04-29 19:05:49.000000000 +0200
@@ -0,0 +1,11 @@
+--- jabberd/lib/socket.cc.orig	2007-07-17 01:20:44.000000000 +0200
++++ jabberd/lib/socket.cc	2008-04-29 19:05:42.000000000 +0200
+@@ -95,6 +95,8 @@
+             sa.sin_addr.s_addr = saddr->s_addr;
+ #endif
+ 
++		flag = 0;
++		setsockopt(s, IPPROTO_IPV6, IPV6_V6ONLY, (char*)&flag, sizeof(flag)); 
+         if(bind(s,(struct sockaddr*)&sa,sizeof sa) < 0)
+         {
+             close(s);
diff -Nur jabber.orig/files/patch-jabberd-mio.cc jabber/files/patch-jabberd-mio.cc
--- jabber.orig/files/patch-jabberd-mio.cc	1970-01-01 01:00:00.000000000 +0100
+++ jabber/files/patch-jabberd-mio.cc	2008-04-29 19:01:27.000000000 +0200
@@ -0,0 +1,17 @@
+--- jabberd/mio.cc.orig	2008-04-29 18:54:19.000000000 +0200
++++ jabberd/mio.cc	2008-04-29 19:00:45.000000000 +0200
+@@ -673,11 +673,14 @@
+ 	sa.sin6_flowinfo = 0;
+ 
+ 	inet_pton(AF_INET6, addr_str, &sa.sin6_addr);
++	flag = 0;
++	setsockopt(newm->fd, IPPROTO_IPV6, IPV6_V6ONLY, (char*)&flag, sizeof(flag)); 
+ #else
+         struct sockaddr_in sa;
+         sa.sin_family = AF_INET;
+         sa.sin_port   = 0;
+         inet_aton(xmlnode_get_data(xmlnode_get_list_item(xmlnode_get_tags(greymatter__, "io/bind", namespaces, temp_pool), 0)), &sa.sin_addr);
++	
+ #endif
+         bind(newm->fd, (struct sockaddr*)&sa, sizeof(sa));
+     }

>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-ports-bugs->mm 
Responsible-Changed-By: edwin 
Responsible-Changed-When: Wed Apr 30 10:56:23 UTC 2008 
Responsible-Changed-Why:  
Over to maintainer (via the GNATS Auto Assign Tool) 

http://www.freebsd.org/cgi/query-pr.cgi?pr=123253 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: ports/123253: commit references a PR
Date: Wed, 30 Apr 2008 11:27:34 +0000 (UTC)

 mm          2008-04-30 11:27:21 UTC
 
   FreeBSD ports repository
 
   Modified files:
     net-im/jabber        Makefile 
     net-im/jabber/files  patch-configure 
   Added files:
     net-im/jabber/files  patch-jabberd-lib-socket.cc 
                          patch-jabberd-mio.cc 
   Log:
   - fix IPv6 support [1]
   - remove autodetection of MySQL and PostgreSQL if not selected
   - bump PORTREVISION
   
   PR:             ports/123253 [1]
   Submitted by:   Ruben van Staveren <ruben@verweg.com>
   Approved by:    mm (maintainer)
   
   Revision  Changes    Path
   1.47      +1 -1      ports/net-im/jabber/Makefile
   1.6       +33 -7     ports/net-im/jabber/files/patch-configure
   1.1       +11 -0     ports/net-im/jabber/files/patch-jabberd-lib-socket.cc (new)
   1.1       +17 -0     ports/net-im/jabber/files/patch-jabberd-mio.cc (new)
 _______________________________________________
 cvs-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/cvs-all
 To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
 
State-Changed-From-To: open->closed 
State-Changed-By: mm 
State-Changed-When: Wed Apr 30 11:30:46 UTC 2008 
State-Changed-Why:  
Committed. Thanks! 

http://www.freebsd.org/cgi/query-pr.cgi?pr=123253 
>Unformatted:
