home *** CD-ROM | disk | FTP | other *** search
/ OpenStep 4.2J (Developer) / os42jdev.iso / NextDeveloper / Source / GNU / uucp / Uucp.framework / uuconf.subproj / sinfo.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-10-09  |  2.8 KB  |  113 lines

  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., 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_sinfo_rcsid[] = "$Id: sinfo.c,v 1.5 1995/06/21 19:24:04 ian Rel $";
  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. }
  113.