]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - gnu/libexec/uucp/libuuconf/tval.c
This commit was generated by cvs2svn to compensate for changes in r52894,
[FreeBSD/FreeBSD.git] / gnu / libexec / uucp / libuuconf / tval.c
1 /* tval.c
2    Validate a login name for a system using Taylor UUCP files.
3
4    Copyright (C) 1992 Ian Lance Taylor
5
6    This file is part of the Taylor UUCP uuconf library.
7
8    This library is free software; you can redistribute it and/or
9    modify it under the terms of the GNU Library General Public License
10    as published by the Free Software Foundation; either version 2 of
11    the License, or (at your option) any later version.
12
13    This library is distributed in the hope that it will be useful, but
14    WITHOUT ANY WARRANTY; without even the implied warranty of
15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16    Library General Public License for more details.
17
18    You should have received a copy of the GNU Library General Public
19    License along with this library; if not, write to the Free Software
20    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
21
22    The author of the program may be contacted at ian@airs.com or
23    c/o Cygnus Support, 48 Grove Street, Somerville, MA 02144.
24    */
25
26 #include "uucnfi.h"
27
28 #if USE_RCS_ID
29 const char _uuconf_tval_rcsid[] = "$FreeBSD$";
30 #endif
31 \f
32 /* Validate a login name for a system using Taylor UUCP configuration
33    files.  This assumes that the zcalled_login field is either NULL or
34    "ANY".  If makes sure that the login name does not appear in some
35    other "called-login" command listing systems not including this
36    one.  */
37
38 int
39 uuconf_taylor_validate (pglobal, qsys, zlogin)
40      pointer pglobal;
41      const struct uuconf_system *qsys;
42      const char *zlogin;
43 {
44   struct sglobal *qglobal = (struct sglobal *) pglobal;
45   struct svalidate *q;
46
47   if (! qglobal->qprocess->fread_syslocs)
48     {
49       int iret;
50
51       iret = _uuconf_iread_locations (qglobal);
52       if (iret != UUCONF_SUCCESS)
53         return iret;
54     }
55
56   for (q = qglobal->qprocess->qvalidate; q != NULL; q = q->qnext)
57     {
58       if (strcmp (q->zlogname, zlogin) == 0)
59         {
60           char **pz;
61
62           for (pz = q->pzmachines; *pz != NULL; pz++)
63             if (strcmp (*pz, qsys->uuconf_zname) == 0)
64               return UUCONF_SUCCESS;
65
66           return UUCONF_NOT_FOUND;
67         }
68     }
69
70   return UUCONF_SUCCESS;
71 }