axi changes

This commit is contained in:
Mark Andrews
2001-05-14 07:59:46 +00:00
parent a9aeae8dc0
commit 2510f0bd84
8 changed files with 310 additions and 223 deletions

View File

@@ -1,5 +1,6 @@
#undef HAVE_FCNTL_H
#undef HAVE_PATHS_H
#undef HAVE_SYS_TIMERS_H
#undef SYS_CDEFS_H
#undef _POSIX_PTHREAD_SEMANTICS
#undef POSIX_GETPWUID_R

472
lib/bind/configure vendored

File diff suppressed because it is too large Load Diff

View File

@@ -18,7 +18,7 @@ AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
esyscmd([sed "s/^/# /" COPYRIGHT])dnl
AC_DIVERT_POP()dnl
AC_REVISION($Revision: 1.46 $)
AC_REVISION($Revision: 1.47 $)
AC_INIT(resolv/herror.c)
AC_PREREQ(2.13)
@@ -195,7 +195,7 @@ AC_PROG_CC
AC_HEADER_STDC
AC_CHECK_HEADERS(fcntl.h db.h paths.h sys/time.h unistd.h sys/sockio.h sys/select.h)
AC_CHECK_HEADERS(fcntl.h db.h paths.h sys/time.h unistd.h sys/sockio.h sys/select.h sys/timers.h)
AC_C_CONST
@@ -942,12 +942,27 @@ $isc_netinet6in6_hack
ISC_PLATFORM_HAVEIN6PKTINFO="#define ISC_PLATFORM_HAVEIN6PKTINFO 1"],
[AC_MSG_RESULT(no -- disabling runtime ipv6 support)
ISC_PLATFORM_HAVEIN6PKTINFO="#undef ISC_PLATFORM_HAVEIN6PKTINFO"])
AC_MSG_CHECKING(for sockaddr_storage)
AC_TRY_COMPILE([
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
$isc_netinetin6_hack
$isc_netinet6in6_hack
],
[struct sockaddr_storage xyzzy; return (0);],
[AC_MSG_RESULT(yes)
HAVE_SOCKADDR_STOR="#define HAVE_SOCKADDR_STORAGE 1"],
[AC_MSG_RESULT(no)
HAVE_SOCKADDR_STORAGE="#undef HAVE_SOCKADDR_STORAGE"])
;;
no)
HAS_INET6_STRUCTS="#undef HAS_INET6_STRUCTS"
NEED_IN6ADDR_ANY="#undef NEED_IN6ADDR_ANY"
ISC_PLATFORM_HAVEIN6PKTINFO="#undef ISC_PLATFORM_HAVEIN6PKTINFO"
HAVE_SIN6_SCOPE_ID="#define HAVE_SIN6_SCOPE_ID 1"
HAVE_SOCKADDR_STORAGE="#undef HAVE_SOCKADDR_STORAGE"
ISC_IPV6_H="ipv6.h"
ISC_IPV6_O="ipv6.$O"
ISC_ISCIPV6_O="unix/ipv6.$O"
@@ -969,6 +984,7 @@ AC_SUBST(ISC_IPV6_O)
AC_SUBST(ISC_ISCIPV6_O)
AC_SUBST(ISC_IPV6_C)
AC_SUBST(HAVE_SIN6_SCOPE_ID)
AC_SUBST(HAVE_SOCKADDR_STORAGE)
#
# Check for network functions that are often missing. We do this

View File

@@ -875,7 +875,9 @@ explore_numeric_scope(pai, hostname, servname, res)
free(hostname2);
return(EAI_NONAME); /* XXX: is return OK? */
}
#ifdef HAVE_SIN6_SCOPE_ID
sin6->sin6_scope_id = scopeid;
#endif
}
}

View File

