1/* dnams.c 2 Get all known dialer names. 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_dnams_rcsid[] = "$Id: dnams.c,v 1.6 2002/03/05 19:10:42 ian Rel $"; 29#endif 30 31/* Get all known dialer names. */ 32 33int 34uuconf_dialer_names (pglobal, ppzdialers) 35 pointer pglobal; 36 char ***ppzdialers; 37{ 38 struct sglobal *qglobal = (struct sglobal *) pglobal; 39 char **pztaylor; 40 char **pzhdb; 41 int iret; 42 43 *ppzdialers = NULL; 44 pztaylor = NULL; 45 pzhdb = NULL; 46 47#if HAVE_TAYLOR_CONFIG 48 iret = uuconf_taylor_dialer_names (pglobal, &pztaylor); 49 if (iret != UUCONF_SUCCESS) 50 return iret; 51#endif 52 53#if HAVE_HDB_CONFIG 54 if (qglobal->qprocess->fhdb) 55 { 56 iret = uuconf_hdb_dialer_names (pglobal, &pzhdb); 57 if (iret != UUCONF_SUCCESS) 58 return iret; 59 } 60#endif 61 62 if (pzhdb == NULL) 63 *ppzdialers = pztaylor; 64 else if (pztaylor == NULL) 65 *ppzdialers = pzhdb; 66 else 67 { 68 char **pz; 69 70 iret = UUCONF_SUCCESS; 71 72 for (pz = pztaylor; *pz != NULL; pz++) 73 { 74 iret = _uuconf_iadd_string (qglobal, *pz, FALSE, TRUE, 75 ppzdialers, (pointer) NULL); 76 if (iret != UUCONF_SUCCESS) 77 break; 78 } 79 80 if (iret == UUCONF_SUCCESS) 81 { 82 for (pz = pzhdb; *pz != NULL; pz++) 83 { 84 iret = _uuconf_iadd_string (qglobal, *pz, FALSE, TRUE, 85 ppzdialers, (pointer) NULL); 86 if (iret != UUCONF_SUCCESS) 87 break; 88 } 89 } 90 91 if (pztaylor != NULL) 92 free ((pointer) pztaylor); 93 if (pzhdb != NULL) 94 free ((pointer) pzhdb); 95 } 96 97 if (iret == UUCONF_SUCCESS && *ppzdialers == NULL) 98 iret = _uuconf_iadd_string (qglobal, (char *) NULL, FALSE, FALSE, 99 ppzdialers, (pointer) NULL); 100 101 return iret; 102} 103