xref: /netbsd-src/lib/libc/gen/getnetgrent.3 (revision fdecd6a253f999ae92b139670d9e15cc9df4497c)
1.\"	$NetBSD: getnetgrent.3,v 1.5 1997/05/26 14:02:53 lukem Exp $
2.\"
3.\" Copyright (c) 1992, 1993
4.\"	The Regents of the University of California.  All rights reserved.
5.\"
6.\" Redistribution and use in source and binary forms, with or without
7.\" modification, are permitted provided that the following conditions
8.\" are met:
9.\" 1. Redistributions of source code must retain the above copyright
10.\"    notice, this list of conditions and the following disclaimer.
11.\" 2. Redistributions in binary form must reproduce the above copyright
12.\"    notice, this list of conditions and the following disclaimer in the
13.\"    documentation and/or other materials provided with the distribution.
14.\" 3. All advertising materials mentioning features or use of this software
15.\"    must display the following acknowledgement:
16.\"	This product includes software developed by the University of
17.\"	California, Berkeley and its contributors.
18.\" 4. Neither the name of the University nor the names of its contributors
19.\"    may be used to endorse or promote products derived from this software
20.\"    without specific prior written permission.
21.\"
22.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
23.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
26.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32.\" SUCH DAMAGE.
33.\"
34.\"     @(#)getnetgrent.3	8.1 (Berkeley) 6/4/93
35.\"
36.Dd June 4, 1993
37.Dt GETNETGRENT 3
38.Os
39.Sh NAME
40.Nm getnetgrent ,
41.Nm innetgr ,
42.Nm setnetgrent ,
43.Nm endnetgrent
44.Nd netgroup database operations
45.Sh SYNOPSIS
46.Fd #include <netgroup.h>
47.Ft int
48.Fn getnetgrent "char **host" "char **user" "char **domain"
49.Ft int
50.Fn innetgr "const char *netgroup" "const char *host" "const char *user" "const char *domain"
51.Ft void
52.Fn setnetgrent "const char *netgroup"
53.Ft void
54.Fn endnetgrent void
55.Sh DESCRIPTION
56These functions operate on the netgroup database file
57.Pa /etc/netgroup.db
58which is described
59in
60.Xr netgroup 5 .
61If that file does not exist, and the system supports
62.Sy YP ,
63then the
64.Sy netgroup
65.Sy YP
66databases are used instead.
67The database defines a set of netgroups, each made up of one or more triples:
68.Bd -literal -offset indent
69(host, user, domain)
70.Ed
71.Pp
72that defines a combination of host, user and domain.
73Any of the three fields may be specified as ``wildcards'' that match any
74string.
75.Pp
76The function
77.Fn getnetgrent
78sets the three pointer arguments to the strings of the next member of the
79current netgroup.
80If any of the string pointers are
81.Dv NULL
82that field is considered a wildcard.
83.Pp
84The functions
85.Fn setnetgrent
86and
87.Fn endnetgrent
88set the current netgroup and terminate the current netgroup respectively.
89If
90.Fn setnetgrent
91is called with a different netgroup than the previous call, an implicit
92.Fn endnetgrent
93is implied.
94.Fn Setnetgrent
95also sets the offset to the first member of the netgroup.
96.Pp
97The function
98.Fn innetgr
99searches for a match of all fields within the specified group.
100If any of the
101.Sy host ,
102.Sy user ,
103or
104.Sy domain
105arguments are
106.Dv NULL
107those fields will match any string value in the netgroup member.
108.Sh RETURN VALUES
109The function
110.Fn getnetgrent
111returns 0 for ``no more netgroup members'' and 1 otherwise.
112The function
113.Fn innetgr
114returns 1 for a successful match and 0 otherwise.
115The functions
116.Fn setnetgrent
117and
118.Fn endnetgrent
119have no return value.
120.Sh FILES
121.Bl -tag -width /etc/netgroup -compact
122.It Pa /etc/netgroup
123netgroup database file
124.El
125.Sh SEE ALSO
126.Xr netgroup 5
127.Sh BUGS
128The function
129.Fn getnetgrent
130returns pointers to dynamically allocated data areas that are free'd when
131the function
132.Fn endnetgrent
133is called.
134