forked from rpms/glibc
		
	Auto-sync with upstream branch master
Upstream commit: 38b52865d4ccfee3647f27e969e539a4396a73b1 - Drop glibc-rh1670028.patch, applied upstream - elf: Add DF_1_KMOD, DF_1_WEAKFILTER, DF_1_NOCOMMON to <elf.h> - resolv: Enable full ICMP errors for UDP DNS sockets [BZ #24047] - C-SKY: add elf header definition for elfutils - C-SKY: mark lr as undefined to stop unwinding - C-SKY: remove user_regs definition - C-SKY: fix sigcontext miss match - Bug 24307: Update to Unicode 12.0.0 - Break lines before not after operators, batch 4. - check-wrapper-headers test: Adjust Fortran include file directory - Fix location where math-vector-fortran.h is installed.
This commit is contained in:
		
							parent
							
								
									97506ad65a
								
							
						
					
					
						commit
						70ec0cd8b9
					
				| @ -1,100 +0,0 @@ | ||||
| resolv: Enable full ICMP error reporting for UDP DNS sockets | ||||
| 
 | ||||
| The Linux kernel suppresses some ICMP error messages by default for UDP | ||||
| sockets.  This commit enables full ICMP error reporting, hopefully | ||||
| resulting in faster timeouts. | ||||
| 
 | ||||
| diff --git a/resolv/Makefile b/resolv/Makefile
 | ||||
| index 8f22e6a154621238..ebe1b733f294a97c 100644
 | ||||
| --- a/resolv/Makefile
 | ||||
| +++ b/resolv/Makefile
 | ||||
| @@ -105,7 +105,7 @@ libresolv-routines := res_comp res_debug \
 | ||||
|  		      res_data res_mkquery res_query res_send		\ | ||||
|  		      inet_net_ntop inet_net_pton inet_neta base64	\ | ||||
|  		      ns_parse ns_name ns_netint ns_ttl ns_print	\ | ||||
| -		      ns_samedomain ns_date \
 | ||||
| +		      ns_samedomain ns_date res_enable_icmp \
 | ||||
|  		      compat-hooks compat-gethnamaddr | ||||
|   | ||||
|  libanl-routines := gai_cancel gai_error gai_misc gai_notify gai_suspend \ | ||||
| diff --git a/resolv/res_enable_icmp.c b/resolv/res_enable_icmp.c
 | ||||
| new file mode 100644 | ||||
| index 0000000000000000..bdc9220f08cef71d
 | ||||
| --- /dev/null
 | ||||
| +++ b/resolv/res_enable_icmp.c
 | ||||
| @@ -0,0 +1,37 @@
 | ||||
| +/* Enable full ICMP errors on a socket.
 | ||||
| +   Copyright (C) 2019 Free Software Foundation, Inc.
 | ||||
| +   This file is part of the GNU C Library.
 | ||||
| +
 | ||||
| +   The GNU C Library is free software; you can redistribute it and/or
 | ||||
| +   modify it under the terms of the GNU Lesser General Public
 | ||||
| +   License as published by the Free Software Foundation; either
 | ||||
| +   version 2.1 of the License, or (at your option) any later version.
 | ||||
| +
 | ||||
| +   The GNU C Library is distributed in the hope that it will be useful,
 | ||||
| +   but WITHOUT ANY WARRANTY; without even the implied warranty of
 | ||||
| +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | ||||
| +   Lesser General Public License for more details.
 | ||||
| +
 | ||||
| +   You should have received a copy of the GNU Lesser General Public
 | ||||
| +   License along with the GNU C Library; if not, see
 | ||||
| +   <http://www.gnu.org/licenses/>.  */
 | ||||
| +
 | ||||
| +#include <errno.h>
 | ||||
| +#include <netinet/in.h>
 | ||||
| +#include <sys/socket.h>
 | ||||
| +
 | ||||
| +int
 | ||||
| +__res_enable_icmp (int family, int fd)
 | ||||
| +{
 | ||||
| +  int one = 1;
 | ||||
| +  switch (family)
 | ||||
| +    {
 | ||||
| +    case AF_INET:
 | ||||
| +      return setsockopt (fd, SOL_IP, IP_RECVERR, &one, sizeof (one));
 | ||||
| +    case AF_INET6:
 | ||||
| +      return setsockopt (fd, SOL_IPV6, IPV6_RECVERR, &one, sizeof (one));
 | ||||
| +    default:
 | ||||
| +      __set_errno (EAFNOSUPPORT);
 | ||||
| +      return -1;
 | ||||
| +    }
 | ||||
| +}
 | ||||
| diff --git a/resolv/res_send.c b/resolv/res_send.c
 | ||||
| index fa040c1198fadce5..0f6ec83a7ba05986 100644
 | ||||
| --- a/resolv/res_send.c
 | ||||
| +++ b/resolv/res_send.c
 | ||||
| @@ -943,6 +943,18 @@ reopen (res_state statp, int *terrno, int ns)
 | ||||
|  			return (-1); | ||||
|  		} | ||||
|   | ||||
| +		/* Enable full ICMP error reporting for this
 | ||||
| +		   socket.  */
 | ||||