@@ -227,6 +227,7 @@ ip6_parsenumeric(sa, addr, host, hostlen, flags)
return EAI_MEMORY;
strcpy(host, numaddr);
#ifdef HAVE_SIN6_SCOPE_ID
if (((const struct sockaddr_in6 *)sa)->sin6_scope_id) {
char scopebuf[MAXHOSTNAMELEN]; /* XXX */
int scopelen;
@@ -244,6 +245,7 @@ ip6_parsenumeric(sa, addr, host, hostlen, flags)
host[numaddrlen] = SCOPE_DELIMITER;
host[numaddrlen + 1 + scopelen] = '\0';
}
#endif
return 0;
}
@@ -261,11 +263,13 @@ ip6_sa2str(sa6, buf, bufsiz, flags)
const struct in6_addr *a6 = &sa6->sin6_addr;
#endif
#ifdef HAVE_SIN6_SCOPE_ID
#ifdef NI_NUMERICSCOPE
if (flags & NI_NUMERICSCOPE) {
return(snprintf(buf, bufsiz, "%d", sa6->sin6_scope_id));
}
#endif
#endif
#ifdef USE_IFNAMELINKID
/*
@@ -288,5 +292,9 @@ ip6_sa2str(sa6, buf, bufsiz, flags)
#endif
/* last resort */
#ifdef HAVE_SIN6_SCOPE_ID
return(snprintf(buf, bufsiz, "%u", sa6->sin6_scope_id));
#else
return(snprintf(buf, bufsiz, "0")); /* no scope */
#endif
}

View File

@@ -19,6 +19,7 @@
@HAVE_SIN6_SCOPE_ID@
@NEED_IN6ADDR_ANY@
@HAS_IN_ADDR6@
@HAVE_SOCKADDR_STORAGE@
/* XXX sunos and cygwin needs O_NDELAY */
#define PORT_NONBLOCK O_NONBLOCK
@@ -71,6 +72,27 @@ struct sockaddr_in6 {
#define INET6 1
#endif /* HAS_INET6_STRUCTS */
#ifndef HAVE_SOCKADDR_STORAGE
#define __SS_MAXSIZE 128
#define __SS_ALLIGSIZE (sizeof (long))
struct sockaddr_storage {
#ifdef HAVE_SA_LEN
u_int8_t ss_len; /* address length */
u_int8_t ss_family; /* address family */
char __ss_pad1[__SS_ALLIGSIZE - 2 * sizeof(u_int8_t)];
long __ss_align;
char __ss_pad2[__SS_MAXSIZE - 2 * __SS_ALLIGSIZE];
#else
u_int16_t ss_family; /* address family */
char __ss_pad1[__SS_ALLIGSIZE - sizeof(u_int16_t)];
long __ss_align;
char __ss_pad2[__SS_MAXSIZE - 2 * __SS_ALLIGSIZE];
#endif
};
#endif
#if !defined(HAS_INET6_STRUCTS) || defined(NEED_IN6ADDR_ANY)
#define in6addr_any isc_in6addr_any
extern const struct in6_addr in6addr_any;

View File

@@ -1,6 +1,10 @@
#ifndef port_before_h
#define port_before_h
#include <config.h>
#ifdef HAVE_SYS_TIMERS_H
#include <sys/timers.h>
#endif
@WANT_IRS_GR@
@WANT_IRS_NIS@

View File

@@ -70,7 +70,7 @@
#if defined(LIBC_SCCS) && !defined(lint)
static const char sccsid[] = "@(#)res_send.c 8.1 (Berkeley) 6/4/93";
static const char rcsid[] = "$Id: res_send.c,v 1.2 2001/04/23 02:59:17 marka Exp $";
static const char rcsid[] = "$Id: res_send.c,v 1.3 2001/05/14 07:59:46 marka Exp $";
#endif /* LIBC_SCCS and not lint */
/*
@@ -1042,7 +1042,9 @@ sock_eq(struct sockaddr *a, struct sockaddr *b) {
a6 = (struct sockaddr_in6 *)a;
b6 = (struct sockaddr_in6 *)b;
return a6->sin6_port == b6->sin6_port &&
#ifdef HAVE_SIN6_SCOPE_ID
a6->sin6_scope_id == b6->sin6_scope_id &&
#endif
IN6_ARE_ADDR_EQUAL(&a6->sin6_addr, &b6->sin6_addr);
#endif
default: