Commit e544b507 authored by David Lawrence's avatar David Lawrence
Browse files

602. [func] Cope automatically with UnixWare's broken

			IN6_IS_ADDR_* macros. [RT #539]
parent d30c18b1
602. [func] Cope automatically with UnixWare's broken
IN6_IS_ADDR_* macros. [RT #539]
601. [func] Return a non-zero exit code if an update fails
in nsupdate.
......
......@@ -154,8 +154,7 @@ Building
Slackware Linux 7.0 with 2.4.0-test6 kernel and glibc 2.1.3
Slackware Linux 7.0.1 with glibc 2.1.3
OpenBSD 2.6, 2.8, -current
UnixWare 7.1.1 once the IN6_IS_ADDR_MULTICAST macro in
/usr/include/netinet/in6_f.h is repaired (== vs =).
UnixWare 7.1.1
To build, just
......
This diff is collapsed.
......@@ -18,7 +18,7 @@ AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
esyscmd([sed "s/^/# /" COPYRIGHT])dnl
AC_DIVERT_POP()dnl
AC_REVISION($Revision: 1.195 $)
AC_REVISION($Revision: 1.196 $)
AC_INIT(lib/dns/name.c)
AC_PREREQ(2.13)
......@@ -698,11 +698,13 @@ case "$host" in
*-UnixWare*)
ISC_PLATFORM_NEEDNETINETIN6H="#define ISC_PLATFORM_NEEDNETINETIN6H 1"
LWRES_PLATFORM_NEEDNETINETIN6H="#define LWRES_PLATFORM_NEEDNETINETIN6H 1"
ISC_PLATFORM_FIXIN6ISADDR="#define ISC_PLATFORM_FIXIN6ISADDR 1"
isc_netinetin6_hack="#include <netinet/in6.h>"
;;
*)
ISC_PLATFORM_NEEDNETINETIN6H="#undef ISC_PLATFORM_NEEDNETINETIN6H"
LWRES_PLATFORM_NEEDNETINETIN6H="#undef LWRES_PLATFORM_NEEDNETINETIN6H"
ISC_PLATFORM_FIXIN6ISADDR="#undef ISC_PLATFORM_FIXIN6ISADDR"
isc_netinetin6_hack=""
;;
esac
......@@ -781,6 +783,7 @@ AC_SUBST(LWRES_PLATFORM_NEEDNETINET6IN6H)
AC_SUBST(ISC_PLATFORM_NEEDIN6ADDRANY)
AC_SUBST(LWRES_PLATFORM_NEEDIN6ADDRANY)
AC_SUBST(ISC_PLATFORM_HAVEIN6PKTINFO)
AC_SUBST(ISC_PLATFORM_FIXIN6ISADDR)
AC_SUBST(ISC_IPV6_H)
AC_SUBST(ISC_IPV6_O)
AC_SUBST(ISC_ISCIPV6_O)
......
......@@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: platform.h.in,v 1.15 2000/08/28 23:51:09 gson Exp $ */
/* $Id: platform.h.in,v 1.16 2000/12/08 00:55:30 tale Exp $ */
#ifndef ISC_PLATFORM_H
#define ISC_PLATFORM_H 1
......@@ -100,6 +100,12 @@
*/
@ISC_PLATFORM_BRACEPTHREADONCEINIT@
/*
* Define on some UnixWare systems to fix erroneous definitions of various
* IN6_IS_ADDR_* macros.
*/
@ISC_PLATFORM_FIXIN6ISADDR@
/***
*** Printing.
***/
......
......@@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: net.h,v 1.23 2000/08/01 01:31:38 tale Exp $ */
/* $Id: net.h,v 1.24 2000/12/08 00:55:32 tale Exp $ */
#ifndef ISC_NET_H
#define ISC_NET_H 1
......@@ -114,6 +114,26 @@ extern const struct in6_addr isc_net_in6addrany;
#define in6addr_any isc_net_in6addrany
#endif
/*
* Fix UnixWare 7.1.1's broken IN6_IS_ADDR_* definitions.
*/
#ifdef ISC_PLATFORM_FIXIN6ISADDR
#define IN6_IS_ADDR_GEOGRAPHIC
#define IN6_IS_ADDR_GEOGRAPHIC(a) (((a)->S6_un.S6_l[0] & 0xE0) == 0x80)
#define IN6_IS_ADDR_IPX
#define IN6_IS_ADDR_IPX(a) (((a)->S6_un.S6_l[0] & 0xFE) == 0x04)
#define IN6_IS_ADDR_LINKLOCAL
#define IN6_IS_ADDR_LINKLOCAL(a) (((a)->S6_un.S6_l[0] & 0xC0FF) == 0x80FE)
#define IN6_IS_ADDR_MULTICAST
#define IN6_IS_ADDR_MULTICAST(a) (((a)->S6_un.S6_l[0] & 0xFF) == 0xFF)
#define IN6_IS_ADDR_NSAP
#define IN6_IS_ADDR_NSAP(a) (((a)->S6_un.S6_l[0] & 0xFE) == 0x02)
#define IN6_IS_ADDR_PROVIDER
#define IN6_IS_ADDR_PROVIDER(a) (((a)->S6_un.S6_l[0] & 0xE0) == 0x40)
#define IN6_IS_ADDR_SITELOCAL
#define IN6_IS_ADDR_SITELOCAL(a) (((a)->S6_un.S6_l[0] & 0xC0FF) == 0xC0FE)
#endif /* ISC_PLATFORM_FIXIN6ISADDR */
/*
* Ensure type in_port_t is defined.
*/
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment