Back to index

glibc  2.9
nis_destroygroup.c
Go to the documentation of this file.
00001 /* Copyright (c) 1997, 1998 Free Software Foundation, Inc.
00002    This file is part of the GNU C Library.
00003    Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1997.
00004 
00005    The GNU C Library is free software; you can redistribute it and/or
00006    modify it under the terms of the GNU Lesser General Public
00007    License as published by the Free Software Foundation; either
00008    version 2.1 of the License, or (at your option) any later version.
00009 
00010    The GNU C Library is distributed in the hope that it will be useful,
00011    but WITHOUT ANY WARRANTY; without even the implied warranty of
00012    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013    Lesser General Public License for more details.
00014 
00015    You should have received a copy of the GNU Lesser General Public
00016    License along with the GNU C Library; if not, write to the Free
00017    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
00018    02111-1307 USA.  */
00019 
00020 #include <string.h>
00021 #include <rpcsvc/nis.h>
00022 
00023 nis_error
00024 nis_destroygroup (const_nis_name group)
00025 {
00026   if (group != NULL && group[0] != '\0')
00027     {
00028       size_t grouplen = strlen (group);
00029       char buf[grouplen + 50];
00030       char leafbuf[grouplen + 3];
00031       char domainbuf[grouplen + 3];
00032       nis_error status;
00033       nis_result *res;
00034       char *cp, *cp2;
00035 
00036       cp = stpcpy (buf, nis_leaf_of_r (group, leafbuf, sizeof (leafbuf) - 1));
00037       cp = stpcpy (cp, ".groups_dir");
00038       cp2 = nis_domain_of_r (group, domainbuf, sizeof (domainbuf) - 1);
00039       if (cp2 != NULL && cp2[0] != '\0')
00040        {
00041          *cp++ = '.';
00042          stpcpy (cp, cp2);
00043        }
00044       res = nis_remove (buf, NULL);
00045       status = NIS_RES_STATUS (res);
00046       nis_freeresult (res);
00047       return status;
00048     }
00049   else
00050     return NIS_FAIL;
00051 
00052 }