[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

r6673 - in glibc-package/branches/glibc-2.21/debian: . patches/kfreebsd



Author: aurel32
Date: 2015-10-25 22:16:24 +0000 (Sun, 25 Oct 2015)
New Revision: 6673

Modified:
   glibc-package/branches/glibc-2.21/debian/changelog
   glibc-package/branches/glibc-2.21/debian/patches/kfreebsd/local-getaddrinfo-freebsd-kernel.diff
Log:
patches/kfreebsd/local-getaddrinfo-freebsd-kernel.diff: improve and remove
a warning.

Modified: glibc-package/branches/glibc-2.21/debian/changelog
===================================================================
--- glibc-package/branches/glibc-2.21/debian/changelog	2015-10-25 22:15:47 UTC (rev 6672)
+++ glibc-package/branches/glibc-2.21/debian/changelog	2015-10-25 22:16:24 UTC (rev 6673)
@@ -19,6 +19,8 @@
     - Define SOCK_CLOEXEC and SOCK_NONBLOCK.
     - Wire-up accept4.  Closes: #722885.
   * patches/kfreebsd/local-nscd-no-sockcloexec.diff: Drop.
+  * patches/kfreebsd/local-getaddrinfo-freebsd-kernel.diff: improve and remove
+    a warning.
   * patches/any/cvs-rfc3542-advanced-api.diff: new patch from usptream to
     add missing Advanced API (RFC3542) (1) defines.  Closes: #753909.
   * debian/rules: don't put debug files from libc0.1-i386 and libc6-mips32

Modified: glibc-package/branches/glibc-2.21/debian/patches/kfreebsd/local-getaddrinfo-freebsd-kernel.diff
===================================================================
--- glibc-package/branches/glibc-2.21/debian/patches/kfreebsd/local-getaddrinfo-freebsd-kernel.diff	2015-10-25 22:15:47 UTC (rev 6672)
+++ glibc-package/branches/glibc-2.21/debian/patches/kfreebsd/local-getaddrinfo-freebsd-kernel.diff	2015-10-25 22:16:24 UTC (rev 6673)
@@ -1,20 +1,21 @@
 --- a/sysdeps/posix/getaddrinfo.c
 +++ b/sysdeps/posix/getaddrinfo.c
-@@ -2267,8 +2267,20 @@
+@@ -2522,8 +2522,21 @@
  		}
  
  	      socklen_t sl = sizeof (results[i].source_addr);
++	      const struct sockaddr *sa = q->ai_addr;
 +#ifdef __FreeBSD_kernel__
 +	      struct sockaddr_in6 sa_in6;
-+	      const struct sockaddr *sa = &sa_in6; 
-+	      memcpy(&sa_in6, q->ai_addr, q->ai_family == AF_INET6 ?
-+		     sizeof(struct sockaddr_in6) : sizeof(struct sockaddr_in));
 +	      /* The FreeBSD kernel doesn't allow connections on port 0. Use
 +	         port 1 instead, as on the FreeBSD libc. */
-+	      if (sa_in6.sin6_port == htons(0))
-+		sa_in6.sin6_port = htons(1);
-+#else
-+	      const struct sockaddr *sa = q->ai_addr;
++	      if (((struct sockaddr_in *)sa)->sin_port == htons(0))
++		{
++		  sa = (struct sockaddr *)&sa_in6;
++		  memcpy(&sa_in6, q->ai_addr, q->ai_family == AF_INET6 ?
++		       sizeof(struct sockaddr_in6) : sizeof(struct sockaddr_in));
++		  sa_in6.sin6_port = htons(1);
++		}
 +#endif
  	      if (fd != -1
 -		  && __connect (fd, q->ai_addr, q->ai_addrlen) == 0


Reply to: