summaryrefslogtreecommitdiffstats
path: root/contrib/bind9/lib/isc/netscope.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/bind9/lib/isc/netscope.c')
-rw-r--r--contrib/bind9/lib/isc/netscope.c76
1 files changed, 0 insertions, 76 deletions
diff --git a/contrib/bind9/lib/isc/netscope.c b/contrib/bind9/lib/isc/netscope.c
deleted file mode 100644
index 75827d2..0000000
--- a/contrib/bind9/lib/isc/netscope.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (C) 2004-2006 Internet Systems Consortium, Inc. ("ISC")
- * Copyright (C) 2002 Internet Software Consortium.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
- * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
- * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
- * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
- * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-/*! \file */
-
-#if defined(LIBC_SCCS) && !defined(lint)
-static char rcsid[] =
- "$Id: netscope.c,v 1.7.18.4 2006/08/25 05:25:51 marka Exp $";
-#endif /* LIBC_SCCS and not lint */
-
-#include <config.h>
-
-#include <isc/string.h>
-#include <isc/net.h>
-#include <isc/netscope.h>
-#include <isc/result.h>
-
-isc_result_t
-isc_netscope_pton(int af, char *scopename, void *addr, isc_uint32_t *zoneid) {
- char *ep;
-#ifdef ISC_PLATFORM_HAVEIFNAMETOINDEX
- unsigned int ifid;
-#endif
- struct in6_addr *in6;
- isc_uint32_t zone;
- isc_uint64_t llz;
-
- /* at this moment, we only support AF_INET6 */
- if (af != AF_INET6)
- return (ISC_R_FAILURE);
-
- in6 = (struct in6_addr *)addr;
-
- /*
- * Basically, "names" are more stable than numeric IDs in terms of
- * renumbering, and are more preferred. However, since there is no
- * standard naming convention and APIs to deal with the names. Thus,
- * we only handle the case of link-local addresses, for which we use
- * interface names as link names, assuming one to one mapping between
- * interfaces and links.
- */
-#ifdef ISC_PLATFORM_HAVEIFNAMETOINDEX
- if (IN6_IS_ADDR_LINKLOCAL(in6) &&
- (ifid = if_nametoindex((const char *)scopename)) != 0)
- zone = (isc_uint32_t)ifid;
- else {
-#endif
- llz = isc_string_touint64(scopename, &ep, 10);
- if (ep == scopename)
- return (ISC_R_FAILURE);
-
- /* check overflow */
- zone = (isc_uint32_t)(llz & 0xffffffffUL);
- if (zone != llz)
- return (ISC_R_FAILURE);
-#ifdef ISC_PLATFORM_HAVEIFNAMETOINDEX
- }
-#endif
-
- *zoneid = zone;
- return (ISC_R_SUCCESS);
-}
OpenPOWER on IntegriCloud