Initial revision
This commit is contained in:
363
html/ftsc/fsc-0062.html
Executable file
363
html/ftsc/fsc-0062.html
Executable file
@@ -0,0 +1,363 @@
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>A Proposed Nodelist flag indicating Online Times of a Node.</TITLE>
|
||||
</HEAD>
|
||||
|
||||
<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
|
||||
<BODY
|
||||
BGCOLOR="#FFFFFF"
|
||||
TEXT="#000000"
|
||||
LINK="#0000FF"
|
||||
VLINK="#000080"
|
||||
ALINK="#FF0000"
|
||||
>
|
||||
<PRE>
|
||||
| Document: FSC-0062
|
||||
| Version: 003
|
||||
| Date: April 14, 1996
|
||||
| Author: David J. Thomas
|
||||
|
||||
|
||||
|
||||
|
||||
A Proposed Nodelist flag indicating Online Times of a Node
|
||||
David J. Thomas
|
||||
2:442/600@fidonet.org
|
||||
|
||||
|
||||
|
||||
|
||||
Status of this document:
|
||||
|
||||
This FSC suggests a proposed protocol for the FidoNet(r) community,
|
||||
and requests discussion and suggestions for improvements.
|
||||
Distribution of this document is unlimited.
|
||||
|
||||
Fido and FidoNet are registered marks of Tom Jennings and Fido
|
||||
Software.
|
||||
|
||||
Note
|
||||
----
|
||||
|
||||
Changes in content between the previous edition of this document, and this
|
||||
edition, are signified by bars (|) in the left margin, except where
|
||||
otherwise specified. I have changed the format of the document slightly to
|
||||
allow this. Where the format of the document has changed, but the actual
|
||||
text has not, bars are not present.
|
||||
|
||||
Purpose
|
||||
-------
|
||||
|
||||
There are currently several systems within FidoNet that offer file request
|
||||
or mail holding capabilities but are not continuously online. The only time
|
||||
during which these nodes can be contacted with reference to the nodelist is
|
||||
currently the Zone Mail Hour of the zone to which the systems belong. In
|
||||
theory, mailers can only use the zone mail hour(s) specified by the system
|
||||
in question to contact these nodes, which does not provide for any method
|
||||
of file requesting or calling for echomail that does not conflict with the
|
||||
Policy requirement that no echomail or files be transferred during the zone
|
||||
mail hour. This means that, in practice, if it is known that a particular
|
||||
node is online for more time than ZMH alone, but less than 24 hours a day,
|
||||
it is necessary to "kludge," or set this up as a special situation, in most
|
||||
mailers whenever a node has to be contacted a number of times, whether
|
||||
regularly or irregularly. The proposed flag would benefit the mailers in
|
||||
such a way as to provide for them the online times that the node is usually
|
||||
online for, thus cutting on the costs of calling a non-continuous mail
|
||||
node, only to find that it is not available; and also, hopefully preventing
|
||||
annoyance for a sysop whose mailer is being called whilst it is not online,
|
||||
for example in the case of a voice/data shared line.
|
||||
|
||||
Compatibility
|
||||
-------------
|
||||
|
||||
Since the current nodelist format is always being extended and nodelist
|
||||
processors look only for the flags that they know about, there are no
|
||||
expected compatibility problems with the suggestion outlined below.
|
||||
|
||||
Format of additional nodelist flag
|
||||
----------------------------------
|
||||
|
||||
The proposed nodelist flag has the following form:
|
||||
|
||||
Txy
|
||||
|
||||
where x represents the startup time, and y the end time, in the following
|
||||
format:
|
||||
|
||||
+------+----+ +------+----+ +------+----+ +------+----+ +------+----+
|
||||
|Letter|Time| |Letter|Time| |Letter|Time| |Letter|Time| |Letter|Time|
|
||||
+------+----+ +------+----+ +------+----+ +------+----+ +------+----+
|
||||
| A |0000| | F |0500| | K |1000| | P |1500| | U |2000|
|
||||
| a |0030| | f |0530| | k |1030| | p |1530| | u |2030|
|
||||
| B |0100| | G |0600| | L |1100| | Q |1600| | V |2100|
|
||||
| b |0130| | g |0630| | l |1130| | q |1630| | v |2130|
|
||||
| C |0200| | H |0700| | M |1200| | R |1700| | W |2200|
|
||||
| c |0230| | h |0730| | m |1230| | r |1730| | w |2230|
|
||||
| D |0300| | I |0800| | N |1300| | S |1800| | X |2300|
|
||||
| d |0330| | i |0830| | n |1330| | s |1830| | x |2330|
|
||||
| E |0400| | J |0900| | O |1400| | T |1900| | | |
|
||||
| e |0430| | j |0930| | o |1430| | t |1930| | | |
|
||||
+------+----+ +------+----+ +------+----+ +------+----+ +------+----+
|
||||
|
||||
| This flag is not intended to be a user flag. The flag is intended to provide
|
||||
| information to computerised mailer processes, and is not easily read by
|
||||
| human beings (although they can of course interpret the meaning of the
|
||||
| flag); most mailers however do not attempt to interpret any information that
|
||||
| is specified as a user flag, assuming that it is there for the benefit of
|
||||
| human beings. Such mailers would not be able to make use of the information
|
||||
| provided, which is the purpose of the flag.
|
||||
|
||||
| This flag is of course not specified in FTS-0005 at the time of writing, but
|
||||
| this is not regarded by FidoNet as a problem because other flags in current
|
||||
| use are not specified in FTS-0005.
|
||||
|
||||
The case of the letter could be relevant. Whereas the case is currently not
|
||||
used by any flags in the document describing the current format of the
|
||||
nodelist, there exists the potential for the case of a letter to have
|
||||
relevant meaning. The case has to be correct for the CRC check calculation
|
||||
to prove correct, and this would be a good use for the case of the letter.
|
||||
If it is necessary to ignore the case, then the upper on-the-hour time
|
||||
should be used, i.e. the time that is listed after the upper-case letter.
|
||||
|
||||
| These times are expressed in UTC so that the flag is useful for systems all
|
||||
around the world, without the need for specific time zone information to be
|
||||
included in the nodelist. They do not adjust with daylight saving time for a
|
||||
similar reason. Note the section on daylight saving time for information
|
||||
about handling adjustments without changing the flag; this is important.
|
||||
|
||||
Where necessary, the times can wrap around midnight, so for example, for a
|
||||
| node that is online between the hours of 1800 and 0600 UTC, the flag TSG
|
||||
would be a valid indication of this time.
|
||||
|
||||
This nodelist entry is not required by any node. It is supplementary to the
|
||||
#01, #02, #08, #09, #18, #20 flags and their !xx counterparts, though its
|
||||
meaning is different. It has been suggested to me about the possibility of
|
||||
an additional flag with the same meaning, but having a W as the first
|
||||
letter, indicating that the node is also available for all hours during
|
||||
weekends; however, I believe that the simple inclusion of the single flag
|
||||
indicated above will solve most problems, as it does indicate a period for
|
||||
non-CM nodes during which the node is available, which is all that is
|
||||
really required.
|
||||
|
||||
Daylight saving time
|
||||
--------------------
|
||||
|
||||
If a node changes online times with respect to UTC when daylight saving
|
||||
time becomes effective (which would be the case with most part time nodes),
|
||||
then this is to be taken into account when assigning this flag. An online
|
||||
times flag assigned to a node should not be altered for the specific
|
||||
purpose of adjusting due to daylight saving time, since large difference
|
||||
files (NODEDIFF's) would result if every node was allowed to do this, e.g.
|
||||
my node used to be online from 2300 to 0800 in local time, which in winter
|
||||
| is UTC, but in the summer it becomes BST (British Summer Time). This is one
|
||||
| hour ahead of UTC, and the corresponding availability times of my node
|
||||
| during the summer period were 2200 to 0700 UTC. Therefore my online times
|
||||
flag would have indicated availability between the hours of 2300 and 0700
|
||||
| UTC, the daily time period encompassing both times, so the flag would be
|
||||
TXH.
|
||||
|
||||
Policy considerations
|
||||
---------------------
|
||||
|
||||
This is a technical document. However, since the flag could make for an
|
||||
increase in the size of difference files, the author feels that the
|
||||
following guidelines should be adopted concerning the use of the flag.
|
||||
|
||||
The online times flag does not replace the requirement for exclusivity of
|
||||
zone mail hour to be maintained. It is still annoying behaviour to have
|
||||
this flag and be unavailable during ZMH, just as it is annoying behaviour
|
||||
to have the CM (continuous mail) flag in one's entry, and disregard ZMH.
|
||||
|
||||
Except for during ZMH, the sysop of a node using this flag finding that
|
||||
they need to take their mailer offline during the specified times to
|
||||
perform system maintenance, or for any other reason, would not be acting in
|
||||
an annoying manner to do so, unless the practice is found to be continuous,
|
||||
in which case the flag's times could be reduced, or the flag itself could
|
||||
be removed from their node entry.
|
||||
|
||||
It should be noted that this flag is present for the benefit of mailers,
|
||||
not human beings. This means that the flag should be used only to indicate
|
||||
when a mailer is ready to receive calls. A system that uses a FidoNet-
|
||||
technology mailer in ZMH, and a human-access only system during other
|
||||
period(s) of the day that cannot receive mail, should not use this flag.
|
||||
This flag does not explicitly specify online times of a public access BBS,
|
||||
although for presumably most nodes with FidoNet-capable software, a public
|
||||
access BBS will be available during the times indicated.
|
||||
|
||||
Where the flag is used, it should not often be changed. If a situation
|
||||
exists, for example, where a node uses a certain set of times during the
|
||||
first two weeks of a month, and a different set of times during the
|
||||
remainder period, the flag should be set to a time during each day of the
|
||||
month when the node is online. For example, if a node is online during
|
||||
1800-0800 for the first two weeks, and then during 2200-1000 for the
|
||||
remainder, the time flag should specify 2200-0800 only. If there is no such
|
||||
time (other than ZMH) then no flag should be used. Of course, any permanent
|
||||
changes, and any necessary reductions in the times, should be permitted at
|
||||
any time, but changes owing only to daylight saving time should certainly
|
||||
be expressly forbidden.
|
||||
|
||||
File requests and user access are of course permitted during the online
|
||||
times indicated (except ZMH).
|
||||
|
||||
The above list may seem rather frightening! Please note that they are
|
||||
guidelines rather than rules, unless FidoNet policy has included them as
|
||||
rules. In the vast majority of situations where a node is online for a
|
||||
fixed set of hours per day, the only thing to watch out for is that you get
|
||||
the daylight saving time period right. Then you don't have to worry about
|
||||
changing it at any time, except when your own online times change.
|
||||
|
||||
Example
|
||||
-------
|
||||
|
||||
With regard to time zones now; this is a complicated topic, so I wish to
|
||||
express an example. Imagine a node in Indiana, USA. It is online for the
|
||||
time period beginning 6 o'clock pm (1800) and ending 8 o'clock am (0800).
|
||||
This changes with daylight saving time, so the times expressed effectively
|
||||
| become an hour earlier with respect to UTC during daylight saving time.
|
||||
|
||||
| Indiana is in the Central time zone, which is 6 hours behind UTC. Therefore,
|
||||
| the online times in UTC can be expressed as 0000-1400 UTC during winter.
|
||||
| During daylight saving time, however, the local time for Indiana is 5 hours
|
||||
| behind UTC. The online times during this period are 0100-1500 UTC. The
|
||||
| subset should be used, so that the online times flag for the node should
|
||||
| indicate availability between 0100 and 1400 UTC, which is indicated
|
||||
| by the flag TBO.
|
||||
|
||||
| (Thanks to a few people for pointing out that the previous example was in
|
||||
| error; it assumed that Indiana was ahead of UTC, and not behind as is
|
||||
| actually the case.)
|
||||
|
||||
ANSI C routines to Calculate the Online Times Flag
|
||||
--------------------------------------------------
|
||||
|
||||
These were not provided in the first edition. Change bars will not be used
|
||||
here, since they would interfere with the syntax of the presented routines.
|
||||
|
||||
The first program calculates the online times flag from the user's entry of
|
||||
the online times of a system, expressed in the local time zone, and the
|
||||
offset to UTC used by the user's country. It takes into account that the
|
||||
clock is put forward and back once a year by reducing the end time by one
|
||||
hour. The program should work on any platform, and has been tested.
|
||||
|
||||
=== start of code ===
|
||||
/* TIMEFLAG.C
|
||||
Calculates FSC-0062 time flag requirement from user input */
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
char *onlineflag(char *on, char *off, int utc_diff);
|
||||
|
||||
void main()
|
||||
{
|
||||
char on[6], off[6]; int utc_diff;
|
||||
|
||||
printf("\nPlease specify the time you come online [HH:MM]: ");
|
||||
scanf("%s", on);
|
||||
printf("\nPlease specify the time you come offline [HH:MM]: ");
|
||||
scanf("%s", off);
|
||||
printf("\nSpecify the difference between your local time zone in winter\n"
|
||||
"time and UTC (e.g. if your time zone is 6 hours behind UTC,\n"
|
||||
"enter 6): ");
|
||||
scanf("%d", &utc_diff);
|
||||
printf("\nYour online time flag is %s\n\n",
|
||||
onlineflag(on, off, utc_diff));
|
||||
}
|
||||
|
||||
char *onlineflag(char *ontime, char *offtime, int utcdiff)
|
||||
{
|
||||
int onhour, onmin, offhour, offmin;
|
||||
static char flag[4]="T ";
|
||||
|
||||
sscanf(ontime, "%d:%d", &onhour, &onmin);
|
||||
sscanf(offtime, "%d:%d", &offhour, &offmin);
|
||||
|
||||
if(onmin>30) ++onhour;
|
||||
--offhour; /* to correct for daylight saving time */
|
||||
onhour = (onhour+24+utcdiff) % 24;
|
||||
offhour = (offhour+24+utcdiff) % 24;
|
||||
|
||||
flag[1]='A'+onhour;
|
||||
flag[2]='A'+offhour;
|
||||
|
||||
if(onmin>0 && onmin<31) flag[1] += 'a'-'A';
|
||||
if(offmin>29) flag[2] += 'a'-'A';
|
||||
|
||||
return flag;
|
||||
}
|
||||
=== end of code ===
|
||||
|
||||
The second program calculates the online times from the time flag, input
|
||||
as a pointer to char to the routine (this being of the format "Txy"). It
|
||||
returns a pointer to a structure which contains the on- and off-times in
|
||||
UTC. This is not a complete program; it is designed to be used by mailers
|
||||
to determine the valid online times. It has also been tested.
|
||||
|
||||
=== start of code ===
|
||||
/* INTFLAG.C
|
||||
Interprets online time flags and converts them to a set of UTC times */
|
||||
|
||||
struct TIMES {
|
||||
int on_hour;
|
||||
int on_min;
|
||||
int off_hour;
|
||||
int off_min;
|
||||
};
|
||||
|
||||
struct TIMES *interpret_flag(char *time_flag);
|
||||
|
||||
struct TIMES *interpret_flag(char *timeflag)
|
||||
{
|
||||
static struct TIMES times;
|
||||
|
||||
times.on_min=0;
|
||||
times.off_min=0;
|
||||
|
||||
times.on_hour=timeflag[1]-'A';
|
||||
if(times.on_hour>23) {
|
||||
times.on_hour -= 'a'-'A';
|
||||
times.on_min=30;
|
||||
}
|
||||
times.off_hour=timeflag[2]-'A';
|
||||
if(times.off_hour>23) {
|
||||
times.off_hour -= 'a'-'A';
|
||||
times.off_min=30;
|
||||
}
|
||||
return ×
|
||||
}
|
||||
=== end of code ===
|
||||
|
||||
| The above routines can be copied and re-used as desired. I am now an
|
||||
| amazing C programmer, but I still make no guarantees about them! :-)
|
||||
|
||||
Summary
|
||||
-------
|
||||
|
||||
I believe this to be a neat and compact solution to, what is in my opinion,
|
||||
one of the gravest problems currently facing FidoNet. In FidoNet, most
|
||||
nodes are continuous mail, but it is important for the growth and
|
||||
popularity of FidoNet that non-CM nodes do not receive many mailer calls at
|
||||
times when they are off line. Users are bad enough in this respect. It is
|
||||
also useful for people wishing to contact hubs that are non-CM with mail
|
||||
for a downlink, and for people wishing to file request from a node that is
|
||||
not CM. There is no need for systems that are only online in zone mail hour
|
||||
to adopt this flag; also, there is no need for CM systems to adopt this
|
||||
flag.
|
||||
|
||||
Contacting the Author
|
||||
---------------------
|
||||
|
||||
My board is now online continuously, except for periods of down time during
|
||||
| which the board is maintained (few and far between now that Linux is used).
|
||||
Netmail contact is therefore possible at any time. I went CM because of a
|
||||
certain number of nodes calling at the wrong times, and also users. Users
|
||||
weren't too bad, but I dislike 0600 am wake-up calls, repeated at regular
|
||||
three-minute intervals for an hour, by mailers, rather intensely :-)
|
||||
|
||||
End of document.
|
||||
</PRE>
|
||||
|
||||
<A HREF="index.htm"><IMG SRC="../images/b_arrow.gif" ALT="Back" Border="0" width="33" height="35"> Go Back</A>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
Reference in New Issue
Block a user