[unix-pc.general] Bug in time spec in HDB /usr/lib/uucp/Systems file

jbm@uncle.UUCP (John B. Milton) (11/28/89)

Surprise! If you put "Never" or "Nvr" or "DON'T" in the second field of
the /usr/lib/uucp/Systems file (HDB only), it will consider it the SAME AS
"Any". Yes, people on your system can poll those long distance sites! Ok,
go ahead do a strings on /usr/lib/uucp/uucico and look around the "Su", "Wk"
and "Any" strings. Don't see "Never" there do you? Well, there is a solution.
There is an optional subfield on the time field, which when present substitutes
a fixed retry time for the normal, exponential back retry time. When this
subfield is present, the lack of a legal time string works the same as "Never"

Sooo, if you wanted this:
---
system Never ACU Any - don't call this system, let them call us
---

use this:
---
system ; ACU Any - don't call this system, let them call us
---

Old uucp had a "," subfield, but it was for a different purpose

John
-- 
John Bly Milton IV, jbm@uncle.UUCP, n8emr!uncle!jbm@osu-cis.cis.ohio-state.edu
(614) h:252-8544, w:469-1990; N8KSN, AMPR: 44.70.0.52; Don't FLAME, inform!

lenny@icus.islp.ny.us (Lenny Tropiano) (11/29/89)

In article <614@uncle.UUCP> jbm@uncle.UUCP (John B. Milton) writes:
|>Surprise! If you put "Never" or "Nvr" or "DON'T" in the second field of
|>the /usr/lib/uucp/Systems file (HDB only), it will consider it the SAME AS
|>"Any". Yes, people on your system can poll those long distance sites! Ok,
|>go ahead do a strings on /usr/lib/uucp/uucico and look around the "Su", "Wk"
|>and "Any" strings. Don't see "Never" there do you? Well, there is a solution.
|>There is an optional subfield on the time field, which when present 
|>substitutes fixed retry time for the normal, exponential back retry time. 
|>When this subfield is present, the lack of a legal time string works the 
|>same as "Never"
|>
...
Hmm, this I think is wrong.  "Never" works just fine for me, on the UNIX pc
and every version of HDB I know of.  True, the "Never" string doesn't 
show up in the "string dump" because it doesn't have to.

The function in HDB that checks the syntax of the second field will check
the for the following (in various combinations):

		SaSuMoTuWeThFr = Saturday through Friday, respectively
		Wk             = Weekday (same as MoTuWeThFr)
		Any            = Any day
		Time Range     = Valid time range to call
				 eg. SaSu,Wk2300-0700, Any, Any2300-0700,
				     Wk2300-0700,Sa1700-0700,Su

If this function fails any of these cases, the validity of the time to call 
the system is FAILED.  If it doesn't pass any of those conditions, it's
also the "WRONG TIME TO CALL".  Therefore, anything that isn't valid in that 
field (including Never, Nvr, DON'T, etc..) will return the "WRONG TIME TO CALL"
The time field can also crossover 0000 (midnight) and that will be handled
correctly.  The fields can be separated by a non-alpha character (traditionally
"," as shown above in my examples) but not "/" which is used traditionally for 
delimiting the "grade" value which isn't supported in the HDB available 
for the UNIX pc.  And traditionally the minimum retry time is the value
after the ";" (eg.  Any;5 [set retry to 5 minutes])

The Systems entry can be as small as:

system Never

But is required to have at least those fields, I believe.

$ /usr/lib/uucp/Uutry system
mchFind called (system)
conn(system)
Wrong Time To Call: Never
Call Failed: WRONG TIME TO CALL
exit code 101
Conversation Complete: Status FAILED

Hope this clears up your problem ...
-Lenny
-- 
| Lenny Tropiano            ICUS Software Systems      [w] +1 (516) 589-7930 |
| lenny@icus.islp.ny.us     Telex; 154232428 ICUS      [h] +1 (516) 968-8576 |
| {ames,pacbell,decuac,hombre,sbcs,attctc}!icus!lenny     attmail!icus!lenny |
+------- ICUS Software Systems -- PO Box 1;  Islip Terrace, NY  11752 -------+

rjg@sialis.mn.org (Robert J. Granvin) (11/29/89)

In article <614@uncle.UUCP> jbm@uncle.UUCP (John B. Milton) writes:
>Surprise! If you put "Never" or "Nvr" or "DON'T" in the second field of
>the /usr/lib/uucp/Systems file (HDB only), it will consider it the SAME AS
>"Any". Yes, people on your system can poll those long distance sites! Ok,
>go ahead do a strings on /usr/lib/uucp/uucico and look around the "Su", "Wk"
>and "Any" strings. Don't see "Never" there do you? Well, there is a solution.
>There is an optional subfield on the time field, which when present substitutes
>a fixed retry time for the normal, exponential back retry time. When this
>subfield is present, the lack of a legal time string works the same as "Never"
 
>Sooo, if you wanted this:
>---
>system Never ACU Any - don't call this system, let them call us
>---
 
>use this:
>---
>system ; ACU Any - don't call this system, let them call us
>---

Unless I'm doing something wrong, mine works...

quad Never ACU12 1200 5551212 ...

uucico -r1 -x9 -squad  ...


mchFind called (quad)
list (rmail) num = 1
list (/usr/spool/uucppublic) list (/u/src) num = 2
list (/usr/spool/uucppublic) num = 1
list (rmail) list (/usr/bin/rnews) num = 2
_Request (TRUE), _Switch (TRUE), _CallBack (FALSE), _MyName (), _Commands rmail
_Commands /usr/bin/rnews
chdir(/usr/spool/uucp/quad)
conn(quad)
Wrong Time To Call: Never
^^^^^^^^^^^^^^^^^^^^^^^^^
Call Failed: WRONG TIME TO CALL
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
exit code 101
Conversation Complete: Status FAILED


I've never been able to get it to ignore the Never ...

-- 
________Robert J. Granvin________        INTERNET: rjg@sialis.mn.org
____National Computer Systems____          BITNET: rjg%sialis.mn.org@nic.mr.net
__National Information Services__            UUCP: ...amdahl!bungia!sialis!rjg
 "Insured against Aircraft, including self-propelled missiles and spacecraft."

jhc@mtune.ATT.COM (Jonathan Clark) (11/29/89)

In article <614@uncle.UUCP> jbm@uncle.UUCP (John B. Milton) writes:
>Surprise! If you put "Never" or "Nvr" or "DON'T" in the second field of the
>/usr/lib/uucp/Systems file (HDB only), it will consider it the SAME AS "Any".

Not quite true, although this is a bug in the version of HDB which is not
supposed to be publically available for the unix pc. ``Never'' is *not* a
reserved word in this version, and what ends up happening is that the
code scans off the end of the time field looking for something it can understand
and eventually finds the ``Any'' in the speed field, and uses that. Needless
to say this is not quite what was intended, and it took some headscratching
before I worked out what was going on. As far as I recall ``Never'' is not a
reserved word until SVR4 (could be SVR3.2.1, but I don't think so).

>Sooo, if you wanted this:
>system Never ACU Any - don't call this system, let them call us
>use this:
>system ; ACU Any - don't call this system, let them call us

Actually just:

	System Never

will work for this purpose. We use:

	system Su0152-0153 blah blah blah

for a 'cu'-only entry, when we don't want to use split Systems files,
and the effect is the same.
-- 
Jonathan Clark
jhc@mtune.att.com, attmail!jonathan

The Englishman never enjoys himself except for some noble purpose.