diff options
Diffstat (limited to 'libc/netbsd/resolv/res_compat.c')
-rw-r--r-- | libc/netbsd/resolv/res_compat.c | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/libc/netbsd/resolv/res_compat.c b/libc/netbsd/resolv/res_compat.c new file mode 100644 index 0000000..19a1d5f --- /dev/null +++ b/libc/netbsd/resolv/res_compat.c @@ -0,0 +1,87 @@ +/* $NetBSD: res_compat.c,v 1.1 2004/06/09 18:07:03 christos Exp $ */ + +/*- + * Copyright (c) 2004 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Christos Zoulas. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the NetBSD + * Foundation, Inc. and its contributors. + * 4. Neither the name of The NetBSD Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include <sys/cdefs.h> +#if defined(LIBC_SCCS) && !defined(lint) +__RCSID("$NetBSD: res_compat.c,v 1.1 2004/06/09 18:07:03 christos Exp $"); +#endif + +#include <sys/types.h> +#include <arpa/inet.h> +#include "arpa_nameser.h" +#include <netdb.h> +#include <string.h> +#define __OLD_RES_STATE +#ifdef ANDROID_CHANGES +#include "resolv_private.h" +#else +#include "resolv.h" +#endif + +#undef _res + +/* + * Binary Compatibility; this symbol does not appear in a header file + * Most userland programs use this to set res_options before res_init() + * is called. There are hooks to res_init() to consult the data in this + * structure. The hooks are provided indirectly by the two functions below. + * We depend on the fact the the first 440 [32 bit machines] bytes are + * shared between the two structures. + */ +#ifndef __BIND_NOSTATIC +struct __res_state _res +#if defined(__BIND_RES_TEXT) + = { RES_TIMEOUT, } /* Motorola, et al. */ +# endif +; + +void *__res_get_old_state(void); +void __res_put_old_state(void *); + +void * +__res_get_old_state(void) +{ + return &_res; +} + +void +__res_put_old_state(void *res) +{ + (void)memcpy(&_res, res, sizeof(_res)); +} +#endif |