home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.wwiv.com
/
ftp.wwiv.com.zip
/
ftp.wwiv.com
/
pub
/
UPCHECK
/
PCBCHK10.ZIP
/
PCBCHECK.DOC
< prev
next >
Wrap
Text File
|
1993-11-13
|
21KB
|
407 lines
PCBCheck Advanced Upload Checker
v.1.0 Nov 14, 1993
Jim Dahl
1. Mission and conception
I created PCBCheck (mainly for in-house use) when I was first exposed to
the difficulty in setting up other PCBoard upload checkers. Creating a
SETUP.CNF file and putting 50 seperate pieces of information on different
lines in certain formats is not a nice way to set up a program! In fact,
any program other than a BBS utility, would fail miserably if it required
such an intricate setup. BBS utilities do not need to be so complicated to
setup!
This is kind of a 'test-the-waters' release. There are some major upgrades
planned, which will take place if there's ANY demand. Feel free to write
me with suggestions and especially bug reports should there be any! Read
the problems/future enhancements section for some information on the
first planned upgrade. Note that though I have limited opportunity to test
this, I am generally opposed to releasing wide-area betas, so if you'd like,
think of this as a beta <g>. (Rest assured, though, that all problems will
be promptly and accurately addressed).
2. Features
As mentioned above, I believe the main feature of the program is its
easy-to-use SETUP program! I also think PCBCheck has kind of a cool,
modern PCBoard 15.0 look that others lack. Specific functions are:
* Archive support is through PCC (archive information) files,
NOT internal code, so new archivers can be added with a simple
100 byte file! (I would tell you how to make your own, but I
may just change it, and I don't want to be responsible! Should
you ever need new PCC's, just send me the archiver and I'll make
it!)
* Easy-to-use SETUP program which dynamically adjusts its menus
based on your system setup, selected options, installed
archivers, etc... No wasted menu space, asks only those questions
which affect you!
* PCBCheck features advanced output (in graphics mode) which dynamically
alters itself based on the type of upload, tests to be performed,
etc... A few examples: When testing a GIF, a slot for resolution
appears in the space normally used by the 'testing embedded
archives' slot; when PCBCheck replaces the description with the
FILE_ID.DIZ the change is reflected on the line of the description
displayed on the screen, etc.... There will never be prompts which
are irrelevant to the current upload displayed.
* Integrated GIF integrity checking and resolution reporting (no more
third party utilities! Though of course, you don't have the FULL
flexibility of third party utilities, so anything can be disabled
at your convenience!)
* Flexible virus scanning (you specify your favorite third-party
virus scanning utility, give SETUP the information about it, and
PCBCheck can use it! McAfee's SCAN is supported by default with
no real knowledge required)
* Hack report checking. PCBCheck can currently read hack report IDX
and test uploads against the list of hacks, trojans, and pirated
software. (Note- I haven't seen a new hack report since Sept.,
not sure what's up. But it's still quite useful even with just
the indices through September!)
* Reason for failure is noted in the archive description, before the
failed upload is moved to the private upload directory. The
reason is noted on its own line, so you should easily be able to
remove the line after reading it and deciding for yourself whether
you want to keep or kill the file. It's all right there, easy to
read from PCBFiler!
Of course, it does all the usual stuff, date checking, integrity checking,
embedded archives, etc...
3. Installation
PCBCheck should be installed in it's own directory, preferably close to
the root directory. DOS places limits on command and parameter lengths, and
PCBCheck can often come dangerously close to those limits while executing
complex archive/dearchive commands! Putting PCBCheck in a directory
directly off the root directory gives it more room to play with by
shortening the paths to PCBCheck data files.
The installation directory should not contain any files named HACK????.IDX,
except for actual hack reports, as PCBCheck will attempt to read them as
hack reports and probably crash.
When PCBoard wants an upload checked, it calls PCBTEST.BAT in its home
directory. You should modify PCBTEST.BAT to call PCBCheck, in the following
manner:
@ECHO OFF
D:\PCBCHECK\PCBCHECK.EXE %1 %2 %3 [port]
Of course, you should replace D:\PCBCHECK with that actual path to
PCBCHECK.EXE. The parameters %1 %2 %3 simply indicate that the batch file
should give PCBCheck the same three parameters passed by PCBoard 15.0. It
is VERY important that you call PCBCheck by including the path with the
executable as above, not by changing directories then running the executable!
PCBCheck will find it's data files when the current directory is the PCBoard
directory, but PCBoard will not be able to find its data files should the
current directory be the PCBCheck directory!
The optional parameter [port] allows you to specify an address for
PCBCheck to use for serial output. The default (nothing specified) is for
PCBCheck to read PCBoard's PCBOARD.DAT to determine the COM port number, and
then the COM port number is converted to its standard address. Particularly
if you use COM3 or COM4 the address may not be the default.
Change directories to the PCBCheck directory you created earlier and run
SETUP. This document explains the various features of SETUP later.
4. SETUP
4.1 Archive support
The archive support page includes three fields and an information box.
The first field is a simple yes/no question whether or not you want to
accept uploads in that format. SETUP creates an archive support page for
each PCC file it finds, so you may choose any combination of archivers for
which you have PCC files.
The second and third fields are user-specific parameters you want passed
the archiver. These fields should be blank for all people and all archivers,
but are included just in case (i.e. PKZip 2.04c had DPMI problems, so some
users may have needed to specify -) to disable DPMI). DO NOT put the
parameters for archiving/dearchiving, etc... in these fields, that
information is in the PCC file. These fields are for hardware-specific
parameters which are required to make the archiver/dearchiver do ANYTHING on
your machine.
The information box scans the path for the archiver/dearchiver and reports
the presence of each. If the archiver and dearchiver use the same executable
it notes that as well. If SETUP reports that your archiver or dearchiver are
NOT in the path, and you have specified that you wish to support that format,
you put them in the path!
4.2 Non-archive support
The non-archive support screen allows you to enter the extensions of
acceptable non-archives. You do not need to fill all or any of the fields,
though you cannot specify more than ten acceptable non-archive extensions.
Special files which have internal PCBCheck support, such as GIF files, must
still be specified here to clear the detection phase of PCBCheck! Self-
extracting archives in the form of EXE files are the only exceptions. They
are considered archives, so if the archiver support is enabled on the
appropriate page and self-extracting support is enabled on the miscellaneous
page, PCBCheck will accept self-extracting archives as EXEs. If you specify
EXE here, you will be telling PCBCheck to accept all executables.
4.3 Miscellaneous pages
Note that not all fields will appear in all situations. For example, if
you have specified that you don't want to scan for viruses, SETUP will not
bother to ask you what virus checker you want to use, etc.....
4.3.1 Minimum age of uploads
You can use this field to specify a minimum age for uploads. The age
should be entered as an integer (no decimals!) between 0 and 99. The
integer represents the maximum number of 'months old' that you want
accepted. PCBCheck will base the age on the newest file in the archive.
If you do not wish to have age checking, specify 0 and PCBCheck will accept
any archive, no matter how old (note that SETUP replaces 0 with a blank
field).
4.3.2 Allow self-extracting uploads
This parameter tells PCBCheck that if an EXE file is uploaded, and EXEs
are not specified as allowable non-archives, to check if the EXE is really
a self-extracting archive. You must specify an archive type as acceptable
in the archive pages for PCBCheck to allow self-extracting archives in that
format.
4.3.3 Replace comment
Answer this question (yes/no) if you want PCBCheck to replace the archive
comment. (Many archivers allow a 'comment' to be inserted into the archive,
then usually display the comment while dearchiving). Specifying 'yes'
creates another field, 'File with which to replace comment'.
4.3.4 File with which to replace comment
Enter a filename of the file you wish to use to replace the comment.
WARNING! Archivers allow different lengths of comments. Attempting to
insert a comment which is too large will have unpredictable results
(dependent on the archiver, really, I guess). Note that if you leave this
field blank or as its default, setup will insert 'NUL'. That means to
replace the comment with nothing, or to clear the comment (which is what
I recommend). You must create the file yourself in the PCBCheck directory.
4.3.5 Enable virus scanning
Answer this question (yes/no) to tell PCBCheck whether or not it should
scan the upload for viruses. Specifying 'yes' creates three new virus
information fields. (The defaults for all 'virus scanning' fields work
with McAfee's SCAN).
4.3.6 Filename of virus scanner
Fill this field with the name of the executable of the virus scanner you
want PCBCheck to use. The virus scanner need not be in the PCBCheck
directory, only in the path. (Do not add a path name in this field!) SETUP
will not warn you if the virus scanner does not exist in the path, so you
must make sure it does!
4.3.7 Error level which indicates virus infection
Enter an integer which corresponds to the errorlevel the virus scanner
will return if it finds a virus.
4.3.8 Special parameters to virus checker
Unlike with archive support, PCBCheck does not know the behavior of any
virus checking software (except, of course, for the defaults, which are
configured for McAfee's SCAN). Therefore, you must enter any necessary
parameters in this field (except for the filename, which PCBCheck will
supply). Suggested parameters include: don't scan memory, don't scan the
boot sector, suppress all output (very important, unless you want the
local display corrupted!)
4.3.9 Add number of files to description
Answer this question (yes/no) to indicate whether or not you want PCBCheck
to add a line to the description which reports the number of files in the
archive. (I've always thought this was a stupid/useless feature, but
everyone else does it, and it's easy to implement, so I included it).
Note- this applies only to archives!
4.3.10 Add date to description
Answer this question (yes/no) to indicate whether or not you want PCBCheck
to add a line to the description which reports the newest file date in the
archive. (Note that if you specify 'yes' to 'Add number of files to
description' as well as this, they will be put on the same line).
Note- this applies only to archives!
4.3.11 Add GIF resolution to description
Answer this question (yes/no) to indicate) whether or not you want PCBCheck
to add a line to the description which reports the resolution of GIF files.
(If GIFs are not specified as acceptable non-archive uploads, this field has
no effect, since the GIF will be 'failed').
4.3.12 Add file to archive
No one has any good reason for using this feature. Not only is it
obnoxious to insert BBS ads into all incoming archives, it also violates
the integrity, or authenticity verification codes for many author-
distributed archives. It is included, of course, for completeness.
Answering 'Y' to this creates a new field, which file do you want to add.
4.3.13 Name of file to add to archive
This is where you specify the file you wish to add to the archive, if
you specified you would like to. The file should be in the PCBCheck
directory, as that's the only place it will look for it.
4.3.14 Check for keywords in description
If you respond 'Y' to this, PCBCheck will scan the file (a short sample
is included) KEYWORDS.PCB for words and check for the presence of them in
the description. If any of the words are found anywhere in the description
(or the FILE_ID if it replaced the description), the file will fail. Note
that you should follow the format prescribed in the sample, enclosing
words in quotes (so spaces can be discerned). Also, please make sure to
enter words correctly (i.e. with spaces on either side, otherwise if
PCBCheck is set to reject 'SHIT' for example, it will reject 'MATSUSHITA' or
other similiar situations. A better way to do it is to specify that
PCBCheck should reject ' SHIT '.
4.3.15 Compare upload name to Hack Report
If you specify 'Y', PCBCheck will scan the PCBCheck directory for
HACK????.IDX files and read in the hack reports. If any of the hack reports
diagnose the file as a potential trojan, pirated software, etc... it will
reject the file and note the reason for rejection in the description. Note
that the hack report provides only warnings, not confirmations. If the
hack report fails a file, you should examine the hack report for more
information, and then test the file yourself to see if it really is
commercial software, a trojan, a hack, etc... Because the hack report
relies only on names, false alarms are quite possible!
The best place to obtain new copies of the hack report is off the SimTel
site on Internet, or its mirrors (i.e. OAK.OAKLAND.EDU). There are also
alternate distribution methods listed in the hack report documentation. A
sample hack report is included with PCBCheck.
5. Problems/future enhancements/communications routines
Though of course there are no known problems, the communications are
frankly insufficient. As the mission statement makes clear, this was
originally written for in-house use. I therefore decided that since I knew
I was running on normal (8250/16450/16550, standard ports) hardware, and that
I was doing only sending (I don't really care what the user types while
PCBCheck is running) that I would just use standard polled communications.
It actually does work quite well, and should work for the vast majority of
users. You can, in fact, give non-standard addresses (as described in
SETUP) as well. If there is demand, though (which I assume there will be)
I will add FOSSIL support as well as interrupt-driven sending (should work
a little bit better for you multitaskers, though I run this under Windows
and OS/2 here!)
6. Multinode/Multitasking etc...
Well, this is just about the same as running any other program on a
multinode system. It does open all files in share mode, and does construct
the 'temp directory' name based on the current node, so there should be no
conflict. Unfortunately, I don't personally have a multinode system, so
haven't really been able to test this. I assume I will end up improving
multinode ability (should there be any problems) when I rewrite the comm.
routines.
This should work just fine under multitasking OS's or shells. I
developed it and tested it exclusively on OS/2 2.1, so I *know* it works
there. I've also run it under Windows for the BBS. I can't think of any
reason it wouldn't work with DesqView then, except of course that it
doesn't give up timeslices (but really, when I'm writing a DOS program I
don't feel that it's my responsibility to give up timeslices, I think the
multitasking OS which multitasks DOS programs should do that!)
7. Registration/Shareware
As I'm sure most Sysops know, shareware is not a type of program but a
distribution method. If you continue to use my product you are obligated,
morally and legally, to pay me for it. Therefore, I don't include ANY
annoying nag, disable any cool features, or even make promises of neat
new features or extra utility or maintenance programs if you register. I
want to give you the full program so you know what you're really dealing
with, and if you don't think it's worth paying for (which is fine with me)
I expect you to quit using it.
Since there is nowhere to enter a key, nor is there a special 'registered'
version or anything, one registration does, of course, entitle you to use
all future releases.
Registration is currently set at $15 (very reasonable, I think,
considering the time that went into this! The price WILL go up, I can
almost guarantee, once I've implemented my dreamed-of changes!)
8. Errors
Should PCBCheck itself fail in some way, it will automatically pass the
file and report to the user the error code number. It will also create a
file named PCBCHECK.LOG in the PCBCHECK directory which will note the error.
Many of the potential errors are actual internal program errors which you
can do nothing about (other than report to me), but a few are under your
control. Here's a general rundown:
-11 Can't open the file to test
-12 Can't read from the (already open) file to test
-14 Cannot open the FILE_ID.DIZ from the archive
-15 Cannot open description file (as passed by PCBoard) for write
-16 Cannot open description file (as passed by PCBoard) for write
-17 Cannot write to (already open) description file
-18 Cannot open/write to description file
-19 Cannot open/read PCBCHECK.CFG (created by setup)
-20 Cannot open/read a PCC file
-21 Dearchive not successful!
-22 Internal processing error, bad news!
-23 Error reading PCC file
-25 Can't find archiver/dearchiver in path!
-26 Command is too long
-27 Cannot open/read description file
-28 Cannot open/read from keys file
Obviously, most of them deal with file access problems, which could be
related to access priveleges or something similiar on your system. The most
likely user-addressable problems are -25 (can't find dearchiver/archiver in
path) and -26 (command too long). The proper way to deal with a -26 is, as
described earlier, relocate the PCBCheck directory as close to the root as
possible to make the commands shorter. Make sure that all designated
acceptable archivers are in the path to fix a -25. Please report any other
error number (or even any of these, if you can't fix it) to me.
9. Legal stuff
All warranties are disclaimed, including damage to hardware and/or
software from use of this product. In no event will I be liable to you
for any damages, including lost profits, lost savings or other
incidental or consequential damages arising out of your use or inability
to use the program, or any other claim by any other party.
10. Where to complain/how to compliment the author
I can be reached at:
City Lites BBS (701) 775-1143 (four high-speed lines) as Jim Dahl
Legal Eagle BBS (218) 773-6011 (where I like to test PCBCheck)
Internet dahl@cs.UND.NoDak.edu
AOL I have an account JamesDahl, not sure how long I'll keep
it though, so you're better off using InterNet mail
I also have an account on Software Creations if you ever call there,
though I'm not on it very often....
And of course, write to me at:
Jim Dahl
RE: PCBCheck <-- IMPORTANT!
2236 Springbrook Ct.
Grand Forks, ND 58201
The RE: line is very important! It can read 'Author of PCBCheck' or
whatever you'd like, but PLEASE mention PCBCheck IN the address!! Doing
so will cause me to put your letter with my software support mail, and not
with my bills or hate mail, and it will therefore get read!