From 95e16084a9eda619288ddad526268c702d7cece1 Mon Sep 17 00:00:00 2001 From: tim Date: Wed, 19 Nov 2008 05:26:41 +0000 Subject: [PATCH] - (tim) [addrmatch.c configure.ac] Some platforms do not have sin6_scope_id member of sockaddr_in6. Also reported in Bug 1491 by David Leonard. OK and feedback by djm@ --- ChangeLog | 5 +++++ addrmatch.c | 2 ++ configure.ac | 9 +++++++++ 3 files changed, 16 insertions(+) diff --git a/ChangeLog b/ChangeLog index 58d12908..3f6d6324 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +20081118 + - (tim) [addrmatch.c configure.ac] Some platforms do not have sin6_scope_id + member of sockaddr_in6. Also reported in Bug 1491 by David Leonard. OK and + feedback by djm@ + 20081111 - (dtucker) OpenBSD CVS Sync - jmc@cvs.openbsd.org 2008/11/05 11:22:54 diff --git a/addrmatch.c b/addrmatch.c index 2086afe8..f3c861a1 100644 --- a/addrmatch.c +++ b/addrmatch.c @@ -97,7 +97,9 @@ addr_sa_to_xaddr(struct sockaddr *sa, socklen_t slen, struct xaddr *xa) return -1; xa->af = AF_INET6; memcpy(&xa->v6, &in6->sin6_addr, sizeof(xa->v6)); +#ifdef HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID xa->scope_id = in6->sin6_scope_id; +#endif break; default: return -1; diff --git a/configure.ac b/configure.ac index 26820850..4c1dfad6 100644 --- a/configure.ac +++ b/configure.ac @@ -2824,6 +2824,15 @@ AC_CACHE_CHECK([for struct in6_addr], ac_cv_have_struct_in6_addr, [ if test "x$ac_cv_have_struct_in6_addr" = "xyes" ; then AC_DEFINE(HAVE_STRUCT_IN6_ADDR, 1, [define if you have struct in6_addr data type]) + +dnl Now check for sin6_scope_id + AC_CHECK_MEMBERS([struct sockaddr_in6.sin6_scope_id],,, + [ +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#include + ]) fi AC_CACHE_CHECK([for struct addrinfo], ac_cv_have_struct_addrinfo, [ -- 2.45.1