version 1.30, 2012/01/17 02:36:55 |
version 1.31, 2012/09/15 00:47:08 |
|
|
#ifndef _NETDB_H_ |
#ifndef _NETDB_H_ |
#define _NETDB_H_ |
#define _NETDB_H_ |
|
|
#include <sys/param.h> |
|
#include <sys/cdefs.h> |
#include <sys/cdefs.h> |
|
|
|
#if __BSD_VISIBLE |
|
#include <sys/param.h> |
|
#endif |
|
#include <netinet/in.h> |
|
|
|
#ifndef _SOCKLEN_T_DEFINED_ |
|
#define _SOCKLEN_T_DEFINED_ |
|
typedef __socklen_t socklen_t; /* length type for network syscalls */ |
|
#endif |
|
|
#define _PATH_HEQUIV "/etc/hosts.equiv" |
#define _PATH_HEQUIV "/etc/hosts.equiv" |
#define _PATH_HOSTS "/etc/hosts" |
#define _PATH_HOSTS "/etc/hosts" |
#define _PATH_NETWORKS "/etc/networks" |
#define _PATH_NETWORKS "/etc/networks" |
#define _PATH_PROTOCOLS "/etc/protocols" |
#define _PATH_PROTOCOLS "/etc/protocols" |
#define _PATH_SERVICES "/etc/services" |
#define _PATH_SERVICES "/etc/services" |
|
|
extern int h_errno; |
|
|
|
/* |
/* |
* Structures returned by network data base library. All addresses are |
* Structures returned by network data base library. All addresses are |
* supplied in host order, and returned in network order (suitable for |
* supplied in host order, and returned in network order (suitable for |
|
|
int p_proto; /* protocol # */ |
int p_proto; /* protocol # */ |
}; |
}; |
|
|
|
#if __BSD_VISIBLE || __POSIX_VISIBLE < 200809 |
|
extern int h_errno; |
|
|
/* |
/* |
* Error return codes from gethostbyname() and gethostbyaddr() |
* Error return codes from gethostbyname() and gethostbyaddr() |
* (left in extern int h_errno). |
* (left in extern int h_errno). |
|
|
#define NO_RECOVERY 3 /* Non recoverable errors, FORMERR, REFUSED, NOTIMP */ |
#define NO_RECOVERY 3 /* Non recoverable errors, FORMERR, REFUSED, NOTIMP */ |
#define NO_DATA 4 /* Valid name, no data record of requested type */ |
#define NO_DATA 4 /* Valid name, no data record of requested type */ |
#define NO_ADDRESS NO_DATA /* no address */ |
#define NO_ADDRESS NO_DATA /* no address */ |
|
#endif /* __BSD_VISIBLE || __POSIX_VISIBLE < 200809 */ |
|
|
/* Values for getaddrinfo() and getnameinfo() */ |
/* Values for getaddrinfo() and getnameinfo() */ |
#define AI_PASSIVE 1 /* socket address is intended for bind() */ |
#define AI_PASSIVE 1 /* socket address is intended for bind() */ |
|
|
#define NI_NOFQDN 4 /* return a short name if in the local domain */ |
#define NI_NOFQDN 4 /* return a short name if in the local domain */ |
#define NI_NAMEREQD 8 /* fail if either host or service name is unknown */ |
#define NI_NAMEREQD 8 /* fail if either host or service name is unknown */ |
#define NI_DGRAM 16 /* look up datagram service instead of stream */ |
#define NI_DGRAM 16 /* look up datagram service instead of stream */ |
|
/* #define NI_NUMERICSCOPE 32 return the scope number, not the name */ |
|
|
|
#if __BSD_VISIBLE |
#define NI_MAXHOST MAXHOSTNAMELEN /* max host name returned by getnameinfo */ |
#define NI_MAXHOST MAXHOSTNAMELEN /* max host name returned by getnameinfo */ |
#define NI_MAXSERV 32 /* max serv. name length returned by getnameinfo */ |
#define NI_MAXSERV 32 /* max serv. name length returned by getnameinfo */ |
|
|
|
|
* Scope delimit character (KAME hack) |
* Scope delimit character (KAME hack) |
*/ |
*/ |
#define SCOPE_DELIMITER '%' |
#define SCOPE_DELIMITER '%' |
|
#endif |
|
|
#define EAI_BADFLAGS -1 /* invalid value for ai_flags */ |
#define EAI_BADFLAGS -1 /* invalid value for ai_flags */ |
#define EAI_NONAME -2 /* name or service is not known */ |
#define EAI_NONAME -2 /* name or service is not known */ |
|
|
char *ai_canonname; /* canonical name for service location (iff req) */ |
char *ai_canonname; /* canonical name for service location (iff req) */ |
struct addrinfo *ai_next; /* pointer to next in list */ |
struct addrinfo *ai_next; /* pointer to next in list */ |
}; |
}; |
|
|
|
#if __BSD_VISIBLE |
/* |
/* |
* Flags for getrrsetbyname() |
* Flags for getrrsetbyname() |
*/ |
*/ |
|
|
struct rdatainfo *rri_sigs; /* individual signatures */ |
struct rdatainfo *rri_sigs; /* individual signatures */ |
}; |
}; |
|
|
#if __BSD_VISIBLE |
|
struct servent_data { |
struct servent_data { |
void *fp; |
void *fp; |
char **aliases; |
char **aliases; |
|
|
void endhostent(void); |
void endhostent(void); |
void endnetent(void); |
void endnetent(void); |
void endprotoent(void); |
void endprotoent(void); |
#if __BSD_VISIBLE |
|
void endprotoent_r(struct protoent_data *); |
|
#endif |
|
void endservent(void); |
void endservent(void); |
#if __BSD_VISIBLE |
#if __BSD_VISIBLE || __POSIX_VISIBLE < 200809 |
void endservent_r(struct servent_data *); |
|
#endif |
|
struct hostent *gethostbyaddr(const void *, socklen_t, int); |
struct hostent *gethostbyaddr(const void *, socklen_t, int); |
struct hostent *gethostbyname(const char *); |
struct hostent *gethostbyname(const char *); |
|
#endif |
|
#if __BSD_VISIBLE |
struct hostent *gethostbyname2(const char *, int); |
struct hostent *gethostbyname2(const char *, int); |
|
#endif |
struct hostent *gethostent(void); |
struct hostent *gethostent(void); |
struct netent *getnetbyaddr(in_addr_t, int); |
struct netent *getnetbyaddr(in_addr_t, int); |
struct netent *getnetbyname(const char *); |
struct netent *getnetbyname(const char *); |
|
|
struct protoent *getprotobyname(const char *); |
struct protoent *getprotobyname(const char *); |
struct protoent *getprotobynumber(int); |
struct protoent *getprotobynumber(int); |
struct protoent *getprotoent(void); |
struct protoent *getprotoent(void); |
#if __BSD_VISIBLE |
|
int getprotobyname_r(const char *, struct protoent *, |
|
struct protoent_data *); |
|
int getprotobynumber_r(int, struct protoent *, |
|
struct protoent_data *); |
|
int getprotoent_r(struct protoent *, struct protoent_data *); |
|
#endif |
|
struct servent *getservbyname(const char *, const char *); |
struct servent *getservbyname(const char *, const char *); |
struct servent *getservbyport(int, const char *); |
struct servent *getservbyport(int, const char *); |
struct servent *getservent(void); |
struct servent *getservent(void); |
#if __BSD_VISIBLE |
#if __BSD_VISIBLE |
int getservbyname_r(const char *, const char *, struct servent *, |
|
struct servent_data *); |
|
int getservbyport_r(int, const char *, struct servent *, |
|
struct servent_data *); |
|
int getservent_r(struct servent *, struct servent_data *); |
|
#endif |
|
void herror(const char *); |
void herror(const char *); |
const char *hstrerror(int); |
const char *hstrerror(int); |
|
#endif |
void sethostent(int); |
void sethostent(int); |
/* void sethostfile(const char *); */ |
/* void sethostfile(const char *); */ |
void setnetent(int); |
void setnetent(int); |
void setprotoent(int); |
void setprotoent(int); |
#if __BSD_VISIBLE |
|
void setprotoent_r(int, struct protoent_data *); |
|
#endif |
|
void setservent(int); |
void setservent(int); |
|
|
#if __BSD_VISIBLE |
#if __BSD_VISIBLE |
|
void endprotoent_r(struct protoent_data *); |
|
void endservent_r(struct servent_data *); |
|
int getprotobyname_r(const char *, struct protoent *, |
|
struct protoent_data *); |
|
int getprotobynumber_r(int, struct protoent *, |
|
struct protoent_data *); |
|
int getservbyname_r(const char *, const char *, struct servent *, |
|
struct servent_data *); |
|
int getservbyport_r(int, const char *, struct servent *, |
|
struct servent_data *); |
|
int getservent_r(struct servent *, struct servent_data *); |
|
int getprotoent_r(struct protoent *, struct protoent_data *); |
|
void setprotoent_r(int, struct protoent_data *); |
void setservent_r(int, struct servent_data *); |
void setservent_r(int, struct servent_data *); |
#endif |
#endif |
|
|
|
|
int getnameinfo(const struct sockaddr *, socklen_t, |
int getnameinfo(const struct sockaddr *, socklen_t, |
char *, size_t, char *, size_t, int); |
char *, size_t, char *, size_t, int); |
const char *gai_strerror(int); |
const char *gai_strerror(int); |
|
|
|
#if __BSD_VISIBLE |
int getrrsetbyname(const char *, unsigned int, unsigned int, unsigned int, struct rrsetinfo **); |
int getrrsetbyname(const char *, unsigned int, unsigned int, unsigned int, struct rrsetinfo **); |
void freerrset(struct rrsetinfo *); |
void freerrset(struct rrsetinfo *); |
|
#endif |
__END_DECLS |
__END_DECLS |
|
|
/* This is nec'y to make this include file properly replace the sun version. */ |
|
#ifdef sun |
|
#ifdef __GNU_LIBRARY__ |
|
#include <rpc/netdb.h> |
|
#else |
|
struct rpcent { |
|
char *r_name; /* name of server for this rpc program */ |
|
char **r_aliases; /* alias list */ |
|
int r_number; /* rpc program number */ |
|
}; |
|
struct rpcent *getrpcbyname(), *getrpcbynumber(), *getrpcent(); |
|
#endif /* __GNU_LIBRARY__ */ |
|
#endif /* sun */ |
|
|
|
#endif /* !_NETDB_H_ */ |
#endif /* !_NETDB_H_ */ |