home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 2 BBS
/
02-BBS.zip
/
sqfltro.zip
/
SQFILTER.DOC
< prev
next >
Wrap
Text File
|
1995-04-01
|
15KB
|
352 lines
SqFilter v1.25 - Message & file bases tools - (c) Raphaël Vanney, 04/95.
┌─────────────────────────────────────────────────────────┐
│ This program comes with no kind of warranty whatsoever. │
│ I do _not_ garantee that it will not delete each and │
│ every file on your hard disk (nor do I garantee that │
│ it will do that : it's not its purpose :-)) │
└─────────────────────────────────────────────────────────┘
I need your comments !
You may reach me, for bug reports or enhancements
requests, at the following addresses :
Fido : 2:320/215.9
e-mail : rvanney@ibm.net
Please include appropriate SqFilter.Cfg and .Log
files in your bug reports, along with a description
of what happens and how, etc...
╔═══════════════════════════════╗
║ Hey, guys, this is freeware ! ║
╚═══════════════════════════════╝
You are highly encouraged to distribute it widely !
╔═════════════════════════════════════════════════════════════╗
║ ┌─────────────────────────────────────────────────────────┐ ║
║ │ │ ║
║ │ Amis francophones : │ ║
║ │ ------------------- │ ║
║ │ │ ║
║ │ Cette «documentation» sera sans doute prochainement │ ║
║ │ traduite en français. D'ici là, il existe pour nous │ ║
║ │ un fichier CONFIG.FRA qui reprend le contenu de │ ║
║ │ SqFilter.Cfg, mais en français (toutes les informations │ ║
║ │ permettant de configurer SqFilter sont dans le fichier │ ║
║ │ de configuration, ici il n'y a que du baratin ;-) │ ║
║ │ │ ║
║ └─────────────────────────────────────────────────────────┘ ║
╚═════════════════════════════════════════════════════════════╝
Oh, yes :
"This product uses the JAM(mbp) API -
Copyright 1993 Joaquim Homrighausen, Andrew Milner, Mats Birch,
Mats Wallin. ALL RIGHTS RESERVED."
I- What is SqFilter
───────────────────
SqFilter was originally designed to help me not to miss messages that
could be of interest to me among the flow that reaches my point system
each day. It searches through designated message bases for strings and
places the messages that correspond to the searching criterias in a
destination message base.
One of the first usages people may have for SqFilter is to search for
messages addressed to them and put these messages in a particular
message base.
I recently added the statistics feature because I needed to check the
ability of my Squish base object to write messages. Furthermore, it's
not a big step when you scan a message base to gather statistics.
Then came the Allfix request processor, which was added because I was
not really happy with the AllFix program, and I thought this would be a
good step towards the file anouncement utility, which was added a few
days later.
To sum it up, SqFilter is :
. a message filter,
. an Allfix requests processor,
. a new files announcer,
. a files listing generator.
II- How to use SqFilter
───────────────────────
SqFilter should be run periodically (for instance each time you get new
mail). When run, SqFilter will read its configuration file, then do its
job as specified in the configuration file.
To run, SqFilter needs a file named SqFilter.Cfg in the directory where
SqFilter.Exe resides. It will create a file named SqFilter.Log in the
same directory, except if specifically asked otherwise using the LOG:
command line parameter.
The following optional command-line parameters are available :
Debug : displays & log a bunch of information. Implies
maximum log level.
ReScan : discard last-read information ; completely rescan
all messages bases.
Log1 : configures log level 1 (fine for normal use)
Log2 : " " " 2
Log3 : " " " 3
Log4 : " " " 4 (heavy duty log file)
Log:<file> : use <file> as a log file
<filename> : uses <filename> as a configuration file
III- How to configure SqFilter
──────────────────────────────
See the file SqFilter.Cfg.
IV- Compatibility issues, limitations
─────────────────────────────────────
* SqFilter open all message bases in shared mode, and locks them when
appropriate. This should garantee proper operation with other
well-designed programs. Beware, however, that not all maintenance
utilities are well-designed.
* The DOS version may raise some problems due to memory limitations, or
number of opened files limitation. If memory problems appear, I may
release a DPMI version. Number of opened files problems are handled
through the FILES= command of the DOS CONFIG.SYS.
V- About the internals of SqFilter
──────────────────────────────────
* SqFilter uses the Squish specification as defined in the Squish
Developpers Kit version 2.0. Among other things, this means that the
Squish areas where SqFilter writes messages need not be packed: the
number of messages, hence the size of the file, will stop growing when
a maximum defined in the configuration file has been reached. See the
'SquishMaxMsg' and 'To' keywords in SqFilter.Cfg for more information.
* The Hudson and JAM bases handling code is mostly not mine, though I
had to modify it to run under OS/2. This means that I may not be aware
of hidden bugs, nor am I really responsible for performance.
* I'm not aware of any official method to lock fido *.MSG bases, so I
don't perform any kind of locking on them.
* SqFilter supports the "AREA:" "kludge". If this "kludge" is also
supported by your mail reader, this will enable your reader to let you
respond to messages in the area where the message originally was (the
'N' key in GoldEd).
* SqFilter generates a "CHRS:" kludge in its messages.
* SqFilter uses the country information from your system.
* SqFilter needs a 286+ operated by DOS 3.3+ (DOS version) or OS/2.
VI- History
───────────
16/07/94 version 0.02ß
First public release.
16/07/94 version 0.03ß
Now opens files in shared mode.
Handles the situation where a base is already opened in
exclusive mode by another process.
OS/2 executable version. File locking not thoroughly tested.
Does not fully support HPFS file names. I guess I'm gonna have
to wait for Borland to make an OS/2 version of BP for full
HPFS support.
17/07/94 version 0.04ß
Now handles the 'AreaFile AreasBBS' configuration option.
Extended log options, user configurable.
20/07/94 version 0.05ß
The base is now locked when scanned. This should not normally be
necessary, but it looks like some programs lock a greater part
of the file than they should.
Performance statistics in log file (LogLevel>=2).
Changed the mode used for file opens under OS/2.
23/07/94 version 0.06ß
Reorganised message base objects so that adding new message
bases types will be kinda piece of cake.
Corrected something that looked like a hidden bug.
Added the 'UnScan' keyword in the configuration file.
Changed the processing method so that a message base is no
longer scanned twice if two message filters need it. Drawback
is I can't keep destination bases locked during the whole
process. Another drawback is that most certainly DOS users
will hit the maximum number of opened files limit. OTOH, this
garantees much greater consistancy in lastread pointers in
case of error, and much greater speed.
24/07/94 version 0.07ß
Destination bases are now instanciated only once. This allows to
lock them, and presumably to enhance speed, specially if there
are a lot of write operations. DOS users are less likely to
encounter the max opened files limit, but still. As of today,
DOS users should not define more than three filters that write
to the same destination base _and_ scan at least one common
base.
Added the 'Stat' keyword (and functionality!)
25/07/94 version 0.08ß
Taken care of the 'Too many open files' threat. It's now much,
much less likely to happen.
Added the 'StatMsgFrom', 'StatMsgTo', 'StatMsgSubject' keywords.
French configuration file.
Tried some optimization tricks that did not work. If I were to
believe Turbo-Profiler, I can't do anything to improve speed.
31/07/94 version 0.09ß
Added the 'TrackKeyWord' undocumented keyword.
Done a little change that should improve speed on slower CPUs.
Done another change that improved performance by 30% (as measured
by the number of messages processed per second).
Fixed a bug when reducing the size of the log file (at best, blank
lines would appear in the log file).
Fixed a bad behaviour when trying to lock a file that's already
locked by another process.
Added command-line configuration file name.
Added date in stat messages body.
03/08/94 version 0.10ß
A date was not filled in the message header.
03/08/94 version 0.11ß
Added fido *.MSG message bases support. Look out for bugs !
04/08/94 version 0.12ß
Added support for country information, plus french program
messages.
Added the 'français' keyword. This makes the program generate
French output. Automagic if your country code is 33.
09/08/94 version 0.13ß
Added an Allfix requests processor.
10/08/94 version 0.14ß
Fixed bug when no AfxReqArea was defined.
Various and numerous improvements to the Allfix processor.
Added Lora SYSFILE.DAT reading ability.
Fixed bug in origin network address when creating messages.
11/08/94 version 0.15ß
Added 'Log:' command-line parameter.
Added processing of Allfix 'second requests' (requests directed
to 'SqFilters z:n/n.p' get list of remaining files).
Added new files announcement feature.
Slightly changed file areas configuration.
15/08/94 version 0.16ß
Fixed a huge bug in the OS/2 version.
Added support for Maximus' FILEAREA.CTL file.
16/08/94 version 0.17ß
Cosmetic changes.
03/09/94 version 1.00
Fixed a bug in the 'AreaFile' & 'Area' keywords, when the area
tag was not uppercased.
Added the 'LockMaxDelay' keyword.
Cosmetic changes.
Added the undocumented 'Rescan' configuration keyword.
Added the 'English' configuration keyword.
Added some trace in debug mode.
Got out of the beta status.
04/09/94 version 1.01
Added the 'NFASubject' configuration keyword.
Sped-up the files scanning.
08/09/94 version 1.02
Gone back to the previous files scanning method to fix a bug.
version 1.03
Cosmetic change.
Added some error checking.
Corrected a bug with the date handling (should have affected a
field in Squish messages).
12/09/94 version 1.10ß
Added the JAM bases support, thus the following keywords :
'JAMUserName', 'JAMUserCRC'. Available for beta-testing.
13/09/94 version 1.11ß
Changed the way kludge lines are internally handled.
Fixed a bug with locking JAM bases.
Fixed several bugs in the JAM bases handling which were introduced
with the OS/2 version -and made JAM bases unuseable.
Added an all files listing generator, configured with the keywords
'AFLFileHdr', 'AFLFileFtr', 'AFLScan' and 'AllFilesListing'.
13/09/94 version 1.12ß
Cosmetic changes in the 'all files' listing.
19/09/94 version 1.20ß
Better JAM message flags support.
Added Hudson bases support ; huge kludge. New keywords :
'HudsonPath', 'HudsonUserNo'. Unlike JAM bases, Hudson bases
are also supported through the AREAS.BBS configuration file.
Removed a bug with kludge lines handling in reading Squish bases
when the kludges where misplaced.
Fixed a bug with JAM dates handling.
Added some information in the log file in case of 'too many open
files' error (DOS version).
The .NFA file name is now made after the config file name. This
enables you to announce new files from different file areas in
different message areas, by using different config files.
Added Squish.Cfg support in the 'AreaFile' keyword.
Fixed a bug where the Hudson bases where never closed.
20/09/94 version 1.21ß
Added understanding of JAM areas defined in AREAS.BBS file.
09/10/94 version 1.22ß
Fixed a bug in Hudson bases where messages longer than 16kb
would cause unpredictable behaviour.
Added the 'NFAUnScan' keyword.
Cosmetic changes.
(Temporarily ?) removed OS/2-specific popup error window.
Re-inserted the beta warning in the cfg file.
04/12/94 version 1.23
Added 'TOPT' and 'FMPT' kludges handling.
Added the 'PopupOnError' keyword (OS/2 version only).
version 1.24
Fixed a bug with OS/2's RTL (DOSFindFirst) which resulted in
lots of unfound files in file listings.
Added country code 2 (French-speaking Canada now has French
as a default language.)
Fixed a bug in the new files announcer where older files would
be announced again when the NFA file fills up.
01/04/95 version 1.25
(note : this is not a joke)
Added handling of 'AND' and 'OR' operators in allfix requests.
VII- Planned enhancements
─────────────────────────
* Short term
I think SqFilter could be used to send messages to warn whoever
you want that something's wrong with the machine it runs on
(free disk space, size of a directory, whatever), and to
answer messages from a user to SqFilter regarding
configuration, directory tree, whatever... But I could use
ideas, so if you think of something, tell me about it !
* Long term (depends on demand)
Make use of other BBS's configuration files.
Logical operators within include/exclude specifiers.
Full HPFS support.
Multithread under OS/2.
Handling of the CHRS/CHARSET kludges for string searches.
-----------------------------------------------------------------------------