307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉/*
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * Copyright (C) 2009, 2016 Internet Systems Consortium, Inc. ("ISC")
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 *
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * This Source Code Form is subject to the terms of the Mozilla Public
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * License, v. 2.0. If a copy of the MPL was not distributed with this
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * file, You can obtain one at http://mozilla.org/MPL/2.0/.
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉
d7201de09b85929a86b157f4b2d91667c68c6b52Automatic Updater/* $Id: netdb.h.in,v 1.3 2009/09/02 23:48:02 tbox Exp $ */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉/*! \file */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#ifndef IRS_NETDB_H
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define IRS_NETDB_H 1
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#include <stddef.h> /* Required on FreeBSD (and others?) for size_t. */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#include <netdb.h> /* Contractual provision. */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉/*
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * Define if <netdb.h> does not declare struct addrinfo.
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉@ISC_IRS_NEEDADDRINFO@
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#ifdef ISC_IRS_NEEDADDRINFO
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉struct addrinfo {
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 int ai_flags; /* AI_PASSIVE, AI_CANONNAME */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 int ai_family; /* PF_xxx */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 int ai_socktype; /* SOCK_xxx */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 size_t ai_addrlen; /* Length of ai_addr */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 char *ai_canonname; /* Canonical name for hostname */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 struct sockaddr *ai_addr; /* Binary address */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 struct addrinfo *ai_next; /* Next structure in linked list */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉};
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#endif
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉/*
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * Undefine all #defines we are interested in as <netdb.h> may or may not have
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * defined them.
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉/*
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * Error return codes from gethostbyname() and gethostbyaddr()
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * (left in extern int h_errno).
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef NETDB_INTERNAL
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef NETDB_SUCCESS
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef HOST_NOT_FOUND
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef TRY_AGAIN
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef NO_RECOVERY
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef NO_DATA
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef NO_ADDRESS
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define NETDB_INTERNAL -1 /* see errno */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define NETDB_SUCCESS 0 /* no problem */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define HOST_NOT_FOUND 1 /* Authoritative Answer Host not found */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define TRY_AGAIN 2 /* Non-Authoritive Host not found, or SERVERFAIL */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define NO_RECOVERY 3 /* Non recoverable errors, FORMERR, REFUSED, NOTIMP */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define NO_DATA 4 /* Valid name, no data record of requested type */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define NO_ADDRESS NO_DATA /* no address, look for MX record */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉/*
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * Error return codes from getaddrinfo(). EAI_INSECUREDATA is our own extension
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * and it's very unlikely to be already defined, but undef it just in case; it
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * at least doesn't do any harm.
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef EAI_ADDRFAMILY
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef EAI_AGAIN
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef EAI_BADFLAGS
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef EAI_FAIL
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef EAI_FAMILY
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef EAI_MEMORY
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef EAI_NODATA
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef EAI_NONAME
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef EAI_SERVICE
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef EAI_SOCKTYPE
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef EAI_SYSTEM
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef EAI_BADHINTS
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef EAI_PROTOCOL
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef EAI_OVERFLOW
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef EAI_INSECUREDATA
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef EAI_MAX
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define EAI_ADDRFAMILY 1 /* address family for hostname not supported */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define EAI_AGAIN 2 /* temporary failure in name resolution */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define EAI_BADFLAGS 3 /* invalid value for ai_flags */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define EAI_FAIL 4 /* non-recoverable failure in name resolution */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define EAI_FAMILY 5 /* ai_family not supported */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define EAI_MEMORY 6 /* memory allocation failure */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define EAI_NODATA 7 /* no address associated with hostname */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define EAI_NONAME 8 /* hostname nor servname provided, or not known */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define EAI_SERVICE 9 /* servname not supported for ai_socktype */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define EAI_SOCKTYPE 10 /* ai_socktype not supported */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define EAI_SYSTEM 11 /* system error returned in errno */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define EAI_BADHINTS 12
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define EAI_PROTOCOL 13
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define EAI_OVERFLOW 14
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define EAI_INSECUREDATA 15
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define EAI_MAX 16
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉/*
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * Flag values for getaddrinfo()
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef AI_PASSIVE
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef AI_CANONNAME
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef AI_NUMERICHOST
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define AI_PASSIVE 0x00000001
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define AI_CANONNAME 0x00000002
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define AI_NUMERICHOST 0x00000004
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉/*
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * Flag values for getipnodebyname()
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef AI_V4MAPPED
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef AI_ALL
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef AI_ADDRCONFIG
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef AI_DEFAULT
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define AI_V4MAPPED 0x00000008
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define AI_ALL 0x00000010
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define AI_ADDRCONFIG 0x00000020
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define AI_DEFAULT (AI_V4MAPPED|AI_ADDRCONFIG)
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉/*
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * Constants for lwres_getnameinfo()
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef NI_MAXHOST
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef NI_MAXSERV
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define NI_MAXHOST 1025
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define NI_MAXSERV 32
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉/*
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * Flag values for lwres_getnameinfo()
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef NI_NOFQDN
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef NI_NUMERICHOST
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef NI_NAMEREQD
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef NI_NUMERICSERV
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef NI_DGRAM
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#undef NI_NUMERICSCOPE
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define NI_NOFQDN 0x00000001
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define NI_NUMERICHOST 0x00000002
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define NI_NAMEREQD 0x00000004
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define NI_NUMERICSERV 0x00000008
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#define NI_DGRAM 0x00000010
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉/*
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * Tell Emacs to use C mode on this file.
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * Local variables:
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * mode: c
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 * End:
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉 */
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉
307d2084502eddc7ce921e5ce439aec3531d90e0Tatuya JINMEI 神明達哉#endif /* IRS_NETDB_H */