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 >
Text File  |  1993-11-13  |  21KB  |  407 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.                        PCBCheck Advanced Upload Checker
  7.                               v.1.0  Nov 14, 1993  
  8.                                     Jim Dahl
  9.  
  10.  
  11.  
  12.  
  13. 1.  Mission and conception
  14.  
  15.   I created PCBCheck (mainly for in-house use) when I was first exposed to
  16. the difficulty in setting up other PCBoard upload checkers.  Creating a
  17. SETUP.CNF file and putting 50 seperate pieces of information on different
  18. lines in certain formats is not a nice way to set up a program!  In fact,
  19. any program other than a BBS utility, would fail miserably if it required
  20. such an intricate setup.  BBS utilities do not need to be so complicated to
  21. setup!
  22.   This is kind of a 'test-the-waters' release.  There are some major upgrades
  23. planned, which will take place if there's ANY demand.  Feel free to write
  24. me with suggestions and especially bug reports should there be any!  Read
  25. the problems/future enhancements section for some information on the
  26. first planned upgrade.  Note that though I have limited opportunity to test
  27. this, I am generally opposed to releasing wide-area betas, so if you'd like,
  28. think of this as a beta <g>.  (Rest assured, though, that all problems will
  29. be promptly and accurately addressed).
  30.  
  31. 2.  Features
  32.  
  33.   As mentioned above, I believe the main feature of the program is its
  34. easy-to-use SETUP program!  I also think PCBCheck has kind of a cool,
  35. modern PCBoard 15.0 look that others lack.  Specific functions are:
  36.  
  37.     *  Archive support is through PCC (archive information) files,
  38.          NOT internal code, so new archivers can be added with a simple
  39.          100 byte file!  (I would tell you how to make your own, but I
  40.          may just change it, and I don't want to be responsible!  Should
  41.          you ever need new PCC's, just send me the archiver and I'll make
  42.          it!)
  43.     *  Easy-to-use SETUP program which dynamically adjusts its menus
  44.          based on your system setup, selected options, installed
  45.          archivers, etc...  No wasted menu space, asks only those questions
  46.          which affect you!
  47.     *  PCBCheck features advanced output (in graphics mode) which dynamically
  48.          alters itself based on the type of upload, tests to be performed,
  49.          etc...  A few examples:  When testing a GIF, a slot for resolution
  50.          appears in the space normally used by the 'testing embedded
  51.          archives' slot; when PCBCheck replaces the description with the
  52.          FILE_ID.DIZ the change is reflected on the line of the description
  53.          displayed on the screen, etc....  There will never be prompts which
  54.          are irrelevant to the current upload displayed.
  55.     *  Integrated GIF integrity checking and resolution reporting (no more 
  56.          third party utilities!  Though of course, you don't have the FULL
  57.          flexibility of third party utilities, so anything can be disabled
  58.          at your convenience!)
  59.     *  Flexible virus scanning (you specify your favorite third-party
  60.          virus scanning utility, give SETUP the information about it, and
  61.          PCBCheck can use it!  McAfee's SCAN is supported by default with
  62.          no real knowledge required)
  63.     *  Hack report checking.  PCBCheck can currently read hack report IDX
  64.          and test uploads against the list of hacks, trojans, and pirated
  65.          software.  (Note- I haven't seen a new hack report since Sept.,
  66.          not sure what's up.  But it's still quite useful even with just
  67.          the indices through September!)
  68.     *  Reason for failure is noted in the archive description, before the
  69.          failed upload is moved to the private upload directory.  The
  70.          reason is noted on its own line, so you should easily be able to
  71.          remove the line after reading it and deciding for yourself whether
  72.          you want to keep or kill the file.  It's all right there, easy to
  73.          read from PCBFiler!
  74.  
  75.   Of course, it does all the usual stuff, date checking, integrity checking,
  76. embedded archives, etc...
  77.  
  78. 3.  Installation
  79.  
  80.   PCBCheck should be installed in it's own directory, preferably close to
  81. the root directory.  DOS places limits on command and parameter lengths, and
  82. PCBCheck can often come dangerously close to those limits while executing
  83. complex archive/dearchive commands!  Putting PCBCheck in a directory
  84. directly off the root directory gives it more room to play with by
  85. shortening the paths to PCBCheck data files.
  86.  
  87.   The installation directory should not contain any files named HACK????.IDX,
  88. except for actual hack reports, as PCBCheck will attempt to read them as 
  89. hack reports and probably crash.  
  90.  
  91.   When PCBoard wants an upload checked, it calls PCBTEST.BAT in its home
  92. directory.  You should modify PCBTEST.BAT to call PCBCheck, in the following
  93. manner:
  94.  
  95. @ECHO OFF
  96. D:\PCBCHECK\PCBCHECK.EXE %1 %2 %3 [port]
  97.  
  98.   Of course, you should replace D:\PCBCHECK with that actual path to
  99. PCBCHECK.EXE.  The parameters %1 %2 %3 simply indicate that the batch file
  100. should give PCBCheck the same three parameters passed by PCBoard 15.0.  It
  101. is VERY important that you call PCBCheck by including the path with the
  102. executable as above, not by changing directories then running the executable!
  103. PCBCheck will find it's data files when the current directory is the PCBoard
  104. directory, but PCBoard will not be able to find its data files should the
  105. current directory be the PCBCheck directory!
  106.  
  107.   The optional parameter [port] allows you to specify an address for
  108. PCBCheck to use for serial output.  The default (nothing specified) is for
  109. PCBCheck to read PCBoard's PCBOARD.DAT to determine the COM port number, and
  110. then the COM port number is converted to its standard address.  Particularly
  111. if you use COM3 or COM4 the address may not be the default.
  112.  
  113.   Change directories to the PCBCheck directory you created earlier and run
  114. SETUP.  This document explains the various features of SETUP later.
  115.  
  116. 4.  SETUP
  117.  
  118.   4.1 Archive support
  119.  
  120.   The archive support page includes three fields and an information box.
  121. The first field is a simple yes/no question whether or not you want to
  122. accept uploads in that format.  SETUP creates an archive support page for
  123. each PCC file it finds, so you may choose any combination of archivers for
  124. which you have PCC files.
  125.  
  126.   The second and third fields are user-specific parameters you want passed
  127. the archiver.  These fields should be blank for all people and all archivers,
  128. but are included just in case (i.e. PKZip 2.04c had DPMI problems, so some
  129. users may have needed to specify -) to disable DPMI).  DO NOT put the
  130. parameters for archiving/dearchiving, etc... in these fields, that 
  131. information is in the PCC file.  These fields are for hardware-specific
  132. parameters which are required to make the archiver/dearchiver do ANYTHING on
  133. your machine.
  134.  
  135.   The information box scans the path for the archiver/dearchiver and reports
  136. the presence of each.  If the archiver and dearchiver use the same executable
  137. it notes that as well.  If SETUP reports that your archiver or dearchiver are
  138. NOT in the path, and you have specified that you wish to support that format,
  139. you put them in the path!
  140.  
  141.   4.2  Non-archive support
  142.  
  143.   The non-archive support screen allows you to enter the extensions of
  144. acceptable non-archives.  You do not need to fill all or any of the fields,
  145. though you cannot specify more than ten acceptable non-archive extensions.
  146.  
  147.   Special files which have internal PCBCheck support, such as GIF files, must
  148. still be specified here to clear the detection phase of PCBCheck!  Self-
  149. extracting archives in the form of EXE files are the only exceptions.  They
  150. are considered archives, so if the archiver support is enabled on the
  151. appropriate page and self-extracting support is enabled on the miscellaneous
  152. page, PCBCheck will accept self-extracting archives as EXEs.  If you specify
  153. EXE here, you will be telling PCBCheck to accept all executables.
  154.  
  155.   4.3  Miscellaneous pages
  156.  
  157.   Note that not all fields will appear in all situations.  For example, if
  158. you have specified that you don't want to scan for viruses, SETUP will not
  159. bother to ask you what virus checker you want to use, etc.....
  160.  
  161.     4.3.1  Minimum age of uploads
  162.  
  163.   You can use this field to specify a minimum age for uploads.  The age
  164. should be entered as an integer (no decimals!) between 0 and 99.  The 
  165. integer represents the maximum number of 'months old' that you want
  166. accepted.  PCBCheck will base the age on the newest file in the archive.
  167. If you do not wish to have age checking, specify 0 and PCBCheck will accept
  168. any archive, no matter how old (note that SETUP replaces 0 with a blank
  169. field).
  170.  
  171.     4.3.2  Allow self-extracting uploads
  172.  
  173.   This parameter tells PCBCheck that if an EXE file is uploaded, and EXEs
  174. are not specified as allowable non-archives, to check if the EXE is really
  175. a self-extracting archive.  You must specify an archive type as acceptable
  176. in the archive pages for PCBCheck to allow self-extracting archives in that
  177. format.
  178.  
  179.     4.3.3  Replace comment
  180.  
  181.   Answer this question (yes/no) if you want PCBCheck to replace the archive
  182. comment.  (Many archivers allow a 'comment' to be inserted into the archive,
  183. then usually display the comment while dearchiving).  Specifying 'yes'
  184. creates another field, 'File with which to replace comment'.
  185.  
  186.     4.3.4  File with which to replace comment
  187.  
  188.   Enter a filename of the file you wish to use to replace the comment.
  189. WARNING!  Archivers allow different lengths of comments.  Attempting to
  190. insert a comment which is too large will have unpredictable results
  191. (dependent on the archiver, really, I guess).  Note that if you leave this
  192. field blank or as its default, setup will insert 'NUL'.  That means to
  193. replace the comment with nothing, or to clear the comment (which is what
  194. I recommend).  You must create the file yourself in the PCBCheck directory.
  195.  
  196.     4.3.5  Enable virus scanning 
  197.  
  198.   Answer this question (yes/no) to tell PCBCheck whether or not it should
  199. scan the upload for viruses.  Specifying 'yes' creates three new virus
  200. information fields.  (The defaults for all 'virus scanning' fields work
  201. with McAfee's SCAN).  
  202.  
  203.     4.3.6  Filename of virus scanner
  204.  
  205.   Fill this field with the name of the executable of the virus scanner you
  206. want PCBCheck to use.  The virus scanner need not be in the PCBCheck
  207. directory, only in the path.  (Do not add a path name in this field!)  SETUP
  208. will not warn you if the virus scanner does not exist in the path, so you
  209. must make sure it does!
  210.  
  211.     4.3.7  Error level which indicates virus infection
  212.  
  213.   Enter an integer which corresponds to the errorlevel the virus scanner
  214. will return if it finds a virus.
  215.  
  216.     4.3.8  Special parameters to virus checker
  217.  
  218.   Unlike with archive support, PCBCheck does not know the behavior of any
  219. virus checking software (except, of course, for the defaults, which are
  220. configured for McAfee's SCAN).  Therefore, you must enter any necessary
  221. parameters in this field (except for the filename, which PCBCheck will
  222. supply).  Suggested parameters include:  don't scan memory, don't scan the
  223. boot sector, suppress all output (very important, unless you want the
  224. local display corrupted!)
  225.  
  226.     4.3.9  Add number of files to description
  227.  
  228.   Answer this question (yes/no) to indicate whether or not you want PCBCheck
  229. to add a line to the description which reports the number of files in the
  230. archive.  (I've always thought this was a stupid/useless feature, but
  231. everyone else does it, and it's easy to implement, so I included it).
  232. Note- this applies only to archives!
  233.  
  234.     4.3.10  Add date to description
  235.  
  236.   Answer this question (yes/no) to indicate whether or not you want PCBCheck
  237. to add a line to the description which reports the newest file date in the
  238. archive.  (Note that if you specify 'yes' to 'Add number of files to
  239. description' as well as this, they will be put on the same line).
  240. Note- this applies only to archives!
  241.  
  242.     4.3.11  Add GIF resolution to description
  243.  
  244.   Answer this question (yes/no) to indicate) whether or not you want PCBCheck
  245. to add a line to the description which reports the resolution of GIF files.
  246. (If GIFs are not specified as acceptable non-archive uploads, this field has
  247. no effect, since the GIF will be 'failed').
  248.  
  249.     4.3.12  Add file to archive
  250.  
  251.   No one has any good reason for using this feature.  Not only is it
  252. obnoxious to insert BBS ads into all incoming archives, it also violates
  253. the integrity, or authenticity verification codes for many author-
  254. distributed archives.  It is included, of course, for completeness.
  255. Answering 'Y' to this creates a new field, which file do you want to add.
  256.  
  257.     4.3.13  Name of file to add to archive
  258.  
  259.   This is where you specify the file you wish to add to the archive, if
  260. you specified you would like to.  The file should be in the PCBCheck
  261. directory, as that's the only place it will look for it.
  262.  
  263.     4.3.14  Check for keywords in description
  264.  
  265.   If you respond 'Y' to this, PCBCheck will scan the file (a short sample
  266. is included) KEYWORDS.PCB for words and check for the presence of them in
  267. the description.  If any of the words are found anywhere in the description
  268. (or the FILE_ID if it replaced the description), the file will fail.  Note
  269. that you should follow the format prescribed in the sample, enclosing
  270. words in quotes (so spaces can be discerned).  Also, please make sure to
  271. enter words correctly (i.e. with spaces on either side, otherwise if
  272. PCBCheck is set to reject 'SHIT' for example, it will reject 'MATSUSHITA' or
  273. other similiar situations.  A better way to do it is to specify that
  274. PCBCheck should reject ' SHIT '.
  275.  
  276.     4.3.15  Compare upload name to Hack Report
  277.  
  278.   If you specify 'Y', PCBCheck will scan the PCBCheck directory for
  279. HACK????.IDX files and read in the hack reports.  If any of the hack reports
  280. diagnose the file as a potential trojan, pirated software, etc... it will
  281. reject the file and note the reason for rejection in the description.  Note
  282. that the hack report provides only warnings, not confirmations.  If the
  283. hack report fails a file, you should examine the hack report for more
  284. information, and then test the file yourself to see if it really is 
  285. commercial software, a trojan, a hack, etc...  Because the hack report
  286. relies only on names, false alarms are quite possible!
  287.   The best place to obtain new copies of the hack report is off the SimTel
  288. site on Internet, or its mirrors (i.e. OAK.OAKLAND.EDU).  There are also  
  289. alternate distribution methods listed in the hack report documentation.  A
  290. sample hack report is included with PCBCheck.
  291.  
  292. 5.  Problems/future enhancements/communications routines
  293.  
  294.   Though of course there are no known problems, the communications are
  295. frankly insufficient.  As the mission statement makes clear, this was 
  296. originally written for in-house use.  I therefore decided that since I knew 
  297. I was running on normal (8250/16450/16550, standard ports) hardware, and that 
  298. I was doing only sending (I don't really care what the user types while
  299. PCBCheck is running) that I would just use standard polled communications.
  300. It actually does work quite well, and should work for the vast majority of
  301. users.  You can, in fact, give non-standard addresses (as described in
  302. SETUP) as well.  If there is demand, though (which I assume there will be)
  303. I will add FOSSIL support as well as interrupt-driven sending (should work
  304. a little bit better for you multitaskers, though I run this under Windows
  305. and OS/2 here!)
  306.  
  307. 6.  Multinode/Multitasking etc...
  308.  
  309.   Well, this is just about the same as running any other program on a 
  310. multinode system.  It does open all files in share mode, and does construct
  311. the 'temp directory' name based on the current node, so there should be no
  312. conflict.  Unfortunately, I don't personally have a multinode system, so
  313. haven't really been able to test this.  I assume I will end up improving
  314. multinode ability (should there be any problems) when I rewrite the comm.
  315. routines.
  316.   This should work just fine under multitasking OS's or shells.  I
  317. developed it and tested it exclusively on OS/2 2.1, so I *know* it works
  318. there.  I've also run it under Windows for the BBS.  I can't think of any
  319. reason it wouldn't work with DesqView then, except of course that it
  320. doesn't give up timeslices (but really, when I'm writing a DOS program I
  321. don't feel that it's my responsibility to give up timeslices, I think the
  322. multitasking OS which multitasks DOS programs should do that!)
  323.     
  324. 7.  Registration/Shareware
  325.  
  326.   As I'm sure most Sysops know, shareware is not a type of program but a
  327. distribution method.  If you continue to use my product you are obligated,
  328. morally and legally, to pay me for it.  Therefore, I don't include ANY
  329. annoying nag, disable any cool features, or even make promises of neat
  330. new features or extra utility or maintenance programs if you register.  I
  331. want to give you the full program so you know what you're really dealing
  332. with, and if you don't think it's worth paying for (which is fine with me)
  333. I expect you to quit using it.  
  334.   Since there is nowhere to enter a key, nor is there a special 'registered' 
  335. version or anything, one registration does, of course, entitle you to use
  336. all future releases.  
  337.   Registration is currently set at $15 (very reasonable, I think,
  338. considering the time that went into this!  The price WILL go up, I can
  339. almost guarantee, once I've implemented my dreamed-of changes!)
  340.  
  341. 8.  Errors
  342.  
  343.   Should PCBCheck itself fail in some way, it will automatically pass the
  344. file and report to the user the error code number.  It will also create a
  345. file named PCBCHECK.LOG in the PCBCHECK directory which will note the error.
  346. Many of the potential errors are actual internal program errors which you
  347. can do nothing about (other than report to me), but a few are under your
  348. control.  Here's a general rundown:
  349.  
  350.   -11    Can't open the file to test
  351.   -12    Can't read from the (already open) file to test
  352.   -14    Cannot open the FILE_ID.DIZ from the archive
  353.   -15    Cannot open description file (as passed by PCBoard) for write
  354.   -16    Cannot open description file (as passed by PCBoard) for write
  355.   -17    Cannot write to (already open) description file
  356.   -18    Cannot open/write to description file
  357.   -19    Cannot open/read PCBCHECK.CFG (created by setup)
  358.   -20    Cannot open/read a PCC file
  359.   -21    Dearchive not successful!
  360.   -22    Internal processing error, bad news!
  361.   -23    Error reading PCC file
  362.   -25    Can't find archiver/dearchiver in path!
  363.   -26    Command is too long
  364.   -27    Cannot open/read description file
  365.   -28    Cannot open/read from keys file
  366.  
  367.   Obviously, most of them deal with file access problems, which could be
  368. related to access priveleges or something similiar on your system.  The most
  369. likely user-addressable problems are -25 (can't find dearchiver/archiver in
  370. path) and -26 (command too long).  The proper way to deal with a -26 is, as
  371. described earlier, relocate the PCBCheck directory as close to the root as
  372. possible to make the commands shorter.  Make sure that all designated
  373. acceptable archivers are in the path to fix a -25.  Please report any other 
  374. error number (or even any of these, if you can't fix it) to me.
  375.  
  376. 9.  Legal stuff
  377.  
  378. All warranties are disclaimed, including damage to hardware and/or
  379. software from use of this product. In no event will I be liable to you
  380. for any damages, including lost profits, lost savings or other
  381. incidental or consequential damages arising out of your use or inability
  382. to use the program, or any other claim by any other party.
  383.  
  384. 10.  Where to complain/how to compliment the author
  385.  
  386.   I can be reached at:
  387.  
  388.     City Lites BBS  (701) 775-1143 (four high-speed lines) as Jim Dahl
  389.     Legal Eagle BBS (218) 773-6011 (where I like to test PCBCheck)
  390.     Internet        dahl@cs.UND.NoDak.edu
  391.     AOL             I have an account JamesDahl, not sure how long I'll keep
  392.                     it though, so you're better off using InterNet mail
  393.     I also have an account on Software Creations if you ever call there,
  394.     though I'm not on it very often....
  395.  
  396.   And of course, write to me at:
  397.  
  398.     Jim Dahl
  399.     RE: PCBCheck              <-- IMPORTANT!
  400.     2236 Springbrook Ct.
  401.     Grand Forks, ND 58201
  402.  
  403.   The RE: line is very important!  It can read 'Author of PCBCheck' or
  404. whatever you'd like, but PLEASE mention PCBCheck IN the address!!  Doing
  405. so will cause me to put your letter with my software support mail, and not
  406. with my bills or hate mail, and it will therefore get read!
  407.