mirror of
https://github.com/isc-projects/bind9.git
synced 2026-03-30 22:35:38 -04:00
1247. [bug] Don't reset the interface index for link/site local
addresses. [RT #2576]
This commit is contained in:
parent
c5e54cacda
commit
69f20fa680
2 changed files with 23 additions and 15 deletions
12
CHANGES
12
CHANGES
|
|
@ -1,3 +1,11 @@
|
|||
1247. [bug] Don't reset the interface index for link/site local
|
||||
addresses. [RT #2576]
|
||||
|
||||
1246. [func] New functions isc_sockaddr_issitelocal(),
|
||||
isc_sockaddr_islinklocal(), isc_netaddr_issitelocal()
|
||||
and isc_netaddr_islinklocal().
|
||||
|
||||
|
||||
1235. [func] Report 'out of memory' errors from openssl.
|
||||
|
||||
1233. [bug] The flags field of a KEY record can be expressed in
|
||||
|
|
@ -711,10 +719,6 @@
|
|||
|
||||
1248. [bug] DESTDIR was not being propagated between makes.
|
||||
|
||||
1246. [func] New functions isc_sockaddr_issitelocal(),
|
||||
isc_sockaddr_islinklocal(), isc_netaddr_issitelocal()
|
||||
and isc_netaddr_islinklocal().
|
||||
|
||||
1245. [bug] Treat ENOBUFS, ENOMEM and ENFILE as soft errors for
|
||||
accept().
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: socket.c,v 1.207.2.19.2.1 2003/08/08 06:50:17 marka Exp $ */
|
||||
/* $Id: socket.c,v 1.207.2.19.2.2 2003/08/14 04:31:55 marka Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
|
|
@ -2599,18 +2599,22 @@ socket_send(isc_socket_t *sock, isc_socketevent_t *dev, isc_task_t *task,
|
|||
|
||||
set_dev_address(address, sock, dev);
|
||||
if (pktinfo != NULL) {
|
||||
socket_log(sock, NULL, TRACE, isc_msgcat, ISC_MSGSET_SOCKET,
|
||||
ISC_MSG_PKTINFOPROVIDED,
|
||||
"pktinfo structure provided, ifindex %u (set to 0)",
|
||||
pktinfo->ipi6_ifindex);
|
||||
|
||||
dev->attributes |= ISC_SOCKEVENTATTR_PKTINFO;
|
||||
dev->pktinfo = *pktinfo;
|
||||
/*
|
||||
* Set the pktinfo index to 0 here, to let the kernel decide
|
||||
* what interface it should send on.
|
||||
*/
|
||||
dev->pktinfo.ipi6_ifindex = 0;
|
||||
|
||||
if (!isc_sockaddr_issitelocal(address) &&
|
||||
!isc_sockaddr_islinklocal(address)) {
|
||||
socket_log(sock, NULL, TRACE, isc_msgcat,
|
||||
ISC_MSGSET_SOCKET, ISC_MSG_PKTINFOPROVIDED,
|
||||
"pktinfo structure provided, ifindex %u "
|
||||
"(set to 0)", pktinfo->ipi6_ifindex);
|
||||
|
||||
/*
|
||||
* Set the pktinfo index to 0 here, to let the
|
||||
* kernel decide what interface it should send on.
|
||||
*/
|
||||
dev->pktinfo.ipi6_ifindex = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (sock->type == isc_sockettype_udp)
|
||||
|
|
|
|||
Loading…
Reference in a new issue