1/* port.c
2   Find a port.
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.
23   */
24
25#include "uucnfi.h"
26
27#if USE_RCS_ID
28const char _uuconf_port_rcsid[] = "$Id: port.c,v 1.7 2002/03/05 19:10:42 ian Rel $";
29#endif
30
31/* Find a port by name, baud rate, and special purpose function.  */
32
33int
34uuconf_find_port (pglobal, zname, ibaud, ihighbaud, pifn, pinfo, qport)
35     pointer pglobal;
36     const char *zname;
37     long ibaud;
38     long ihighbaud;
39     int (*pifn) P((struct uuconf_port *, pointer));
40     pointer pinfo;
41     struct uuconf_port *qport;
42{
43#if HAVE_V2_CONFIG || HAVE_HDB_CONFIG
44  struct sglobal *qglobal = (struct sglobal *) pglobal;
45#endif
46  int iret;
47
48#if HAVE_TAYLOR_CONFIG
49  iret = uuconf_taylor_find_port (pglobal, zname, ibaud, ihighbaud, pifn,
50				  pinfo, qport);
51  if (iret != UUCONF_NOT_FOUND)
52    return iret;
53#endif
54
55#if HAVE_V2_CONFIG
56  if (qglobal->qprocess->fv2)
57    {
58      iret = uuconf_v2_find_port (pglobal, zname, ibaud, ihighbaud, pifn,
59				  pinfo, qport);
60      if (iret != UUCONF_NOT_FOUND)
61	return iret;
62    }
63#endif
64
65#if HAVE_HDB_CONFIG
66  if (qglobal->qprocess->fhdb)
67    {
68      iret = uuconf_hdb_find_port (pglobal, zname, ibaud, ihighbaud, pifn,
69				   pinfo, qport);
70      if (iret != UUCONF_NOT_FOUND)
71	return iret;
72    }
73#endif
74
75  return UUCONF_NOT_FOUND;
76}
77