netdb_private.h revision 145117
1/*-
2 * Copyright (C) 2005 The FreeBSD Project.  All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 *    notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 *    notice, this list of conditions and the following disclaimer in the
11 *    documentation and/or other materials provided with the distribution.
12 *
13 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
17 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23 * SUCH DAMAGE.
24 *
25 * $FreeBSD: head/lib/libc/net/netdb_private.h 145117 2005-04-15 18:09:39Z ume $
26 */
27
28#ifndef _NETDB_PRIVATE_H_
29#define _NETDB_PRIVATE_H_
30
31#include <stdio.h>				/* XXX: for BUFSIZ */
32
33#define	SERVENT_MAXALIASES	35
34
35struct servent_data {
36	FILE *fp;
37	char *aliases[SERVENT_MAXALIASES];
38	int stayopen;
39	char line[BUFSIZ + 1];
40#ifdef YP
41	int stepping_yp;
42	char *getservbyname_yp;
43	char *getservbyproto_yp;
44	int getservbyport_yp;
45	char *yp_domain;
46	char *key;
47	int keylen;
48#endif
49};
50
51struct servdata {
52	struct servent serv;
53	struct servent_data data;
54};
55
56#define	endservent_r		_endservent_r
57#define	getservbyname_r		_getservbyname_r
58#define	getservbyport_r		_getservbyport_r
59#define	getservent_r		_getservent_r
60#define	setservent_r		_setservent_r
61
62struct servdata *_servdata_init(void);
63void endservent_r(struct servent_data *);
64int getservbyname_r(const char *, const char *, struct servent *,
65	struct servent_data *);
66int getservbyport_r(int, const char *, struct servent *,
67	struct servent_data *);
68int getservent_r(struct servent *, struct servent_data *);
69void setservent_r(int, struct servent_data *);
70
71#endif /* _NETDB_PRIVATE_H_ */
72