Mercurial > hg > Members > kono > nitros9-code
view 3rdparty/packages/uucpbb/src/findmach.c @ 3226:9749d0dfc4a2
Changed a puls PC to rts to save cycles
author | David Ladd <drencor-xeen@users.sourceforge.net> |
---|---|
date | Sat, 20 Jan 2018 19:32:22 -0600 |
parents | 5ba8e711a1a3 |
children |
line wrap: on
line source
/* findmach.c This routine gets the information for a specific remote. Copyright (C) 1990, 1993 Rick Adams and Bob Billson This file is part of the OS-9 UUCP package, UUCPbb. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The author of UUCPbb, Bob Billson, can be contacted at: bob@kc2wz.bubble.org or uunet!kc2wz!bob or by snail mail: 21 Bates Way, Westfield, NJ 07090 */ #include "uucp.h" #include "uucico.h" #define WORDSIZE 30 /* Keep track of whether or not we've actually dialed */ static flag found_one = FALSE; int findmach (entryline) int *entryline; { char line[SYSLINE]; register char *words[WORDSIZE]; short i, n; if (debuglvl > 0) fprintf (log, "findmach: checking Systems for %s...", sysname); do { /* find system entry */ if (findline (*entryline, sysname, SYSTEMS, line, sizeof (line)) == FALSE) { if (*entryline == 0) { char tmp[45]; if (debuglvl == 0) { sprintf (tmp, "'%s' not in Systems file", sysname); logerror (tmp); return (FATAL); } else fputs ("NOT FOUND\n", log); return (ABORT); } else if (found_one) { if (debuglvl > 0) fputs ("no other entry\n", log); return (NOANSWER); } else { char tmp[45]; fprintf (log, "Wrong time to call (%s)", sysname); logerror (tmp); return (ABORT); } } if ((n = getargs (words, line, WORDSIZE)) < 5) { char tmp[65]; sprintf (tmp, "bad Systems entry for: %s", sysname); logerror (tmp); return (ABORT); } (*entryline)++; /* set up index for next entry */ } while (!chksched (*(words+1))); /* check schedule to make sure we */ /* can use this entry now */ found_one = TRUE; if (debuglvl > 0) fprintf (log, "got it\n"); /* retrieve baud rate and phone number */ strcpy (baud, *(words+3)); strcpy (phone, *(words+4)); if (strucmp (phone, "none") == 0) strcpy (phone, "-"); /* retrieve chat script for system */ for (*chatscript = '\0', i = 5; i < n; i++) { strcat (chatscript, words[i][0] != '\0' ? *(words+i) : "|"); if (i != (n - 1)) strcat (chatscript, " "); } /* Look in the Devices file for a matching "device" entry. This "device" does not have to be an actual OS-9 device name (/t2, /t3, etc.). It is merely a unique label to identify the entry in the Devices file. */ if (findent (*(words+2), DEVICES, line, sizeof (line)) == FALSE) { char tmp[65]; sprintf (tmp, "entry not in Devices: %s", *(words+2)); logerror (tmp); return (ABORT); } if ((n = getargs (words, line, WORDSIZE)) != 5) { char tmp[65]; sprintf (tmp, "bad Devices entry: %s", *words); logerror (tmp); return (ABORT); } /* Retrieve the actual OS-9 device we will use, e.g. /t2, /t3, etc. */ strcpy (device, *(words+1)); /* Find the entry in the Dialers file */ if (findent (*(words+4), DIALERS, line, sizeof (line)) == FALSE) { char tmp[65]; sprintf (tmp, "device not in Dialers: %s", *(words+4)); logerror (tmp); return (ABORT); } if ((n = getargs (words, line, WORDSIZE)) < 2) { char tmp[65]; sprintf (tmp, "bad Dialers entry: %s", *words); logerror (tmp); return (ABORT); } /* get modem reset string */ strcat (strcpy (modemreset, *(words+2)), "\n"); /* retrieve dial script */ for (*dialscript = '\0', i = 1; i < n; i++) { if (words[i][0] == '-' || words[i][0] == '\0') strcat (dialscript, "|"); else strcat (dialscript, *(words+i)); if (i != (n - 1)) strcat (dialscript, " "); } return (OPENPORT); }