]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - gnu/libexec/uucp/libuuconf/calout.c
This is the Linux generic soundcard driver, version 1.0c. Supports
[FreeBSD/FreeBSD.git] / gnu / libexec / uucp / libuuconf / calout.c
1 /* calout.c
2    Find callout login name and password for 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 ian@airs.com 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_calout_rcsid[] = "$Id: calout.c,v 1.1 1993/08/04 19:33:45 jtc Exp $";
30 #endif
31
32 #include <errno.h>
33 \f
34 /* Find callout login name and password for a system.  */
35
36 /*ARGSUSED*/
37 int
38 uuconf_callout (pglobal, qsys, pzlog, pzpass)
39      pointer pglobal;
40      const struct uuconf_system *qsys;
41      char **pzlog;
42      char **pzpass;
43 {
44 #if HAVE_TAYLOR_CONFIG
45
46   return uuconf_taylor_callout (pglobal, qsys, pzlog, pzpass);
47
48 #else /* ! HAVE_TAYLOR_CONFIG */
49
50   struct sglobal *qglobal = (struct sglobal *) pglobal;
51
52   *pzlog = NULL;
53   *pzpass = NULL;
54
55   if (qsys->uuconf_zcall_login == NULL
56       && qsys->uuconf_zcall_password == NULL)
57     return UUCONF_NOT_FOUND;
58
59   if ((qsys->uuconf_zcall_login != NULL
60        && strcmp (qsys->uuconf_zcall_login, "*") == 0)
61       || (qsys->uuconf_zcall_password != NULL
62           && strcmp (qsys->uuconf_zcall_password, "*") == 0))
63     return UUCONF_NOT_FOUND;
64       
65   if (qsys->uuconf_zcall_login != NULL)
66     {
67       *pzlog = strdup (qsys->uuconf_zcall_login);
68       if (*pzlog == NULL)
69         {
70           qglobal->ierrno = errno;
71           return UUCONF_MALLOC_FAILED | UUCONF_ERROR_ERRNO;
72         }
73     }
74
75   if (qsys->uuconf_zcall_password != NULL)
76     {
77       *pzpass = strdup (qsys->uuconf_zcall_password);
78       if (*pzpass == NULL)
79         {
80           qglobal->ierrno = errno;
81           if (*pzlog != NULL)
82             {
83               free ((pointer) *pzlog);
84               *pzlog = NULL;
85             }
86           return UUCONF_MALLOC_FAILED | UUCONF_ERROR_ERRNO;
87         }
88     }
89
90   return UUCONF_SUCCESS;
91
92 #endif /* ! HAVE_TAYLOR_CONFIG */
93 }