1/*
2 * Mar  8, 2000 by Hajimu UMEMOTO <ume@mahoroba.org>
3 * $Id: gai.h,v 1.6 2006/01/20 20:41:10 snsimon Exp $
4 *
5 * This module is besed on ssh-1.2.27-IPv6-1.5 written by
6 * KIKUCHI Takahiro <kick@kyoto.wide.ad.jp>
7 */
8/*
9 * Copyright (c) 1998-2003 Carnegie Mellon University.  All rights reserved.
10 *
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions
13 * are met:
14 *
15 * 1. Redistributions of source code must retain the above copyright
16 *    notice, this list of conditions and the following disclaimer.
17 *
18 * 2. Redistributions in binary form must reproduce the above copyright
19 *    notice, this list of conditions and the following disclaimer in
20 *    the documentation and/or other materials provided with the
21 *    distribution.
22 *
23 * 3. The name "Carnegie Mellon University" must not be used to
24 *    endorse or promote products derived from this software without
25 *    prior written permission. For permission or any other legal
26 *    details, please contact
27 *      Office of Technology Transfer
28 *      Carnegie Mellon University
29 *      5000 Forbes Avenue
30 *      Pittsburgh, PA  15213-3890
31 *      (412) 268-4387, fax: (412) 268-7395
32 *      tech-transfer@andrew.cmu.edu
33 *
34 * 4. Redistributions of any form whatsoever must retain the following
35 *    acknowledgment:
36 *    "This product includes software developed by Computing Services
37 *     at Carnegie Mellon University (http://www.cmu.edu/computing/)."
38 *
39 * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
40 * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
41 * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
42 * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
43 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
44 * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
45 * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
46 */
47/*
48 * fake library for ssh
49 *
50 * This file is included in getaddrinfo.c and getnameinfo.c.
51 * See getaddrinfo.c and getnameinfo.c.
52 */
53
54#ifndef _GAI_H_
55#define _GAI_H_
56
57#ifndef NI_MAXHOST
58#define	NI_MAXHOST	1025
59#endif
60#ifndef NI_MAXSERV
61#define	NI_MAXSERV	32
62#endif
63
64/* for old netdb.h */
65#ifndef EAI_NODATA
66#define EAI_NODATA	1
67#define EAI_MEMORY	2
68#define EAI_FAMILY	5	/* ai_family not supported */
69#define EAI_SERVICE	9	/* servname not supported for ai_socktype */
70#endif
71
72/* dummy value for old netdb.h */
73#ifndef AI_PASSIVE
74#define AI_PASSIVE	1
75#define AI_CANONNAME	2
76#define	AI_NUMERICHOST	4
77#define NI_NUMERICHOST	2
78#define NI_NAMEREQD	4
79#define NI_NUMERICSERV	8
80struct addrinfo {
81	int	ai_flags;	/* AI_PASSIVE, AI_CANONNAME */
82	int	ai_family;	/* PF_xxx */
83	int	ai_socktype;	/* SOCK_xxx */
84	int	ai_protocol;	/* 0 or IPPROTO_xxx for IPv4 and IPv6 */
85	size_t	ai_addrlen;	/* length of ai_addr */
86	char	*ai_canonname;	/* canonical name for hostname */
87	struct sockaddr *ai_addr;	/* binary address */
88	struct addrinfo *ai_next;	/* next structure in linked list */
89};
90#endif
91
92int	getaddrinfo(const char *, const char *,
93		    const struct addrinfo *, struct addrinfo **);
94int	getnameinfo(const struct sockaddr *, socklen_t, char *,
95		    size_t, char *, size_t, int);
96void	freeaddrinfo(struct addrinfo *);
97char	*gai_strerror(int);
98
99#endif
100