blob: c49cefc5fa1390ee1cf98ad5b0988df171bc6eda [file] [log] [blame]
The Android Open Source Project1dc9e472009-03-03 19:28:35 -08001/*
2 * Copyright (C) 2008 The Android Open Source Project
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in
12 * the documentation and/or other materials provided with the
13 * distribution.
14 *
15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
16 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
17 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
18 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
19 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
20 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
21 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
22 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
23 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
25 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 * SUCH DAMAGE.
27 */
Elliott Hughesf0210612016-05-16 13:26:25 -070028
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080029#ifndef _RESOLV_H_
30#define _RESOLV_H_
31
Elliott Hughes414dd2d2024-10-16 14:48:30 +000032#include <sys/cdefs.h>
33
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080034#include <sys/param.h>
35#include <sys/types.h>
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080036#include <sys/socket.h>
37#include <stdio.h>
38#include <arpa/nameser.h>
Mattias Falk23d3e6b2011-04-04 16:12:35 +020039#include <netinet/in.h>
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080040
41__BEGIN_DECLS
42
Lorenzo Colittib8e435c2013-07-02 17:44:00 +090043#define b64_ntop __b64_ntop
zijunzhao16c23882023-03-02 23:20:17 +000044int b64_ntop(u_char const* _Nonnull __src, size_t __src_size, char* _Nonnull __dst, size_t __dst_size);
Lorenzo Colittib8e435c2013-07-02 17:44:00 +090045#define b64_pton __b64_pton
zijunzhao16c23882023-03-02 23:20:17 +000046int b64_pton(char const* _Nonnull __src, u_char* _Nonnull __dst, size_t __dst_size);
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080047
Lorenzo Colittib8e435c2013-07-02 17:44:00 +090048#define dn_comp __dn_comp
zijunzhao16c23882023-03-02 23:20:17 +000049int dn_comp(const char* _Nonnull __src, u_char* _Nonnull __dst, int __dst_size, u_char* _Nullable * _Nullable __dn_ptrs , u_char* _Nullable * _Nullable __last_dn_ptr);
Elliott Hughesf0210612016-05-16 13:26:25 -070050
zijunzhao16c23882023-03-02 23:20:17 +000051int dn_expand(const u_char* _Nonnull __msg, const u_char* _Nonnull __eom, const u_char* _Nonnull __src, char* _Nonnull __dst, int __dst_size);
Elliott Hughesf0210612016-05-16 13:26:25 -070052
53#define p_class __p_class
zijunzhao16c23882023-03-02 23:20:17 +000054const char* _Nonnull p_class(int __class);
Elliott Hughesf0210612016-05-16 13:26:25 -070055#define p_type __p_type
zijunzhao16c23882023-03-02 23:20:17 +000056const char* _Nonnull p_type(int __type);
Elliott Hughesf0210612016-05-16 13:26:25 -070057
58int res_init(void);
zijunzhao16c23882023-03-02 23:20:17 +000059int res_mkquery(int __opcode, const char* _Nonnull __domain_name, int __class, int __type, const u_char* _Nullable __data, int __data_size, const u_char* _Nullable __new_rr_in, u_char* _Nonnull __buf, int __buf_size);
60int res_query(const char* _Nonnull __name, int __class, int __type, u_char* _Nonnull __answer, int __answer_size);
61int res_search(const char* _Nonnull __name, int __class, int __type, u_char* _Nonnull __answer, int __answer_size);
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080062
Elliott Hughes3a5fd002018-07-17 13:02:52 -070063#define res_randomid __res_randomid
Dan Albert02ce4012024-10-25 19:13:49 +000064
65#if __BIONIC_AVAILABILITY_GUARD(29)
Elliott Hughes78e9ebc2019-03-14 09:29:52 -070066u_int __res_randomid(void) __INTRODUCED_IN(29);
Dan Albert02ce4012024-10-25 19:13:49 +000067#endif /* __BIONIC_AVAILABILITY_GUARD(29) */
68
Elliott Hughes3a5fd002018-07-17 13:02:52 -070069
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080070__END_DECLS
71
Elliott Hughesffde5332017-08-21 14:51:59 -070072#endif