| +		if (__res_enable_icmp (nsap->sa_family,
 | ||||
| +				       EXT (statp).nssocks[ns]) < 0)
 | ||||
| +		  {
 | ||||
| +		    int saved_errno = errno;
 | ||||
| +		    __res_iclose (statp, false);
 | ||||
| +		    __set_errno (saved_errno);
 | ||||
| +		    *terrno = saved_errno;
 | ||||
| +		    return -1;
 | ||||
| +		  }
 | ||||
| +
 | ||||
|  		/* | ||||
|  		 * On a 4.3BSD+ machine (client and server, | ||||
|  		 * actually), sending to a nameserver datagram | ||||
| diff --git a/resolv/resolv-internal.h b/resolv/resolv-internal.h
 | ||||
| index 6ab8f2af09a7ce0b..1500adc607f2ce3e 100644
 | ||||
| --- a/resolv/resolv-internal.h
 | ||||
| +++ b/resolv/resolv-internal.h
 | ||||
| @@ -100,4 +100,10 @@ libc_hidden_proto (__inet_pton_length)
 | ||||
|  /* Called as part of the thread shutdown sequence.  */ | ||||
|  void __res_thread_freeres (void) attribute_hidden; | ||||
|   | ||||
| +/* The Linux kernel does not enable all ICMP messages on a UDP socket
 | ||||
| +   by default.  A call this function enables full error reporting for
 | ||||
| +   the socket FD.  FAMILY must be AF_INET or AF_INET6.  Returns 0 on
 | ||||
| +   success, -1 on failure.  */
 | ||||
| +int __res_enable_icmp (int family, int fd) attribute_hidden;
 | ||||
| +
 | ||||
|  #endif  /* _RESOLV_INTERNAL_H */ | ||||
							
								
								
									
										20
									
								
								glibc.spec
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								glibc.spec
									
									
									
									
									
								
							| @ -1,4 +1,4 @@ | ||||
| %define glibcsrcdir glibc-2.29.9000-114-g0ddb7ea842 | ||||
| %define glibcsrcdir glibc-2.29.9000-124-g38b52865d4 | ||||
| %define glibcversion 2.29.9000 | ||||
| # Pre-release tarballs are pulled in from git using a command that is | ||||
| # effectively: | ||||
| @ -87,7 +87,7 @@ | ||||
| Summary: The GNU libc libraries | ||||
| Name: glibc | ||||
| Version: %{glibcversion} | ||||
| Release: 4%{?dist} | ||||
| Release: 5%{?dist} | ||||
| 
 | ||||
| # In general, GPLv2+ is used by programs, LGPLv2+ is used for | ||||
| # libraries. | ||||
| @ -157,7 +157,6 @@ Patch17: glibc-cs-path.patch | ||||
| Patch18: glibc-c-utf8-locale.patch | ||||
| Patch23: glibc-python3.patch | ||||
| Patch28: glibc-rh1615608.patch | ||||
| Patch29: glibc-rh1670028.patch | ||||
| Patch30: glibc-warning-fix.patch | ||||
| 
 | ||||
| ############################################################################## | ||||
| @ -1892,6 +1891,21 @@ fi | ||||
| %files -f compat-libpthread-nonshared.filelist -n compat-libpthread-nonshared | ||||
| 
 | ||||
| %changelog | ||||
| * Wed Mar 13 2019 Florian Weimer <fweimer@redhat.com> - 2.29.9000-5 | ||||
| - Drop glibc-rh1670028.patch, applied upstream | ||||
| - Auto-sync with upstream branch master, | ||||
|   commit 38b52865d4ccfee3647f27e969e539a4396a73b1: | ||||
| - elf: Add DF_1_KMOD, DF_1_WEAKFILTER, DF_1_NOCOMMON to <elf.h> | ||||
| - resolv: Enable full ICMP errors for UDP DNS sockets [BZ #24047] | ||||
| - C-SKY: add elf header definition for elfutils | ||||
| - C-SKY: mark lr as undefined to stop unwinding | ||||
| - C-SKY: remove user_regs definition | ||||
| - C-SKY: fix sigcontext miss match | ||||
| - Bug 24307: Update to Unicode 12.0.0 | ||||
| - Break lines before not after operators, batch 4. | ||||
| - check-wrapper-headers test: Adjust Fortran include file directory | ||||
| - Fix location where math-vector-fortran.h is installed. | ||||
| 
 | ||||
| * Wed Mar 06 2019 DJ Delorie <dj@redhat.com> - 2.29.9000-4 | ||||
| - Auto-sync with upstream branch master, | ||||
|   commit 0ddb7ea842abf63516b74d4b057c052afc6ba863. | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user