home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 1
/
crawlyvol1.bin
/
bbs
/
mdiff103
/
maxidiff.doc
< prev
next >
Wrap
Text File
|
1993-08-31
|
17KB
|
415 lines
*** ** Maxi*DIFF 1.03<beta> by Erik Williams
** *** SunFox Productions, Ltd. <Raleigh, NC>
*** ** (c) Copyright, 1993. All rights reserved.
** *** "Jesus saves, Gretzky gets the rebound...SCORES!"
PRELIMINARY DOCUMENTATION
LAST MODIFIED: August 31st, 1993
FILES IN ARCHIVE:
MAXIDIFF.TOS => the executable
MAXIDIFF.CFG => config file...must be in Maxi*DIFF's directory!
MAXIDIFF.DOC => this documentation
Bill, for right now, let's keep Maxi*DIFF between us until I'm reasonably
sure the bugs are out of the programme. After I'm convinced that the most
hairy bugs are gone, then we can go for a hatch via AFDS (with the BBS
utilities I'm writing, I may ask for a file echo of my own...ASUNFOX...I
like the sound of that! ;)
INTRODUCTION:
Everyone who is in a Fidonet-style network knows the importance of the
nodelist...the whole network comes to its knees without this vital piece
of routing information. Most sysops probably think that the nodelist
comes into being by magical incantations, but it's really the result of
the hard work of the administrative nodes to keep everyone's nodelist
entry in order.
Hopefully, Maxi*DIFF will make this task a bit easier. While Maxi*DIFF
is still beta code, all of the essential functions are fully operational.
Things that are on the list of things to do include nodediff generation
as well as a much improved user interface...
This programme is really only meant for hosts and higher...the average
sysop won't have a need for Maxi*DIFF. In fact, anyone currently using
MakeDiff/ST (by Dave Thomas of Automagic) may use Maxi*DIFF as a direct
replacement.
This isn't a knock on MakeDiff/ST...it's a very fine programme in its
own right and I hope that Maxi*DIFF eventually comes close to MakeDiff
in terms of power and features (after all, MakeDiff is the standard I'm
using as a basis for my own work).
CONFIGURING THIS BUGGER:
Configuring Maxi*DIFF to do as you wish is relatively simple...MAXIDIFF.CFG
is pretty much free-format in terms of spacing...feel free to indent as you
wish...Maxi*DIFF's parser isn't fazed by block-style lines. In fact, I
highly encourage a block-format...it makes reading and fixing the config
file that much easier! A sample of this is the MAXIDIFF.CFG I have
included in this archive.
REQUIRED CONFIGURATION LINES:
There are only three keywords that must be in the config file for Maxi*DIFF
to work properly...LogFile, LogLevel, and NetMail.
LogFile <path and filename of log>
ex. LogFile g:\logs\maxidiff.log
LogFile is simply the path and filename that you wish the logging to
be written to. I use the standard Binkley logging format, so you can use
your main log or one of your choosing...either way is fine.
LogLevel <1|2>
ex. LogLevel 2
LogLevel specifies the verbosity of the logging...right now, there
isn't a whole lot of difference between levels 1 and 2, so I suggest
LogLevel 2 for a while...there will be more levels possible as more
features are added.
NetMail <path and file "stub" of your netmail HDR/MSG files>
ex. g:\netmail\netmail
This tells me where the message and header files for your netmail
base are...Maxi*DIFF will generate netmail notification when a segment
is produced. Generally, if you distribute the nodelist, Maxi*DIFF will
notify you of the CRC, SIZE, and NAME of the nodelist in netmail. If you
are a zone or lower, then it will generate the netmail for you and one
for the sysop of the system to whom you submit your nodelist segment
and will submit your segment via netmail file-attach.
CONFIGURING YOUR ADMINISTRATIVE ZONES
For each zone in which you are a host or higher, all of the information
to generate a nodelist/nodediff/segment will be contained in a block
configuration of the form Zone...EndZone.
There are two different ways of configuring these Zones depending on
what type of coordinator you are. If you are the generator of the nodelist
for an entire network, then your configuration will be of the "Distribution"
type. Anything else is of the "submittal" type (as you will generally
submit your segment to a higher coordinator).
I'll discuss each type and how it is utilised first, then give the
keywords that may be found within a Zone...EndZone block. In general, you
may have as many of these Zones as you wish (or more accurately, as memory
permits!)...know that for each zone, 7K will be used for the configuration
of the zone plus 128 bytes x the number of nodelist segment files in your
segment. This shouldn't break anyone with less than 25 networks to
administrate! ;) The list of administrative zones is now kept in a
linked-list (with a linked-list within a Zone block for the segments) which
will only consume as much memory as it needs rather than waste a lot of
memory on an array based structure. I will lose a bit of speed because
of the way a linked list must be traversed, but I will save a lot of
precious memory this way.
Only one other restriction is that the keywords must be capitalised
exactly or Maxi*DIFF won't recognise it.
THE DISTRIBUTION CONFIGURATION
The distribution configuration will be used by coordinators who run their
own networks...i.e. the International Coordinator of FidoNet, the Zone
Coordinator of AtariNet, and so forth. These are the people who generate
the full nodelist and distribute it down through the network below them.
A distribution configuration will be of the form:
Zone 17
Domain PerotNet
Coordinator Erik Williams
CoordAddress 17:1/0
CoordType Distribution
ProcessDay Friday
ProcessTimes 00:00:00 23:59:59
Header g:\turbo\bink\makediff\nl_text\head.txt
Copyright g:\turbo\bink\makediff\nl_text\c_write.txt
Trailer g:\turbo\bink\makediff\nl_text\tail.txt
Nodelist
Segment g:\turbo\bink\makediff\segments\zone17.seg
Segment g:\turbo\bink\makediff\segments\reg200.seg
Segment g:\turbo\bink\makediff\segments\reg300.seg
EndNodelist
Archiver f:\turbo\bink\whatarc\arc602.ttp
ArcLetter A
ArcParams a %s %s%s
ListName PEROLIST
DiffName PERODIFF
OutputPath g:\turbo\bink\makediff\master\
EndZone
It's highly recommended that you use all of these keywords to get the
full functionality out of Maxi*DIFF. You may omit the Header, Copyright,
and Trailer lines if you wish...leaving anything else out is likely to have
unexpected behaviour on the part of Maxi*DIFF! Make sure you have an
EndZone at the end of each zone...it's my way of telling that it is time
to start working on a configuring a new zone!
THE SUBMITTAL CONFIGURATION
A submittal configuration will be used by all other types of coordinators.
Action is the same no matter what type of coordinator you are, but here
are the coordinator types that are possible and the way they would be used
in a submittal configuration.
Host/Region => This is the most common...a host that sends a nodelist
segment up the network to the RC or ZC, respectively.
Zone => This is only useful for zone coordinators who are in a network
that is multi-zone and still submit a nodelist to a higher
power. FidoNet is a perfect example of this...the Z1C still
submits the Z1 nodelist segment to the IC.
The most important change from MakeDiff/ST is the handling of multiple
"hats". Suppose you are a Region and a Host in AtariNet. Under MakeDiff,
you'd have to run MakeDiff for your host segment, then again for your
regional segment. In Maxi*DIFF, pick the HIGHEST coordinator position
for your submittal configuration!
The reason for this is that Maxi*DIFF allows you to specify the order
in which your segment files are merged into a submittal nodelist segment
so all you have to do is just define your host segment where you want it
to be in the nodelist segment you are creating...and then just run
Maxi*DIFF once for your regional configuration!
A submittal configuration looks like this:
Zone 51
Domain AtariNet
Coordinator Erik Williams
CoordAddress 51:102/0
CoordType Host
Submit 51:1/0
ProcessDay Friday
ProcessTimes 00:00:00 23:59:59
Nodelist
Segment g:\turbo\bink\makediff\segments\host102.seg
EndNodelist
ListName ATAR102
OutputPath g:\turbo\bink\makediff\master\
EndZone
As you can see, the only real differences between the two types are that
the Header, Copyright, and Trailer lines are not present. You may define
them, but Maxi*DIFF will ignore them. Also, a submittal configuration at
the host level is likely to have only one segment file.
THE ZONE CONFIGURATION KEYWORDS
These need not be in any particular order, though the nodelist segments
should be kept together in a Nodelist...EndNodelist block.
Domain <eight character domain name>
ex. Domain PerotNet
The Domain keyword specifies your domain name...please limit it to
eight characters. You may capitalise as you please...when Maxi*DIFF
generates the netmail kludge lines, it'll change it to all lowercase as
needed.
Coordinator <your name>
ex. Coordinator Erik Williams
Coordinator Erik Williams, NC102
The Coordinator keyword allows you to personalise your netmails. The
only limit is 30 characters of any type.
CoordAddress <your administrative address>
ex. CoordAddress 51:102/0
CoordAddress is the address of your administrative node (which will
always be of the form zone:net/0. You need not specify the domain (as it
is already done) nor the point (it is assumed to be zero...I've never known
of a point that was a coordinator).
CoordType <Hub|Host|Region|Zone|Distribution>
ex. CoordType Distribution
The CoordType specifies the type of coordinator you are...anything
other than Distribution is assumed to be a submittal configuration.
Remember to pick your highest coordinator level when using a submittal
configuration!
(Hubs are supported, but I haven't known of a hub that submits their
own nodelist segment...but anything's possible!).
ProcessDay <Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday>
ex. ProcessDay Thursday
This should be obvious...maintain the capitalisation of the day as
I'm comparing it to a system-standard result string. :)
ProcessTimes <start> <end>
ex. ProcessTimes 17:00:00 17:05:00
This allows you to specify the time that a nodelist will be generated
accurate to within one second of executing Maxi*DIFF! This gives you a
great amount of flexibility. Be sure to use the hh:mm:ss format and use
*MILITARY* times (it makes the comparisons that much easier!).
Header <path and filename>
ex. Header g:\turbo\bink\makediff\nl_text\head.txt
The header file will be the first file included in the distribution
nodelist. Generally, this is used for announcements and topology reports.
All lines in this file should be comments and use the standard FidoNet
commenting conventions, i.e. ;A or ;S , as the first three characters
of the line!
Copyright <path and filename>
ex. Copyright g:\turbo\bink\makediff\nl_text\c_write.txt
The copyrights will be the second file included in the distribution
nodelist. Generally, this is used for copyright announcements. All lines
in this file should be comments and use the standard FidoNet commenting
conventions, i.e. ;A or ;S , as the first three characters of the line!
Trailer <path and filename>
ex. Copyright g:\turbo\bink\makediff\nl_text\c_write.txt
The copyrights will be the last file included in the distribution
nodelist. Generally, this is used for welcomes to the network, etc. All
lines in this file should be comments and use the standard FidoNet
commenting conventions!
Nodelist...EndNodelist
This is the most important part of the nodelist configuration...this
is where you will list your segments in the order you wish them to appear
in your nodelist!
ex. Nodelist
Segment g:\turbo\bink\makediff\segments\zone17.seg
Segment g:\turbo\bink\makediff\segments\reg200.seg
Segment g:\turbo\bink\makediff\segments\reg300.seg
EndNodelist
Within each Nodelist/EndNodelist pair, there will be one or more
Segment directives. Remember to make sure they are in the exact order
you wish them to appear in the nodelist!!!
Archiver <path and filename>
ex. Archiver f:\turbo\bink\whatarc\arc602.ttp
This is the complete path and filename for your archiving programme.
Archiver is only used in Distribution configurations...if it is present
in a submittal configuration, it will be ignored. Also, the Archiver is
an optional keyword...if you don't specify it, your nodelist will be
left in it's raw state!
ArcLetter <single CAPITAL character>
ex. ArcLetter A
The ArcLetter is the letter that will be placed in the first position
of the filename extension of your compressed nodelist. For example, say
Maxi*DIFF generates a nodelist named ATARLIST.239. When it gets
compressed (in this example, by ARC602), the resulting filename of the
compressed version will be ATARLIST.A39.
ArcParams <parameters and wildcards>
ex. ArcParams a %s %s%s
This is the trickiest bit of configuration in MAXIDIFF.CFG. In
general, the first parameter will be whatever command your archiver uses
to add to existing/create archives...in this example ARC602 simply uses
the a command. Following the command may be a list of optional modifiers
which may affect the compression.
Somewhere in the ArcParams string must be three %s substrings. The
first %s will be replaced with the path/filename of the resulting archive,
the second %s will be replaced with the output path (as specified in
OutputPath), and the third %s will be replaced with the filename of the
uncompressed nodelist.
The reason for this method is because of some archivers that want a
space between the second and third %s...in particular, the Quester LZH.
For Quester's LZH, I'd use an ArcParams string like "a %s %s %s".
Best suggestion is for you to play with it until it works the
way you wish. If you have more or less than three %s directives, then
I can guarantee a bus error will be in your future! :)
ListName <first eight characters of nodelist filename>
ex. ListName PEROLIST
This will be the name of your nodelist (or submittal segment) minus
the extension (which is generated by Maxi*DIFF). For a Distribution
configuration, the extension will be the Julian day that the nodelist is
created...for submissions, the extension will be SEG. It shouldn't matter
if the Listname is in all caps or not.
DiffName <first eight characters of nodediff filename>
ex. Listname PERODIFF
This will be the name of your nodelist difference file...the extension
will be the Julian day that it is created. This has no effect at the
moment, but nodediff creation will be supported in a future version.
OutputPath <path with trailing backslash
ex. OutputPath g:\turbo\bink\makediff\master\
The output path is where the final nodelist (or segment) will be
created...and when file archiving is available from Maxi*DIFF, the arced
version of the nodelist will also be here. I use this directory to
generate a RAW nodelist file (essentially, a nodelist without a header
line) so I can calculate the CRC of the file (the RAW file is deleted when
the final nodelist is completely generated).
FINAL COMMENTS:
That should about do it...admittedly, the code is still a bit rough, but
in weeks of testing, it's done the job here. It works on the TT030 and
should work on a Mega4STE.
Any comments/bug reports you may have, please let me know so I can fix them.
I'm usually in Fayetteville (NC) on the weekends, but I'll be back on Sunday
night round 2300 hours or so.
SunFox