1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-29 11:41:21 +03:00
* inet/arpa/inet.h (inet_addr): Change return type to in_addr_t.
	(inet_lnaof): Likewise.
	(inet_netof): Likewise.
	(inet_network): Likewise.
	(inet_aton): Likewise.
	(inet_makeaddr): Change parameter types to in_addr_t.
	(inet_neta): Likewise.
	(inet_ntop): Change type of last parameter to socklen_t.
	(inet_aton): Only make available if __USE_MISC.
	(inet_neta): Likewise.
	(inet_net_ntop): Likewise.
	(inet_net_pton): Likewise.
	(inet_nsap_ntoa): Likewise.

	* inet/in.h: Define in_port_t type.
	Define in_addr_t type.
	(struct in_addr): Use in_addr_t in definition.
	(IN_CLASSA): Use cast to in_addr_t.
	(IN_CLASSB): Likewise.
	(IN_CLASSC): Likewise.
	(IN_CLASSD): Likewise.
	(IN_EXPERIMENTAL): Likewise.
	(IN_BADCLASS): Likewise.
	(INADDR_ANY): Likewise.
	(INADDR_BROADCAST): Likewise.
	(INADDR_NONE): Likewise.
	(INADDR_LOOPBACK): Likewise.
	(INADDR_UNSPEC_GROUP): Likewise.
	(INADDR_ALLHOSTS_GROUP): Likewise.
	(INADDR_ALLRTRS_GROUP): Likewise.
	(INADDR_MAX_LOCAL_GROUP): Likewise.
	(struct sockaddr_in): Use in_port_t for sin_port element.
	(struct sockaddr_in6): Use in_port_t for sin6_port element.
	Use uint8_t instead of u_int8_t.

	* resolv/inet_addr.c (inet_addr): Change return type to in_addr_t.
	Call __inet_aton instead of inet_aton.
	(__inet_aton): Renamed from inet_aton.  Add weak alias under old name.

	* resolv/netdb.h (gethostbyname2): Define only is __USE_MISC.
	(innetgr): Likewise.
	(struct addrinfo): Use socklen_t for ai_addrlen element.

	* sysdeps/unix/sysv/linux/bits/in.h (IPV6_MTU_DISCOVER, IPV6_MTU,
	IPV6_RECVERR): New defines.
This commit is contained in:
Ulrich Drepper
2000-04-02 03:09:41 +00:00
parent 9b48fa9b41
commit ad483238a1
6 changed files with 137 additions and 71 deletions

View File

