(linenum→info "unix/slp.c:2238")

glibc/2.7/inet/netgroup.h

    1: /* Internal header for netgroup related functions.
    2:    Copyright (C) 1996, 1997, 2004 Free Software Foundation, Inc.
    3:    This file is part of the GNU C Library.
    4: 
    5:    The GNU C Library is free software; you can redistribute it and/or
    6:    modify it under the terms of the GNU Lesser General Public
    7:    License as published by the Free Software Foundation; either
    8:    version 2.1 of the License, or (at your option) any later version.
    9: 
   10:    The GNU C Library is distributed in the hope that it will be useful,
   11:    but WITHOUT ANY WARRANTY; without even the implied warranty of
   12:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   13:    Lesser General Public License for more details.
   14: 
   15:    You should have received a copy of the GNU Lesser General Public
   16:    License along with the GNU C Library; if not, write to the Free
   17:    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
   18:    02111-1307 USA.  */
   19: 
   20: #ifndef _NETGROUP_H
   21: #define _NETGROUP_H     1
   22: 
   23: #include <nsswitch.h>
   24: 
   25: /* A netgroup can consist of names of other netgroups.  We have to
   26:    track which netgroups were read and which still have to be read.  */
   27: struct name_list
   28: {
   29:   struct name_list *next;
   30:   char name[0];
   31: };
   32: 
   33: 
   34: /* Dataset for iterating netgroups.  */
   35: struct __netgrent
   36: {
   37:   enum { triple_val, group_val } type;
   38: 
   39:   union
   40:   {
   41:     struct
   42:     {
   43:       const char *host;
   44:       const char *user;
   45:       const char *domain;
   46:     }
   47:     triple;
   48: 
   49:     const char *group;
   50:   } val;
   51: 
   52:   /* Room for the data kept between the calls to the netgroup
   53:      functions.  We must avoid global variables.  */
   54:   char *data;
   55:   size_t data_size;
   56:   union
   57:   {
   58:     char *cursor;
   59:     unsigned long int position;
   60:   };
   61:   int first;
   62: 
   63:   struct name_list *known_groups;
   64:   struct name_list *needed_groups;
   65: 
   66:   /* This handle for the NSS data base is shared between all
   67:      set/get/endXXXent functions.  */
   68:   service_user *nip;
   69: };
   70: 
   71: 
   72: /* The internal netgroup handling functions might be called from outside.  */
   73: extern int __internal_setnetgrent (const char *group,
   74:                                    struct __netgrent *datap);
   75: extern void __internal_endnetgrent (struct __netgrent *datap);
   76: extern int __internal_getnetgrent_r (char **hostp, char **userp,
   77:                                      char **domainp, struct __netgrent *datap,
   78:                                      char *buffer, size_t buflen, int *errnop);
   79: 
   80: #endif /* netgroup.h */
Syntax (Markdown)