Libinfo-173.tar.gz
[apple/libinfo.git] / nis.subproj / ypinternal.h
1 /*
2 * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * Copyright (c) 1999-2003 Apple Computer, Inc. All Rights Reserved.
7 *
8 * This file contains Original Code and/or Modifications of Original Code
9 * as defined in and that are subject to the Apple Public Source License
10 * Version 2.0 (the 'License'). You may not use this file except in
11 * compliance with the License. Please obtain a copy of the License at
12 * http://www.opensource.apple.com/apsl/ and read it before using this
13 * file.
14 *
15 * The Original Code and all software distributed under the License are
16 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
17 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
18 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
19 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
20 * Please see the License for the specific language governing rights and
21 * limitations under the License.
22 *
23 * @APPLE_LICENSE_HEADER_END@
24 */
25 /* $OpenBSD: ypinternal.h,v 1.2 1996/09/15 09:32:00 tholo Exp $ */
26
27 /*
28 * Copyright (c) 1992, 1993, 1996 Theo de Raadt <deraadt@theos.com>
29 * All rights reserved.
30 *
31 * Redistribution and use in source and binary forms, with or without
32 * modification, are permitted provided that the following conditions
33 * are met:
34 * 1. Redistributions of source code must retain the above copyright
35 * notice, this list of conditions and the following disclaimer.
36 * 2. Redistributions in binary form must reproduce the above copyright
37 * notice, this list of conditions and the following disclaimer in the
38 * documentation and/or other materials provided with the distribution.
39 * 3. All advertising materials mentioning features or use of this software
40 * must display the following acknowledgement:
41 * This product includes software developed by Theo de Raadt.
42 * 4. The name of the author may not be used to endorse or promote products
43 * derived from this software without specific prior written permission.
44 *
45 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
46 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
47 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
48 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
49 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
50 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
51 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
52 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
53 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
54 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
55 * SUCH DAMAGE.
56 */
57
58 /*
59 * XXX We have to define these here due to clashes between
60 * yp_prot.h and yp.h.
61 */
62 struct dom_binding {
63 struct dom_binding *dom_pnext;
64 char dom_domain[YPMAXDOMAIN + 1];
65 struct sockaddr_in dom_server_addr;
66 u_short dom_server_port;
67 int dom_socket;
68 CLIENT *dom_client;
69 u_short dom_local_port;
70 long dom_vers;
71 };
72
73 #define BINDINGDIR "/var/yp/binding"
74 #define YPBINDLOCK "/var/run/ypbind.lock"
75
76 extern struct dom_binding *_ypbindlist;
77 extern char _yp_domain[MAXHOSTNAMELEN];
78 extern int _yplib_timeout;
79
80 void _yp_unbind __P((struct dom_binding *));
81 int _yp_check __P((char **));
82
83 #ifdef YPMATCHCACHE
84
85 static bool_t ypmatch_add __P((const char *, const char *,
86 u_int, char *, u_int));
87 static bool_t ypmatch_find __P((const char *, const char *,
88 u_int, char **, u_int *));
89
90 static struct ypmatch_ent {
91 struct ypmatch_ent *next;
92 char *map, *key;
93 char *val;
94 int keylen, vallen;
95 time_t expire_t;
96 } *ypmc;
97 extern int _yplib_cache;
98
99 #endif