annotate 3rdparty/packages/uucpbb/src/chksched.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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1772
5ba8e711a1a3 source added
boisy
parents:
diff changeset
1 /* chksched.c This routine check to see if it is okay to call the remote.
5ba8e711a1a3 source added
boisy
parents:
diff changeset
2 Copyright (C) 1990, 1993 Rick Adams and Bob Billson
5ba8e711a1a3 source added
boisy
parents:
diff changeset
3
5ba8e711a1a3 source added
boisy
parents:
diff changeset
4 This file is part of the OS-9 UUCP package, UUCPbb.
5ba8e711a1a3 source added
boisy
parents:
diff changeset
5
5ba8e711a1a3 source added
boisy
parents:
diff changeset
6 This program is free software; you can redistribute it and/or modify
5ba8e711a1a3 source added
boisy
parents:
diff changeset
7 it under the terms of the GNU General Public License as published by
5ba8e711a1a3 source added
boisy
parents:
diff changeset
8 the Free Software Foundation; either version 2 of the License, or
5ba8e711a1a3 source added
boisy
parents:
diff changeset
9 (at your option) any later version.
5ba8e711a1a3 source added
boisy
parents:
diff changeset
10
5ba8e711a1a3 source added
boisy
parents:
diff changeset
11 This program is distributed in the hope that it will be useful,
5ba8e711a1a3 source added
boisy
parents:
diff changeset
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
5ba8e711a1a3 source added
boisy
parents:
diff changeset
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5ba8e711a1a3 source added
boisy
parents:
diff changeset
14 GNU General Public License for more details.
5ba8e711a1a3 source added
boisy
parents:
diff changeset
15
5ba8e711a1a3 source added
boisy
parents:
diff changeset
16 You should have received a copy of the GNU General Public License
5ba8e711a1a3 source added
boisy
parents:
diff changeset
17 along with this program; if not, write to the Free Software
5ba8e711a1a3 source added
boisy
parents:
diff changeset
18 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
5ba8e711a1a3 source added
boisy
parents:
diff changeset
19
5ba8e711a1a3 source added
boisy
parents:
diff changeset
20 The author of UUCPbb, Bob Billson, can be contacted at:
5ba8e711a1a3 source added
boisy
parents:
diff changeset
21 bob@kc2wz.bubble.org or uunet!kc2wz!bob or by snail mail:
5ba8e711a1a3 source added
boisy
parents:
diff changeset
22 21 Bates Way, Westfield, NJ 07090
5ba8e711a1a3 source added
boisy
parents:
diff changeset
23 */
5ba8e711a1a3 source added
boisy
parents:
diff changeset
24
5ba8e711a1a3 source added
boisy
parents:
diff changeset
25 /* Check to see if it is okay to call remote.by looking at the schedule
5ba8e711a1a3 source added
boisy
parents:
diff changeset
26 (second) field of the Systems file entry. The schedule field has two
5ba8e711a1a3 source added
boisy
parents:
diff changeset
27 subfields, DAY and TIME. The DAY and TIME subfields have no spaces between
5ba8e711a1a3 source added
boisy
parents:
diff changeset
28 them. The DAY subfield is specified using the following keywords (case is
5ba8e711a1a3 source added
boisy
parents:
diff changeset
29 ingored):
5ba8e711a1a3 source added
boisy
parents:
diff changeset
30
5ba8e711a1a3 source added
boisy
parents:
diff changeset
31 Any -we can call at any time
5ba8e711a1a3 source added
boisy
parents:
diff changeset
32 Never -we never should never call but wait to be called
5ba8e711a1a3 source added
boisy
parents:
diff changeset
33 Wk -call any weekday (Monday-Friday)
5ba8e711a1a3 source added
boisy
parents:
diff changeset
34 Su,Mo,Tu,We, -call on individual days
5ba8e711a1a3 source added
boisy
parents:
diff changeset
35 Th,Fr,Sa
5ba8e711a1a3 source added
boisy
parents:
diff changeset
36
5ba8e711a1a3 source added
boisy
parents:
diff changeset
37 The TIME subfield is specified by two 24-hour clock times separated by
5ba8e711a1a3 source added
boisy
parents:
diff changeset
38 a dash (-), e.g. 0930-1100, call only between 9:30 and 11:00 in the
5ba8e711a1a3 source added
boisy
parents:
diff changeset
39 morning. More than one schedule field can be included by separating
5ba8e711a1a3 source added
boisy
parents:
diff changeset
40 them with commas. For example:
5ba8e711a1a3 source added
boisy
parents:
diff changeset
41
5ba8e711a1a3 source added
boisy
parents:
diff changeset
42 Wk1230-1545,Su,Sa -call Monday-Friday from 12:30 to 3:45 in the
5ba8e711a1a3 source added
boisy
parents:
diff changeset
43 afternoon and any time on Saturday and Sunday.
5ba8e711a1a3 source added
boisy
parents:
diff changeset
44 Any1800-2000 -call any day from 6:00 to 8:00 at night
5ba8e711a1a3 source added
boisy
parents:
diff changeset
45 Any -call any day, any time
5ba8e711a1a3 source added
boisy
parents:
diff changeset
46 Th -call any time on Thursday
5ba8e711a1a3 source added
boisy
parents:
diff changeset
47 */
5ba8e711a1a3 source added
boisy
parents:
diff changeset
48
5ba8e711a1a3 source added
boisy
parents:
diff changeset
49 #include "uucp.h"
5ba8e711a1a3 source added
boisy
parents:
diff changeset
50 #include "uucico.h"
5ba8e711a1a3 source added
boisy
parents:
diff changeset
51
5ba8e711a1a3 source added
boisy
parents:
diff changeset
52
5ba8e711a1a3 source added
boisy
parents:
diff changeset
53 int chksched (sched)
5ba8e711a1a3 source added
boisy
parents:
diff changeset
54 char *sched;
5ba8e711a1a3 source added
boisy
parents:
diff changeset
55 {
5ba8e711a1a3 source added
boisy
parents:
diff changeset
56 static char *days[]={"Su","Mo","Tu","We","Th","Fr","Sa"};
5ba8e711a1a3 source added
boisy
parents:
diff changeset
57 struct tm *local_time;
5ba8e711a1a3 source added
boisy
parents:
diff changeset
58 register char *p;
5ba8e711a1a3 source added
boisy
parents:
diff changeset
59 char *com, *dash;
5ba8e711a1a3 source added
boisy
parents:
diff changeset
60 int day, miltime, after, before;
5ba8e711a1a3 source added
boisy
parents:
diff changeset
61 #ifdef _OSK
5ba8e711a1a3 source added
boisy
parents:
diff changeset
62 time_t t;
5ba8e711a1a3 source added
boisy
parents:
diff changeset
63 #else
5ba8e711a1a3 source added
boisy
parents:
diff changeset
64 long t;
5ba8e711a1a3 source added
boisy
parents:
diff changeset
65 #endif
5ba8e711a1a3 source added
boisy
parents:
diff changeset
66
5ba8e711a1a3 source added
boisy
parents:
diff changeset
67 time(&t);
5ba8e711a1a3 source added
boisy
parents:
diff changeset
68 local_time = localtime(&t);
5ba8e711a1a3 source added
boisy
parents:
diff changeset
69 day = local_time->tm_wday;
5ba8e711a1a3 source added
boisy
parents:
diff changeset
70 miltime = local_time->tm_hour * 100 + local_time->tm_min;
5ba8e711a1a3 source added
boisy
parents:
diff changeset
71 strcpy (temp, sched);
5ba8e711a1a3 source added
boisy
parents:
diff changeset
72
5ba8e711a1a3 source added
boisy
parents:
diff changeset
73 for (p = com = temp; com != NULL; p = com + 1)
5ba8e711a1a3 source added
boisy
parents:
diff changeset
74 {
5ba8e711a1a3 source added
boisy
parents:
diff changeset
75 if ((com = strchr (p, ',')) != NULL)
5ba8e711a1a3 source added
boisy
parents:
diff changeset
76 *com = '\0';
5ba8e711a1a3 source added
boisy
parents:
diff changeset
77
5ba8e711a1a3 source added
boisy
parents:
diff changeset
78 if ((dash = strchr (p, '-')) != NULL)
5ba8e711a1a3 source added
boisy
parents:
diff changeset
79 *dash = '\0';
5ba8e711a1a3 source added
boisy
parents:
diff changeset
80
5ba8e711a1a3 source added
boisy
parents:
diff changeset
81 /* Is today OK? */
5ba8e711a1a3 source added
boisy
parents:
diff changeset
82 if (strnucmp (p, "Never", 5) == 0)
5ba8e711a1a3 source added
boisy
parents:
diff changeset
83 return (FALSE);
5ba8e711a1a3 source added
boisy
parents:
diff changeset
84
5ba8e711a1a3 source added
boisy
parents:
diff changeset
85 /* 'Any' matches any day */
5ba8e711a1a3 source added
boisy
parents:
diff changeset
86 if (strnucmp (p, "Any", 3) == 0)
5ba8e711a1a3 source added
boisy
parents:
diff changeset
87 p += 3;
5ba8e711a1a3 source added
boisy
parents:
diff changeset
88
5ba8e711a1a3 source added
boisy
parents:
diff changeset
89 /* Correct day of week? */
5ba8e711a1a3 source added
boisy
parents:
diff changeset
90 else if (strnucmp (p, *(days + day), 2) == 0)
5ba8e711a1a3 source added
boisy
parents:
diff changeset
91 p += 2;
5ba8e711a1a3 source added
boisy
parents:
diff changeset
92
5ba8e711a1a3 source added
boisy
parents:
diff changeset
93 /* Is it a weekday? */
5ba8e711a1a3 source added
boisy
parents:
diff changeset
94 else if (day > 0 && day < 6 && strnucmp (p, "Wk", 2) == 0)
5ba8e711a1a3 source added
boisy
parents:
diff changeset
95 p += 2;
5ba8e711a1a3 source added
boisy
parents:
diff changeset
96
5ba8e711a1a3 source added
boisy
parents:
diff changeset
97 /* No match, try next one */
5ba8e711a1a3 source added
boisy
parents:
diff changeset
98 else
5ba8e711a1a3 source added
boisy
parents:
diff changeset
99 continue;
5ba8e711a1a3 source added
boisy
parents:
diff changeset
100
5ba8e711a1a3 source added
boisy
parents:
diff changeset
101 /* Is time OK? */
5ba8e711a1a3 source added
boisy
parents:
diff changeset
102
5ba8e711a1a3 source added
boisy
parents:
diff changeset
103 /* No time specified, thus, it matches */
5ba8e711a1a3 source added
boisy
parents:
diff changeset
104 if (*p == '\0')
5ba8e711a1a3 source added
boisy
parents:
diff changeset
105 return (TRUE);
5ba8e711a1a3 source added
boisy
parents:
diff changeset
106
5ba8e711a1a3 source added
boisy
parents:
diff changeset
107 /* Else, check military time, assume correct format */
5ba8e711a1a3 source added
boisy
parents:
diff changeset
108 after = atoi (p);
5ba8e711a1a3 source added
boisy
parents:
diff changeset
109 before = atoi (dash+1);
5ba8e711a1a3 source added
boisy
parents:
diff changeset
110
5ba8e711a1a3 source added
boisy
parents:
diff changeset
111 /* 1800-2000 (not wrapping around 0000) */
5ba8e711a1a3 source added
boisy
parents:
diff changeset
112 if (after <= before)
5ba8e711a1a3 source added
boisy
parents:
diff changeset
113 {
5ba8e711a1a3 source added
boisy
parents:
diff changeset
114 if (miltime >= after && miltime <= before)
5ba8e711a1a3 source added
boisy
parents:
diff changeset
115 return (TRUE);
5ba8e711a1a3 source added
boisy
parents:
diff changeset
116 }
5ba8e711a1a3 source added
boisy
parents:
diff changeset
117 /* 2310-0750 (wrapping around 0000) */
5ba8e711a1a3 source added
boisy
parents:
diff changeset
118 else
5ba8e711a1a3 source added
boisy
parents:
diff changeset
119 {
5ba8e711a1a3 source added
boisy
parents:
diff changeset
120 if (miltime >= after || miltime <= before)
5ba8e711a1a3 source added
boisy
parents:
diff changeset
121 return (TRUE);
5ba8e711a1a3 source added
boisy
parents:
diff changeset
122 }
5ba8e711a1a3 source added
boisy
parents:
diff changeset
123 }
5ba8e711a1a3 source added
boisy
parents:
diff changeset
124
5ba8e711a1a3 source added
boisy
parents:
diff changeset
125 /* No times matched, return FALSE */
5ba8e711a1a3 source added
boisy
parents:
diff changeset
126 return (FALSE);
5ba8e711a1a3 source added
boisy
parents:
diff changeset
127 }