|
|
1.1 ! root 1: /* hlocnm.c ! 2: Get the local name to use from the HDB configuration 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., 675 Mass Ave, Cambridge, MA 02139, USA. ! 21: ! 22: The author of the program may be contacted at [email protected] or ! 23: c/o Infinity Development Systems, P.O. Box 520, Waltham, MA 02254. ! 24: */ ! 25: ! 26: #include "uucnfi.h" ! 27: ! 28: #if USE_RCS_ID ! 29: const char _uuconf_hlocnm_rcsid[] = "$Id: hlocnm.c,v 1.1 93/07/30 08:07:15 bin Exp Locker: bin $"; ! 30: #endif ! 31: ! 32: #include <errno.h> ! 33: ! 34: /* Get the local name to use, based on the login name, from the HDB ! 35: configuration files. */ ! 36: ! 37: int ! 38: uuconf_hdb_login_localname (pglobal, zlogin, pzname) ! 39: pointer pglobal; ! 40: const char *zlogin; ! 41: char **pzname; ! 42: { ! 43: struct sglobal *qglobal = (struct sglobal *) pglobal; ! 44: struct shpermissions *qperm; ! 45: ! 46: if (! qglobal->qprocess->fhdb_read_permissions) ! 47: { ! 48: int iret; ! 49: ! 50: iret = _uuconf_ihread_permissions (qglobal); ! 51: if (iret != UUCONF_SUCCESS) ! 52: return iret; ! 53: } ! 54: ! 55: for (qperm = qglobal->qprocess->qhdb_permissions; ! 56: qperm != NULL; ! 57: qperm = qperm->qnext) ! 58: { ! 59: if (qperm->zmyname != NULL ! 60: && qperm->zmyname != (char *) &_uuconf_unset ! 61: && qperm->pzlogname != NULL ! 62: && qperm->pzlogname != (char **) &_uuconf_unset) ! 63: { ! 64: char **pz; ! 65: ! 66: for (pz = qperm->pzlogname; *pz != NULL; pz++) ! 67: { ! 68: if (strcmp (*pz, zlogin) == 0) ! 69: { ! 70: *pzname = strdup (qperm->zmyname); ! 71: if (*pzname == NULL) ! 72: { ! 73: qglobal->ierrno = errno; ! 74: return UUCONF_MALLOC_FAILED | UUCONF_ERROR_ERRNO; ! 75: } ! 76: return UUCONF_SUCCESS; ! 77: } ! 78: } ! 79: } ! 80: } ! 81: ! 82: *pzname = NULL; ! 83: return UUCONF_NOT_FOUND; ! 84: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.