@ -1,5 +1,51 @@
2000-04-01 Ulrich Drepper <drepper@redhat.com> 2000-04-01 Ulrich Drepper <drepper@redhat.com>
* inet/arpa/inet.h (inet_addr): Change return type to in_addr_t.
(inet_lnaof): Likewise.
(inet_netof): Likewise.
(inet_network): Likewise.
(inet_aton): Likewise.
(inet_makeaddr): Change parameter types to in_addr_t.
(inet_neta): Likewise.
(inet_ntop): Change type of last parameter to socklen_t.
(inet_aton): Only make available if __USE_MISC.
(inet_neta): Likewise.
(inet_net_ntop): Likewise.
(inet_net_pton): Likewise.
(inet_nsap_ntoa): Likewise.
* inet/in.h: Define in_port_t type.
Define in_addr_t type.
(struct in_addr): Use in_addr_t in definition.
(IN_CLASSA): Use cast to in_addr_t.
(IN_CLASSB): Likewise.
(IN_CLASSC): Likewise.
(IN_CLASSD): Likewise.
(IN_EXPERIMENTAL): Likewise.
(IN_BADCLASS): Likewise.
(INADDR_ANY): Likewise.
(INADDR_BROADCAST): Likewise.
(INADDR_NONE): Likewise.
(INADDR_LOOPBACK): Likewise.
(INADDR_UNSPEC_GROUP): Likewise.
(INADDR_ALLHOSTS_GROUP): Likewise.
(INADDR_ALLRTRS_GROUP): Likewise.
(INADDR_MAX_LOCAL_GROUP): Likewise.
(struct sockaddr_in): Use in_port_t for sin_port element.
(struct sockaddr_in6): Use in_port_t for sin6_port element.
Use uint8_t instead of u_int8_t.
* resolv/inet_addr.c (inet_addr): Change return type to in_addr_t.
Call __inet_aton instead of inet_aton.
(__inet_aton): Renamed from inet_aton. Add weak alias under old name.
* resolv/netdb.h (gethostbyname2): Define only is __USE_MISC.
(innetgr): Likewise.
(struct addrinfo): Use socklen_t for ai_addrlen element.
* sysdeps/unix/sysv/linux/bits/in.h (IPV6_MTU_DISCOVER, IPV6_MTU,
IPV6_RECVERR): New defines.
* include/netdb.h: Change type of first parameter of __getnetbyaddr_r. * include/netdb.h: Change type of first parameter of __getnetbyaddr_r.
* inet/getnetbyad.c: Likewise. * inet/getnetbyad.c: Likewise.
* inet/getnetbyad_r.c: Likewise. * inet/getnetbyad_r.c: Likewise.

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1997, 1999 Free Software Foundation, Inc. /* Copyright (C) 1997, 1999, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -20,7 +20,6 @@
#define _ARPA_INET_H 1 #define _ARPA_INET_H 1
#include <features.h> #include <features.h>
#include <sys/types.h> #include <sys/types.h>
#include <netinet/in.h> /* To define `struct in_addr'. */ #include <netinet/in.h> /* To define `struct in_addr'. */
@ -28,41 +27,22 @@ __BEGIN_DECLS
/* Convert Internet host address from numbers-and-dots notation in CP /* Convert Internet host address from numbers-and-dots notation in CP
into binary data in network byte order. */ into binary data in network byte order. */
extern u_int32_t inet_addr (__const char *__cp) __THROW; extern in_addr_t inet_addr (__const char *__cp) __THROW;
/* Convert Internet host address from numbers-and-dots notation in CP
into binary data and store the result in the structure INP. */
extern int inet_aton (__const char *__cp, struct in_addr *__inp) __THROW;
/* Return the local host address part of the Internet address in IN. */ /* Return the local host address part of the Internet address in IN. */
extern u_int32_t inet_lnaof (struct in_addr __in) __THROW; extern in_addr_t inet_lnaof (struct in_addr __in) __THROW;
/* Make Internet host address in network byte order by combining the /* Make Internet host address in network byte order by combining the
network number NET with the local address HOST. */ network number NET with the local address HOST. */
extern struct in_addr inet_makeaddr (u_int32_t __net, u_int32_t __host) __THROW; extern struct in_addr inet_makeaddr (in_addr_t __net, in_addr_t __host)
__THROW;
/* Format a network number NET into presentation format and place result
in buffer starting at BUF with length of LEN bytes. */
extern char *inet_neta (u_int32_t __net, char *__buf, size_t __len) __THROW;
/* Return network number part of the Internet address IN. */ /* Return network number part of the Internet address IN. */
extern u_int32_t inet_netof (struct in_addr __in) __THROW; extern in_addr_t inet_netof (struct in_addr __in) __THROW;
/* Extract the network number in network byte order from the address /* Extract the network number in network byte order from the address
in numbers-and-dots natation starting at CP. */ in numbers-and-dots natation starting at CP. */
extern u_int32_t inet_network (__const char *__cp) __THROW; extern in_addr_t inet_network (__const char *__cp) __THROW;
/* Convert network number for interface type AF in buffer starting at
CP to presentation format. The result will specifiy BITS bits of
the number. */
extern char *inet_net_ntop (int __af, __const void *__cp, int __bits,
char *__buf, size_t __len) __THROW;
/* Convert network number for interface type AF from presentation in
buffer starting at CP to network format and store result int
buffer starting at BUF of size LEN. */
extern int inet_net_pton (int __af, __const char *__cp,
void *__buf, size_t __len) __THROW;
/* Convert Internet number in IN to ASCII representation. The return value /* Convert Internet number in IN to ASCII representation. The return value
is a pointer to an internal array containing the string. */ is a pointer to an internal array containing the string. */
@ -77,7 +57,30 @@ extern int inet_pton (int __af, __const char *__cp, void *__buf) __THROW;
type AF in buffer starting at CP to presentation form and place type AF in buffer starting at CP to presentation form and place
result in buffer of length LEN astarting at BUF. */ result in buffer of length LEN astarting at BUF. */
extern __const char *inet_ntop (int __af, __const void *__cp, extern __const char *inet_ntop (int __af, __const void *__cp,
char *__buf, size_t __len) __THROW; char *__buf, socklen_t __len) __THROW;
/* The following functions are not part of XNS 5.2. */
#ifdef __USE_MISC
/* Convert Internet host address from numbers-and-dots notation in CP
into binary data and store the result in the structure INP. */
extern in_addr_t inet_aton (__const char *__cp, struct in_addr *__inp) __THROW;
/* Format a network number NET into presentation format and place result
in buffer starting at BUF with length of LEN bytes. */
extern char *inet_neta (in_addr_t __net, char *__buf, size_t __len) __THROW;
/* Convert network number for interface type AF in buffer starting at
CP to presentation format. The result will specifiy BITS bits of
the number. */
extern char *inet_net_ntop (int __af, __const void *__cp, int __bits,
char *__buf, size_t __len) __THROW;
/* Convert network number for interface type AF from presentation in
buffer starting at CP to network format and store result int
buffer starting at BUF of size LEN. */
extern int inet_net_pton (int __af, __const char *__cp,
void *__buf, size_t __len) __THROW;
/* Convert ASCII representation in hexadecimal form of the Internet /* Convert ASCII representation in hexadecimal form of the Internet
address to binary form and place result in buffer of length LEN address to binary form and place result in buffer of length LEN
@ -89,6 +92,7 @@ extern unsigned int inet_nsap_addr (__const char *__cp,
a presentation form and place result in BUF. */ a presentation form and place result in BUF. */
extern char *inet_nsap_ntoa (int __len, __const unsigned char *__cp, extern char *inet_nsap_ntoa (int __len, __const unsigned char *__cp,
char *__buf) __THROW; char *__buf) __THROW;
#endif
__END_DECLS __END_DECLS

