|
|
1.1 root 1: /* sinfo.c
2: Get information about a system.
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_sinfo_rcsid[] = "$Id: sinfo.c,v 1.1 93/07/30 08:07:32 bin Exp Locker: bin $";
30: #endif
31:
32: /* Get information about a particular system. We combine the
33: definitions for this system from each type of configuration file,
34: by passing what we have so far into each one. */
35:
36: int
37: uuconf_system_info (pglobal, zsystem, qsys)
38: pointer pglobal;
39: const char *zsystem;
40: struct uuconf_system *qsys;
41: {
42: struct sglobal *qglobal = (struct sglobal *) pglobal;
43: int iret;
44: boolean fgot;
45:
46: fgot = FALSE;
47:
48: #if HAVE_TAYLOR_CONFIG
49: iret = _uuconf_itaylor_system_internal (qglobal, zsystem, qsys);
50: if (iret == UUCONF_SUCCESS)
51: fgot = TRUE;
52: else if (iret != UUCONF_NOT_FOUND)
53: return iret;
54: #endif
55:
56: #if HAVE_V2_CONFIG
57: if (qglobal->qprocess->fv2)
58: {
59: struct uuconf_system *q;
60: struct uuconf_system sv2;
61:
62: if (fgot)
63: q = &sv2;
64: else
65: q = qsys;
66: iret = _uuconf_iv2_system_internal (qglobal, zsystem, q);
67: if (iret == UUCONF_SUCCESS)
68: {
69: if (fgot)
70: {
71: iret = _uuconf_isystem_default (qglobal, qsys, &sv2, TRUE);
72: if (iret != UUCONF_SUCCESS)
73: return iret;
74: }
75: fgot = TRUE;
76: }
77: else if (iret != UUCONF_NOT_FOUND)
78: return iret;
79: }
80: #endif
81:
82: #if HAVE_HDB_CONFIG
83: if (qglobal->qprocess->fhdb)
84: {
85: struct uuconf_system *q;
86: struct uuconf_system shdb;
87:
88: if (fgot)
89: q = &shdb;
90: else
91: q = qsys;
92: iret = _uuconf_ihdb_system_internal (qglobal, zsystem, q);
93: if (iret == UUCONF_SUCCESS)
94: {
95: if (fgot)
96: {
97: iret = _uuconf_isystem_default (qglobal, qsys, &shdb, TRUE);
98: if (iret != UUCONF_SUCCESS)
99: return iret;
100: }
101: fgot = TRUE;
102: }
103: else if (iret != UUCONF_NOT_FOUND)
104: return iret;
105: }
106: #endif
107:
108: if (! fgot)
109: return UUCONF_NOT_FOUND;
110:
111: return _uuconf_isystem_basic_default (qglobal, qsys);
112: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.