1*8d67ca89SAndroid Build Coastguard Worker /*- 2*8d67ca89SAndroid Build Coastguard Worker * Copyright (c) 1980, 1983, 1988, 1993 3*8d67ca89SAndroid Build Coastguard Worker * The Regents of the University of California. All rights reserved. 4*8d67ca89SAndroid Build Coastguard Worker * 5*8d67ca89SAndroid Build Coastguard Worker * Redistribution and use in source and binary forms, with or without 6*8d67ca89SAndroid Build Coastguard Worker * modification, are permitted provided that the following conditions 7*8d67ca89SAndroid Build Coastguard Worker * are met: 8*8d67ca89SAndroid Build Coastguard Worker * 1. Redistributions of source code must retain the above copyright 9*8d67ca89SAndroid Build Coastguard Worker * notice, this list of conditions and the following disclaimer. 10*8d67ca89SAndroid Build Coastguard Worker * 2. Redistributions in binary form must reproduce the above copyright 11*8d67ca89SAndroid Build Coastguard Worker * notice, this list of conditions and the following disclaimer in the 12*8d67ca89SAndroid Build Coastguard Worker * documentation and/or other materials provided with the distribution. 13*8d67ca89SAndroid Build Coastguard Worker * 3. All advertising materials mentioning features or use of this software 14*8d67ca89SAndroid Build Coastguard Worker * must display the following acknowledgement: 15*8d67ca89SAndroid Build Coastguard Worker * This product includes software developed by the University of 16*8d67ca89SAndroid Build Coastguard Worker * California, Berkeley and its contributors. 17*8d67ca89SAndroid Build Coastguard Worker * 4. Neither the name of the University nor the names of its contributors 18*8d67ca89SAndroid Build Coastguard Worker * may be used to endorse or promote products derived from this software 19*8d67ca89SAndroid Build Coastguard Worker * without specific prior written permission. 20*8d67ca89SAndroid Build Coastguard Worker * 21*8d67ca89SAndroid Build Coastguard Worker * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 22*8d67ca89SAndroid Build Coastguard Worker * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23*8d67ca89SAndroid Build Coastguard Worker * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24*8d67ca89SAndroid Build Coastguard Worker * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 25*8d67ca89SAndroid Build Coastguard Worker * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26*8d67ca89SAndroid Build Coastguard Worker * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27*8d67ca89SAndroid Build Coastguard Worker * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28*8d67ca89SAndroid Build Coastguard Worker * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29*8d67ca89SAndroid Build Coastguard Worker * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30*8d67ca89SAndroid Build Coastguard Worker * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31*8d67ca89SAndroid Build Coastguard Worker * SUCH DAMAGE. 32*8d67ca89SAndroid Build Coastguard Worker * 33*8d67ca89SAndroid Build Coastguard Worker * - 34*8d67ca89SAndroid Build Coastguard Worker * Portions Copyright (c) 1993 by Digital Equipment Corporation. 35*8d67ca89SAndroid Build Coastguard Worker * 36*8d67ca89SAndroid Build Coastguard Worker * Permission to use, copy, modify, and distribute this software for any 37*8d67ca89SAndroid Build Coastguard Worker * purpose with or without fee is hereby granted, provided that the above 38*8d67ca89SAndroid Build Coastguard Worker * copyright notice and this permission notice appear in all copies, and that 39*8d67ca89SAndroid Build Coastguard Worker * the name of Digital Equipment Corporation not be used in advertising or 40*8d67ca89SAndroid Build Coastguard Worker * publicity pertaining to distribution of the document or software without 41*8d67ca89SAndroid Build Coastguard Worker * specific, written prior permission. 42*8d67ca89SAndroid Build Coastguard Worker * 43*8d67ca89SAndroid Build Coastguard Worker * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL 44*8d67ca89SAndroid Build Coastguard Worker * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES 45*8d67ca89SAndroid Build Coastguard Worker * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT 46*8d67ca89SAndroid Build Coastguard Worker * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 47*8d67ca89SAndroid Build Coastguard Worker * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 48*8d67ca89SAndroid Build Coastguard Worker * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS 49*8d67ca89SAndroid Build Coastguard Worker * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 50*8d67ca89SAndroid Build Coastguard Worker * SOFTWARE. 51*8d67ca89SAndroid Build Coastguard Worker * - 52*8d67ca89SAndroid Build Coastguard Worker * --Copyright-- 53*8d67ca89SAndroid Build Coastguard Worker */ 54*8d67ca89SAndroid Build Coastguard Worker 55*8d67ca89SAndroid Build Coastguard Worker /* 56*8d67ca89SAndroid Build Coastguard Worker * @(#)netdb.h 8.1 (Berkeley) 6/2/93 57*8d67ca89SAndroid Build Coastguard Worker * From: Id: netdb.h,v 8.9 1996/11/19 08:39:29 vixie Exp $ 58*8d67ca89SAndroid Build Coastguard Worker * $FreeBSD: /repoman/r/ncvs/src/include/netdb.h,v 1.41 2006/04/15 16:20:26 ume Exp $ 59*8d67ca89SAndroid Build Coastguard Worker */ 60*8d67ca89SAndroid Build Coastguard Worker 61*8d67ca89SAndroid Build Coastguard Worker #ifndef _NETDB_H_ 62*8d67ca89SAndroid Build Coastguard Worker #define _NETDB_H_ 63*8d67ca89SAndroid Build Coastguard Worker 64*8d67ca89SAndroid Build Coastguard Worker #include <sys/cdefs.h> 65*8d67ca89SAndroid Build Coastguard Worker #include <sys/types.h> 66*8d67ca89SAndroid Build Coastguard Worker #include <sys/socket.h> 67*8d67ca89SAndroid Build Coastguard Worker 68*8d67ca89SAndroid Build Coastguard Worker #ifndef _PATH_HEQUIV 69*8d67ca89SAndroid Build Coastguard Worker # define _PATH_HEQUIV "/system/etc/hosts.equiv" 70*8d67ca89SAndroid Build Coastguard Worker #endif 71*8d67ca89SAndroid Build Coastguard Worker #define _PATH_HOSTS "/system/etc/hosts" 72*8d67ca89SAndroid Build Coastguard Worker #define _PATH_NETWORKS "/system/etc/networks" 73*8d67ca89SAndroid Build Coastguard Worker #define _PATH_PROTOCOLS "/system/etc/protocols" 74*8d67ca89SAndroid Build Coastguard Worker #define _PATH_SERVICES "/system/etc/services" 75*8d67ca89SAndroid Build Coastguard Worker 76*8d67ca89SAndroid Build Coastguard Worker /* 77*8d67ca89SAndroid Build Coastguard Worker * Structures returned by network data base library. All addresses are 78*8d67ca89SAndroid Build Coastguard Worker * supplied in host order, and returned in network order (suitable for 79*8d67ca89SAndroid Build Coastguard Worker * use in system calls). 80*8d67ca89SAndroid Build Coastguard Worker */ 81*8d67ca89SAndroid Build Coastguard Worker #pragma clang diagnostic push 82*8d67ca89SAndroid Build Coastguard Worker #pragma clang diagnostic ignored "-Wnullability-completeness" 83*8d67ca89SAndroid Build Coastguard Worker struct hostent { 84*8d67ca89SAndroid Build Coastguard Worker char *h_name; /* official name of host */ 85*8d67ca89SAndroid Build Coastguard Worker char **h_aliases; /* alias list */ 86*8d67ca89SAndroid Build Coastguard Worker int h_addrtype; /* host address type */ 87*8d67ca89SAndroid Build Coastguard Worker int h_length; /* length of address */ 88*8d67ca89SAndroid Build Coastguard Worker char **h_addr_list; /* list of addresses from name server */ 89*8d67ca89SAndroid Build Coastguard Worker #define h_addr h_addr_list[0] /* address, for backward compatibility */ 90*8d67ca89SAndroid Build Coastguard Worker }; 91*8d67ca89SAndroid Build Coastguard Worker 92*8d67ca89SAndroid Build Coastguard Worker struct netent { 93*8d67ca89SAndroid Build Coastguard Worker char *n_name; /* official name of net */ 94*8d67ca89SAndroid Build Coastguard Worker char **n_aliases; /* alias list */ 95*8d67ca89SAndroid Build Coastguard Worker int n_addrtype; /* net address type */ 96*8d67ca89SAndroid Build Coastguard Worker uint32_t n_net; /* network # */ 97*8d67ca89SAndroid Build Coastguard Worker }; 98*8d67ca89SAndroid Build Coastguard Worker 99*8d67ca89SAndroid Build Coastguard Worker struct servent { 100*8d67ca89SAndroid Build Coastguard Worker char *s_name; /* official service name */ 101*8d67ca89SAndroid Build Coastguard Worker char **s_aliases; /* alias list */ 102*8d67ca89SAndroid Build Coastguard Worker int s_port; /* port # */ 103*8d67ca89SAndroid Build Coastguard Worker char * _Nullable s_proto; /* protocol to use */ 104*8d67ca89SAndroid Build Coastguard Worker }; 105*8d67ca89SAndroid Build Coastguard Worker 106*8d67ca89SAndroid Build Coastguard Worker struct protoent { 107*8d67ca89SAndroid Build Coastguard Worker char *p_name; /* official protocol name */ 108*8d67ca89SAndroid Build Coastguard Worker char **p_aliases; /* alias list */ 109*8d67ca89SAndroid Build Coastguard Worker int p_proto; /* protocol # */ 110*8d67ca89SAndroid Build Coastguard Worker }; 111*8d67ca89SAndroid Build Coastguard Worker 112*8d67ca89SAndroid Build Coastguard Worker struct addrinfo { 113*8d67ca89SAndroid Build Coastguard Worker int ai_flags; /* AI_PASSIVE, AI_CANONNAME, AI_NUMERICHOST */ 114*8d67ca89SAndroid Build Coastguard Worker int ai_family; /* PF_xxx */ 115*8d67ca89SAndroid Build Coastguard Worker int ai_socktype; /* SOCK_xxx */ 116*8d67ca89SAndroid Build Coastguard Worker int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */ 117*8d67ca89SAndroid Build Coastguard Worker socklen_t ai_addrlen; /* length of ai_addr */ 118*8d67ca89SAndroid Build Coastguard Worker char *ai_canonname; /* canonical name for hostname */ 119*8d67ca89SAndroid Build Coastguard Worker struct sockaddr *ai_addr; /* binary address */ 120*8d67ca89SAndroid Build Coastguard Worker struct addrinfo *ai_next; /* next structure in linked list */ 121*8d67ca89SAndroid Build Coastguard Worker }; 122*8d67ca89SAndroid Build Coastguard Worker #pragma clang diagnostic pop 123*8d67ca89SAndroid Build Coastguard Worker 124*8d67ca89SAndroid Build Coastguard Worker /* 125*8d67ca89SAndroid Build Coastguard Worker * Error return codes from gethostbyname() and gethostbyaddr() 126*8d67ca89SAndroid Build Coastguard Worker * (left in h_errno). 127*8d67ca89SAndroid Build Coastguard Worker */ 128*8d67ca89SAndroid Build Coastguard Worker 129*8d67ca89SAndroid Build Coastguard Worker #define NETDB_INTERNAL -1 /* see errno */ 130*8d67ca89SAndroid Build Coastguard Worker #define NETDB_SUCCESS 0 /* no problem */ 131*8d67ca89SAndroid Build Coastguard Worker #define HOST_NOT_FOUND 1 /* Authoritative Answer Host not found */ 132*8d67ca89SAndroid Build Coastguard Worker #define TRY_AGAIN 2 /* Non-Authoritative Host not found, or SERVERFAIL */ 133*8d67ca89SAndroid Build Coastguard Worker #define NO_RECOVERY 3 /* Non recoverable errors, FORMERR, REFUSED, NOTIMP */ 134*8d67ca89SAndroid Build Coastguard Worker #define NO_DATA 4 /* Valid name, no data record of requested type */ 135*8d67ca89SAndroid Build Coastguard Worker #define NO_ADDRESS NO_DATA /* no address, look for MX record */ 136*8d67ca89SAndroid Build Coastguard Worker 137*8d67ca89SAndroid Build Coastguard Worker /* 138*8d67ca89SAndroid Build Coastguard Worker * Error return codes from getaddrinfo() 139*8d67ca89SAndroid Build Coastguard Worker */ 140*8d67ca89SAndroid Build Coastguard Worker #define EAI_ADDRFAMILY 1 /* address family for hostname not supported */ 141*8d67ca89SAndroid Build Coastguard Worker #define EAI_AGAIN 2 /* temporary failure in name resolution */ 142*8d67ca89SAndroid Build Coastguard Worker #define EAI_BADFLAGS 3 /* invalid value for ai_flags */ 143*8d67ca89SAndroid Build Coastguard Worker #define EAI_FAIL 4 /* non-recoverable failure in name resolution */ 144*8d67ca89SAndroid Build Coastguard Worker #define EAI_FAMILY 5 /* ai_family not supported */ 145*8d67ca89SAndroid Build Coastguard Worker #define EAI_MEMORY 6 /* memory allocation failure */ 146*8d67ca89SAndroid Build Coastguard Worker #define EAI_NODATA 7 /* no address associated with hostname */ 147*8d67ca89SAndroid Build Coastguard Worker #define EAI_NONAME 8 /* hostname nor servname provided, or not known */ 148*8d67ca89SAndroid Build Coastguard Worker #define EAI_SERVICE 9 /* servname not supported for ai_socktype */ 149*8d67ca89SAndroid Build Coastguard Worker #define EAI_SOCKTYPE 10 /* ai_socktype not supported */ 150*8d67ca89SAndroid Build Coastguard Worker #define EAI_SYSTEM 11 /* system error returned in errno */ 151*8d67ca89SAndroid Build Coastguard Worker #define EAI_BADHINTS 12 /* invalid value for hints */ 152*8d67ca89SAndroid Build Coastguard Worker #define EAI_PROTOCOL 13 /* resolved protocol is unknown */ 153*8d67ca89SAndroid Build Coastguard Worker #define EAI_OVERFLOW 14 /* argument buffer overflow */ 154*8d67ca89SAndroid Build Coastguard Worker #define EAI_MAX 15 155*8d67ca89SAndroid Build Coastguard Worker 156*8d67ca89SAndroid Build Coastguard Worker /* 157*8d67ca89SAndroid Build Coastguard Worker * Flag values for getaddrinfo() 158*8d67ca89SAndroid Build Coastguard Worker */ 159*8d67ca89SAndroid Build Coastguard Worker #define AI_PASSIVE 0x00000001 /* get address to use bind() */ 160*8d67ca89SAndroid Build Coastguard Worker #define AI_CANONNAME 0x00000002 /* fill ai_canonname */ 161*8d67ca89SAndroid Build Coastguard Worker #define AI_NUMERICHOST 0x00000004 /* prevent host name resolution */ 162*8d67ca89SAndroid Build Coastguard Worker #define AI_NUMERICSERV 0x00000008 /* prevent service name resolution */ 163*8d67ca89SAndroid Build Coastguard Worker /* valid flags for addrinfo (not a standard def, apps should not use it) */ 164*8d67ca89SAndroid Build Coastguard Worker #define AI_MASK \ 165*8d67ca89SAndroid Build Coastguard Worker (AI_PASSIVE | AI_CANONNAME | AI_NUMERICHOST | AI_NUMERICSERV | \ 166*8d67ca89SAndroid Build Coastguard Worker AI_ADDRCONFIG) 167*8d67ca89SAndroid Build Coastguard Worker 168*8d67ca89SAndroid Build Coastguard Worker #define AI_ALL 0x00000100 /* IPv6 and IPv4-mapped (with AI_V4MAPPED) */ 169*8d67ca89SAndroid Build Coastguard Worker #define AI_V4MAPPED_CFG 0x00000200 /* accept IPv4-mapped if kernel supports */ 170*8d67ca89SAndroid Build Coastguard Worker #define AI_ADDRCONFIG 0x00000400 /* only if any address is assigned */ 171*8d67ca89SAndroid Build Coastguard Worker #define AI_V4MAPPED 0x00000800 /* accept IPv4-mapped IPv6 address */ 172*8d67ca89SAndroid Build Coastguard Worker /* special recommended flags for getipnodebyname */ 173*8d67ca89SAndroid Build Coastguard Worker #define AI_DEFAULT (AI_V4MAPPED_CFG | AI_ADDRCONFIG) 174*8d67ca89SAndroid Build Coastguard Worker 175*8d67ca89SAndroid Build Coastguard Worker /* 176*8d67ca89SAndroid Build Coastguard Worker * Constants for getnameinfo() 177*8d67ca89SAndroid Build Coastguard Worker */ 178*8d67ca89SAndroid Build Coastguard Worker #define NI_MAXHOST 1025 179*8d67ca89SAndroid Build Coastguard Worker #define NI_MAXSERV 32 180*8d67ca89SAndroid Build Coastguard Worker 181*8d67ca89SAndroid Build Coastguard Worker /* 182*8d67ca89SAndroid Build Coastguard Worker * Flag values for getnameinfo() 183*8d67ca89SAndroid Build Coastguard Worker */ 184*8d67ca89SAndroid Build Coastguard Worker #define NI_NOFQDN 0x00000001 185*8d67ca89SAndroid Build Coastguard Worker #define NI_NUMERICHOST 0x00000002 186*8d67ca89SAndroid Build Coastguard Worker #define NI_NAMEREQD 0x00000004 187*8d67ca89SAndroid Build Coastguard Worker #define NI_NUMERICSERV 0x00000008 188*8d67ca89SAndroid Build Coastguard Worker #define NI_DGRAM 0x00000010 189*8d67ca89SAndroid Build Coastguard Worker #if 0 /* obsolete */ 190*8d67ca89SAndroid Build Coastguard Worker #define NI_WITHSCOPEID 0x00000020 191*8d67ca89SAndroid Build Coastguard Worker #endif 192*8d67ca89SAndroid Build Coastguard Worker 193*8d67ca89SAndroid Build Coastguard Worker /* 194*8d67ca89SAndroid Build Coastguard Worker * Scope delimit character 195*8d67ca89SAndroid Build Coastguard Worker */ 196*8d67ca89SAndroid Build Coastguard Worker #define SCOPE_DELIMITER '%' 197*8d67ca89SAndroid Build Coastguard Worker 198*8d67ca89SAndroid Build Coastguard Worker #define IPPORT_RESERVED 1024 199*8d67ca89SAndroid Build Coastguard Worker 200*8d67ca89SAndroid Build Coastguard Worker __BEGIN_DECLS 201*8d67ca89SAndroid Build Coastguard Worker 202*8d67ca89SAndroid Build Coastguard Worker int getaddrinfo(const char* _Nullable __node, const char* _Nullable __service, const struct addrinfo* _Nullable __hints, struct addrinfo* _Nullable * _Nonnull __result); 203*8d67ca89SAndroid Build Coastguard Worker void freeaddrinfo(struct addrinfo* _Nullable __ptr); 204*8d67ca89SAndroid Build Coastguard Worker 205*8d67ca89SAndroid Build Coastguard Worker /* Android ABI error: POSIX getnameinfo(3) uses socklen_t rather than size_t. */ 206*8d67ca89SAndroid Build Coastguard Worker int getnameinfo(const struct sockaddr* _Nonnull __sa, socklen_t __sa_length, char* _Nullable __host, size_t __host_length, char* _Nullable __service, size_t __service_length, int __flags); 207*8d67ca89SAndroid Build Coastguard Worker const char* _Nonnull gai_strerror(int __error); 208*8d67ca89SAndroid Build Coastguard Worker 209*8d67ca89SAndroid Build Coastguard Worker /* These functions are obsolete. Use getaddrinfo/getnameinfo instead. */ 210*8d67ca89SAndroid Build Coastguard Worker #define h_errno (*__get_h_errno()) 211*8d67ca89SAndroid Build Coastguard Worker int* _Nonnull __get_h_errno(void); 212*8d67ca89SAndroid Build Coastguard Worker void herror(const char* _Nonnull __s); 213*8d67ca89SAndroid Build Coastguard Worker const char* _Nonnull hstrerror(int __error); 214*8d67ca89SAndroid Build Coastguard Worker struct hostent* _Nullable gethostbyaddr(const void* _Nonnull __addr, socklen_t __length, int __type); 215*8d67ca89SAndroid Build Coastguard Worker 216*8d67ca89SAndroid Build Coastguard Worker #if __BIONIC_AVAILABILITY_GUARD(23) 217*8d67ca89SAndroid Build Coastguard Worker int gethostbyaddr_r(const void* _Nonnull __addr, socklen_t __length, int __type, struct hostent* _Nonnull __ret, char* _Nonnull __buf, size_t __buf_size, struct hostent* _Nullable * _Nonnull __result, int* _Nonnull __h_errno_ptr) __INTRODUCED_IN(23); 218*8d67ca89SAndroid Build Coastguard Worker #endif /* __BIONIC_AVAILABILITY_GUARD(23) */ 219*8d67ca89SAndroid Build Coastguard Worker 220*8d67ca89SAndroid Build Coastguard Worker struct hostent* _Nullable gethostbyname(const char* _Nonnull __name); 221*8d67ca89SAndroid Build Coastguard Worker int gethostbyname_r(const char* _Nonnull __name, struct hostent* _Nonnull __ret, char* _Nonnull __buf, size_t __buf_size, struct hostent* _Nullable * _Nonnull __result, int* _Nonnull __h_errno_ptr); 222*8d67ca89SAndroid Build Coastguard Worker struct hostent* _Nullable gethostbyname2(const char* _Nonnull __name, int __af); 223*8d67ca89SAndroid Build Coastguard Worker 224*8d67ca89SAndroid Build Coastguard Worker #if __BIONIC_AVAILABILITY_GUARD(23) 225*8d67ca89SAndroid Build Coastguard Worker int gethostbyname2_r(const char* _Nonnull __name, int __af, struct hostent* _Nonnull __ret, char* _Nonnull __buf, size_t __buf_size, struct hostent* _Nullable * _Nonnull __result, int* _Nonnull __h_errno_ptr) __INTRODUCED_IN(23); 226*8d67ca89SAndroid Build Coastguard Worker #endif /* __BIONIC_AVAILABILITY_GUARD(23) */ 227*8d67ca89SAndroid Build Coastguard Worker 228*8d67ca89SAndroid Build Coastguard Worker 229*8d67ca89SAndroid Build Coastguard Worker #if __BIONIC_AVAILABILITY_GUARD(28) 230*8d67ca89SAndroid Build Coastguard Worker void endhostent(void) __INTRODUCED_IN(28); 231*8d67ca89SAndroid Build Coastguard Worker #endif /* __BIONIC_AVAILABILITY_GUARD(28) */ 232*8d67ca89SAndroid Build Coastguard Worker 233*8d67ca89SAndroid Build Coastguard Worker struct hostent* _Nullable gethostent(void); 234*8d67ca89SAndroid Build Coastguard Worker 235*8d67ca89SAndroid Build Coastguard Worker #if __BIONIC_AVAILABILITY_GUARD(28) 236*8d67ca89SAndroid Build Coastguard Worker void sethostent(int __stay_open) __INTRODUCED_IN(28); 237*8d67ca89SAndroid Build Coastguard Worker 238*8d67ca89SAndroid Build Coastguard Worker /* These functions are obsolete. None of these functions return anything but nullptr. */ 239*8d67ca89SAndroid Build Coastguard Worker void endnetent(void) __INTRODUCED_IN(28); 240*8d67ca89SAndroid Build Coastguard Worker #endif /* __BIONIC_AVAILABILITY_GUARD(28) */ 241*8d67ca89SAndroid Build Coastguard Worker 242*8d67ca89SAndroid Build Coastguard Worker struct netent* _Nullable getnetbyaddr(uint32_t __net, int __type); 243*8d67ca89SAndroid Build Coastguard Worker struct netent* _Nullable getnetbyname(const char* _Nonnull __name); 244*8d67ca89SAndroid Build Coastguard Worker 245*8d67ca89SAndroid Build Coastguard Worker #if __BIONIC_AVAILABILITY_GUARD(28) 246*8d67ca89SAndroid Build Coastguard Worker struct netent* _Nullable getnetent(void) __INTRODUCED_IN(28); 247*8d67ca89SAndroid Build Coastguard Worker void setnetent(int __stay_open) __INTRODUCED_IN(28); 248*8d67ca89SAndroid Build Coastguard Worker 249*8d67ca89SAndroid Build Coastguard Worker /* None of these functions return anything but nullptr. */ 250*8d67ca89SAndroid Build Coastguard Worker void endprotoent(void) __INTRODUCED_IN(28); 251*8d67ca89SAndroid Build Coastguard Worker #endif /* __BIONIC_AVAILABILITY_GUARD(28) */ 252*8d67ca89SAndroid Build Coastguard Worker 253*8d67ca89SAndroid Build Coastguard Worker struct protoent* _Nullable getprotobyname(const char* _Nonnull __name); 254*8d67ca89SAndroid Build Coastguard Worker struct protoent* _Nullable getprotobynumber(int __proto); 255*8d67ca89SAndroid Build Coastguard Worker 256*8d67ca89SAndroid Build Coastguard Worker #if __BIONIC_AVAILABILITY_GUARD(28) 257*8d67ca89SAndroid Build Coastguard Worker struct protoent* _Nullable getprotoent(void) __INTRODUCED_IN(28); 258*8d67ca89SAndroid Build Coastguard Worker void setprotoent(int __stay_open) __INTRODUCED_IN(28); 259*8d67ca89SAndroid Build Coastguard Worker #endif /* __BIONIC_AVAILABILITY_GUARD(28) */ 260*8d67ca89SAndroid Build Coastguard Worker 261*8d67ca89SAndroid Build Coastguard Worker 262*8d67ca89SAndroid Build Coastguard Worker /* These functions return entries from a built-in database. */ 263*8d67ca89SAndroid Build Coastguard Worker void endservent(void); 264*8d67ca89SAndroid Build Coastguard Worker struct servent* _Nullable getservbyname(const char* _Nonnull __name, const char* _Nullable __proto); 265*8d67ca89SAndroid Build Coastguard Worker struct servent* _Nullable getservbyport(int __port_in_network_order, const char* _Nullable __proto); 266*8d67ca89SAndroid Build Coastguard Worker struct servent* _Nullable getservent(void); 267*8d67ca89SAndroid Build Coastguard Worker void setservent(int __stay_open); 268*8d67ca89SAndroid Build Coastguard Worker 269*8d67ca89SAndroid Build Coastguard Worker __END_DECLS 270*8d67ca89SAndroid Build Coastguard Worker 271*8d67ca89SAndroid Build Coastguard Worker #endif 272