View File

@ -61,6 +61,10 @@ enum
IPPROTO_MAX IPPROTO_MAX
}; };
/* Type to represent a port. */
typedef uint16_t in_port_t;
/* Standard well-known ports. */ /* Standard well-known ports. */
enum enum
{ {
@ -103,9 +107,10 @@ enum
/* Internet address. */ /* Internet address. */
typedef uint32_t in_addr_t;
struct in_addr struct in_addr
{ {
uint32_t s_addr; in_addr_t s_addr;
}; };
@ -114,48 +119,48 @@ struct in_addr
On subnets, host and network parts are found according to On subnets, host and network parts are found according to
the subnet mask, not these masks. */ the subnet mask, not these masks. */
#define IN_CLASSA(a) ((((uint32_t) (a)) & 0x80000000) == 0) #define IN_CLASSA(a) ((((in_addr_t)(a)) & 0x80000000) == 0)
#define IN_CLASSA_NET 0xff000000 #define IN_CLASSA_NET 0xff000000
#define IN_CLASSA_NSHIFT 24 #define IN_CLASSA_NSHIFT 24
#define IN_CLASSA_HOST (0xffffffff & ~IN_CLASSA_NET) #define IN_CLASSA_HOST (0xffffffff & ~IN_CLASSA_NET)
#define IN_CLASSA_MAX 128 #define IN_CLASSA_MAX 128
#define IN_CLASSB(a) ((((uint32_t) (a)) & 0xc0000000) == 0x80000000) #define IN_CLASSB(a) ((((in_addr_t)(a)) & 0xc0000000) == 0x80000000)
#define IN_CLASSB_NET 0xffff0000 #define IN_CLASSB_NET 0xffff0000
#define IN_CLASSB_NSHIFT 16 #define IN_CLASSB_NSHIFT 16
#define IN_CLASSB_HOST (0xffffffff & ~IN_CLASSB_NET) #define IN_CLASSB_HOST (0xffffffff & ~IN_CLASSB_NET)
#define IN_CLASSB_MAX 65536 #define IN_CLASSB_MAX 65536
#define IN_CLASSC(a) ((((uint32_t) (a)) & 0xe0000000) == 0xc0000000) #define IN_CLASSC(a) ((((in_addr_t)(a)) & 0xe0000000) == 0xc0000000)
#define IN_CLASSC_NET 0xffffff00 #define IN_CLASSC_NET 0xffffff00
#define IN_CLASSC_NSHIFT 8 #define IN_CLASSC_NSHIFT 8
#define IN_CLASSC_HOST (0xffffffff & ~IN_CLASSC_NET) #define IN_CLASSC_HOST (0xffffffff & ~IN_CLASSC_NET)
#define IN_CLASSD(a) ((((uint32_t) (a)) & 0xf0000000) == 0xe0000000) #define IN_CLASSD(a) ((((in_addr_t)(a)) & 0xf0000000) == 0xe0000000)
#define IN_MULTICAST(a) IN_CLASSD(a) #define IN_MULTICAST(a) IN_CLASSD(a)
#define IN_EXPERIMENTAL(a) ((((uint32_t) (a)) & 0xe0000000) == 0xe0000000) #define IN_EXPERIMENTAL(a) ((((in_addr_t)(a)) & 0xe0000000) == 0xe0000000)
#define IN_BADCLASS(a) ((((uint32_t) (a)) & 0xf0000000) == 0xf0000000) #define IN_BADCLASS(a) ((((in_addr_t)(a)) & 0xf0000000) == 0xf0000000)
/* Address to accept any incoming messages. */ /* Address to accept any incoming messages. */
#define INADDR_ANY ((uint32_t) 0x00000000) #define INADDR_ANY ((in_addr_t) 0x00000000)
/* Address to send to all hosts. */ /* Address to send to all hosts. */
#define INADDR_BROADCAST ((uint32_t) 0xffffffff) #define INADDR_BROADCAST ((in_addr_t) 0xffffffff)
/* Address indicating an error return. */ /* Address indicating an error return. */
#define INADDR_NONE ((uint32_t) 0xffffffff) #define INADDR_NONE ((in_addr_t) 0xffffffff)
/* Network number for local host loopback. */ /* Network number for local host loopback. */
#define IN_LOOPBACKNET 127 #define IN_LOOPBACKNET 127
/* Address to loopback in software to local host. */ /* Address to loopback in software to local host. */
#ifndef INADDR_LOOPBACK #ifndef INADDR_LOOPBACK
# define INADDR_LOOPBACK ((uint32_t) 0x7f000001) /* Inet 127.0.0.1. */ # define INADDR_LOOPBACK ((in_addr_t) 0x7f000001) /* Inet 127.0.0.1. */
#endif #endif
/* Defines for Multicast INADDR. */ /* Defines for Multicast INADDR. */
#define INADDR_UNSPEC_GROUP ((uint32_t) 0xe0000000) /* 224.0.0.0 */ #define INADDR_UNSPEC_GROUP ((in_addr_t) 0xe0000000) /* 224.0.0.0 */
#define INADDR_ALLHOSTS_GROUP ((uint32_t) 0xe0000001) /* 224.0.0.1 */ #define INADDR_ALLHOSTS_GROUP ((in_addr_t) 0xe0000001) /* 224.0.0.1 */
#define INADDR_ALLRTRS_GROUP ((uint32_t) 0xe0000002) /* 224.0.0.2 */ #define INADDR_ALLRTRS_GROUP ((in_addr_t) 0xe0000002) /* 224.0.0.2 */
#define INADDR_MAX_LOCAL_GROUP ((uint32_t) 0xe00000ff) /* 224.0.0.255 */ #define INADDR_MAX_LOCAL_GROUP ((in_addr_t) 0xe00000ff) /* 224.0.0.255 */
/* IPv6 address */ /* IPv6 address */
@ -163,11 +168,11 @@ struct in6_addr
{ {
union union
{ {
uint8_t u6_addr8[16]; uint8_t u6_addr8[16];
uint16_t u6_addr16[8]; uint16_t u6_addr16[8];
uint32_t u6_addr32[4]; uint32_t u6_addr32[4];
#if ULONG_MAX > 0xffffffff #if ULONG_MAX > 0xffffffff
uint64_t u6_addr64[2]; uint64_t u6_addr64[2];
#endif #endif
} in6_u; } in6_u;
#define s6_addr in6_u.u6_addr8 #define s6_addr in6_u.u6_addr8
@ -192,13 +197,13 @@ extern const struct in6_addr in6addr_loopback; /* ::1 */
struct sockaddr_in struct sockaddr_in
{ {
__SOCKADDR_COMMON (sin_); __SOCKADDR_COMMON (sin_);
uint16_t sin_port; /* Port number. */ in_port_t sin_port; /* Port number. */
struct in_addr sin_addr; /* Internet address. */ struct in_addr sin_addr; /* Internet address. */
/* Pad to size of `struct sockaddr'. */ /* Pad to size of `struct sockaddr'. */
unsigned char sin_zero[sizeof (struct sockaddr) - unsigned char sin_zero[sizeof (struct sockaddr) -
__SOCKADDR_COMMON_SIZE - __SOCKADDR_COMMON_SIZE -
sizeof (uint16_t) - sizeof (in_port_t) -
sizeof (struct in_addr)]; sizeof (struct in_addr)];
}; };
@ -206,7 +211,7 @@ struct sockaddr_in
struct sockaddr_in6 struct sockaddr_in6
{ {
__SOCKADDR_COMMON (sin6_); __SOCKADDR_COMMON (sin6_);
uint16_t sin6_port; /* Transport layer port # */ in_port_t sin6_port; /* Transport layer port # */
uint32_t sin6_flowinfo; /* IPv6 flow information */ uint32_t sin6_flowinfo; /* IPv6 flow information */
struct in6_addr sin6_addr; /* IPv6 address */ struct in6_addr sin6_addr; /* IPv6 address */
uint32_t sin6_scope_id; /* IPv6 scope-id */ uint32_t sin6_scope_id; /* IPv6 scope-id */
@ -245,19 +250,24 @@ extern uint16_t htons (uint16_t __hostshort)
/* Get machine dependent optimized versions of byte swapping functions. */ /* Get machine dependent optimized versions of byte swapping functions. */
#include <bits/byteswap.h> #include <bits/byteswap.h>
#if __BYTE_ORDER == __BIG_ENDIAN && defined __OPTIMIZE__ #ifdef __OPTIMIZE__
/* We can optimize calls to the conversion functions. Either nothing has
to be done or we are using directly the byte-swapping functions which
often can be inlined. */
# if __BYTE_ORDER == __BIG_ENDIAN
/* The host byte order is the same as network byte order, /* The host byte order is the same as network byte order,
so these functions are all just identity. */ so these functions are all just identity. */
# define ntohl(x) (x) # define ntohl(x) (x)
# define ntohs(x) (x) # define ntohs(x) (x)
# define htonl(x) (x) # define htonl(x) (x)
# define htons(x) (x) # define htons(x) (x)
#else # else
# if __BYTE_ORDER == __LITTLE_ENDIAN && defined __OPTIMIZE__ # if __BYTE_ORDER == __LITTLE_ENDIAN
# define ntohl(x) __bswap_32 (x) # define ntohl(x) __bswap_32 (x)
# define ntohs(x) __bswap_16 (x) # define ntohs(x) __bswap_16 (x)
# define htonl(x) __bswap_32 (x) # define htonl(x) __bswap_32 (x)
# define htons(x) __bswap_16 (x) # define htons(x) __bswap_16 (x)
# endif
# endif # endif
#endif #endif
@ -269,7 +279,7 @@ extern uint16_t htons (uint16_t __hostshort)
(((uint32_t *) (a))[0] == 0 && ((uint32_t *) (a))[1] == 0 && \ (((uint32_t *) (a))[0] == 0 && ((uint32_t *) (a))[1] == 0 && \
((uint32_t *) (a))[2] == 0 && ((uint32_t *) (a))[3] == htonl (1)) ((uint32_t *) (a))[2] == 0 && ((uint32_t *) (a))[3] == htonl (1))
#define IN6_IS_ADDR_MULTICAST(a) (((u_int8_t *) (a))[0] == 0xff) #define IN6_IS_ADDR_MULTICAST(a) (((uint8_t *) (a))[0] == 0xff)
#define IN6_IS_ADDR_LINKLOCAL(a) \ #define IN6_IS_ADDR_LINKLOCAL(a) \
((((uint32_t *) (a))[0] & htonl (0xffc00000)) == htonl (0xfe800000)) ((((uint32_t *) (a))[0] & htonl (0xffc00000)) == htonl (0xfe800000))
@ -300,19 +310,19 @@ extern int bindresvport6 (int __sockfd, struct sockaddr_in6 *__sock_in)
#define IN6_IS_ADDR_MC_NODELOCAL(a) \ #define IN6_IS_ADDR_MC_NODELOCAL(a) \
(IN6_IS_ADDR_MULTICAST(a) && ((((u_int8_t *) (a))[1] & 0xf) == 0x1)) (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0x1))
#define IN6_IS_ADDR_MC_LINKLOCAL(a) \ #define IN6_IS_ADDR_MC_LINKLOCAL(a) \
(IN6_IS_ADDR_MULTICAST(a) && ((((u_int8_t *) (a))[1] & 0xf) == 0x2)) (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0x2))
#define IN6_IS_ADDR_MC_SITELOCAL(a) \ #define IN6_IS_ADDR_MC_SITELOCAL(a) \
(IN6_IS_ADDR_MULTICAST(a) && ((((u_int8_t *) (a))[1] & 0xf) == 0x5)) (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0x5))
#define IN6_IS_ADDR_MC_ORGLOCAL(a) \ #define IN6_IS_ADDR_MC_ORGLOCAL(a) \
(IN6_IS_ADDR_MULTICAST(a) && ((((u_int8_t *) (a))[1] & 0xf) == 0x8)) (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0x8))
#define IN6_IS_ADDR_MC_GLOBAL(a) \ #define IN6_IS_ADDR_MC_GLOBAL(a) \
(IN6_IS_ADDR_MULTICAST(a) && ((((u_int8_t *) (a))[1] & 0xf) == 0xe)) (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0xe))
/* IPv6 packet information. */ /* IPv6 packet information. */
struct in6_pktinfo struct in6_pktinfo

View File

@ -74,13 +74,13 @@ static char rcsid[] = "$Id$";
* Ascii internet address interpretation routine. * Ascii internet address interpretation routine.
* The value returned is in network order. * The value returned is in network order.
*/ */
u_int32_t in_addr_t
inet_addr(cp) inet_addr(cp)
register const char *cp; register const char *cp;
{ {
struct in_addr val; struct in_addr val;
if (inet_aton(cp, &val)) if (__inet_aton(cp, &val))
return (val.s_addr); return (val.s_addr);
return (INADDR_NONE); return (INADDR_NONE);
} }
@ -92,13 +92,13 @@ inet_addr(cp)
* This replaces inet_addr, the return value from which * This replaces inet_addr, the return value from which
* cannot distinguish between failure and a local broadcast address. * cannot distinguish between failure and a local broadcast address.
*/ */
int in_addr_t
inet_aton(cp, addr) __inet_aton(cp, addr)
const char *cp; const char *cp;
struct in_addr *addr; struct in_addr *addr;
{ {
static const u_int32_t max[4] = { 0xffffffff, 0xffffff, 0xffff, 0xff }; static const in_addr_t max[4] = { 0xffffffff, 0xffffff, 0xffff, 0xff };
register u_int32_t val; /* changed from u_long --david */ register in_addr_t val;
#ifndef _LIBC #ifndef _LIBC
register int base; register int base;
#endif #endif
@ -207,3 +207,4 @@ ret_0:
#endif #endif
return (0); return (0);
} }
weak_alias (__inet_aton, inet_aton)

View File

@ -131,10 +131,12 @@ extern struct hostent *gethostbyaddr (__const char *__addr, size_t __len,
/* Return entry from host data base for host with NAME. */ /* Return entry from host data base for host with NAME. */
extern struct hostent *gethostbyname (__const char *__name) __THROW; extern struct hostent *gethostbyname (__const char *__name) __THROW;
#ifdef __USE_MISC
/* Return entry from host data base for host with NAME. AF must be /* Return entry from host data base for host with NAME. AF must be
set to the address type which is `AF_INET' for IPv4 or `AF_INET6' set to the address type which is `AF_INET' for IPv4 or `AF_INET6'
for IPv6. */ for IPv6. */
extern struct hostent *gethostbyname2 (__const char *__name, int __af) __THROW; extern struct hostent *gethostbyname2 (__const char *__name, int __af) __THROW;
#endif
#ifdef __USE_UNIX98 #ifdef __USE_UNIX98
/* Return entry from host data base which address match ADDR with /* Return entry from host data base which address match ADDR with
@ -343,11 +345,11 @@ extern int getnetgrent (char **__restrict __hostp,
char **__restrict __userp, char **__restrict __userp,
char **__restrict __domainp) __THROW; char **__restrict __domainp) __THROW;
#ifdef __USE_MISC
/* Test whether NETGROUP contains the triple (HOST,USER,DOMAIN). */ /* Test whether NETGROUP contains the triple (HOST,USER,DOMAIN). */
extern int innetgr (__const char *__netgroup, __const char *__host, extern int innetgr (__const char *__netgroup, __const char *__host,
__const char *__user, __const char *domain) __THROW; __const char *__user, __const char *domain) __THROW;
#ifdef __USE_MISC
/* Reentrant version of `getnetgrent' where result is placed in BUFFER. */ /* Reentrant version of `getnetgrent' where result is placed in BUFFER. */
extern int getnetgrent_r (char **__restrict __hostp, extern int getnetgrent_r (char **__restrict __hostp,
char **__restrict __userp, char **__restrict __userp,
@ -428,7 +430,7 @@ struct addrinfo
int ai_family; /* Protocol family for socket. */ int ai_family; /* Protocol family for socket. */
int ai_socktype; /* Socket type. */ int ai_socktype; /* Socket type. */
int ai_protocol; /* Protocol for socket. */ int ai_protocol; /* Protocol for socket. */
int ai_addrlen; /* Length of socket address. */ socklen_t ai_addrlen; /* Length of socket address. */
struct sockaddr *ai_addr; /* Socket address for socket. */ struct sockaddr *ai_addr; /* Socket address for socket. */
char *ai_canonname; /* Canonical name for service location. */ char *ai_canonname; /* Canonical name for service location. */
struct addrinfo *ai_next; /* Pointer to next in list. */ struct addrinfo *ai_next; /* Pointer to next in list. */

View File

@ -112,6 +112,9 @@ struct in_pktinfo
#define IPV6_ADD_MEMBERSHIP 20 #define IPV6_ADD_MEMBERSHIP 20
#define IPV6_DROP_MEMBERSHIP 21 #define IPV6_DROP_MEMBERSHIP 21
#define IPV6_ROUTER_ALERT 22 #define IPV6_ROUTER_ALERT 22
#define IPV6_MTU_DISCOVER 23
#define IPV6_MTU 24
#define IPV6_RECVERR 25
#define SCM_SRCRT IPV6_RXSRCRT #define SCM_SRCRT IPV6_RXSRCRT