-= Vagabondo v1.1 -=- -= T-Mail, Bink/+ and The Brake! statistics generator =- Support MS-DOS 3.30 or later (compiled for 80286 with co-processor) .EXE version, native OS/2 2.1 (or high) 32-bit textmode fullscreen / windowed application and multuplatform executable. Copyright (c) 1994, 1995, 1998 by John Gladkih, 2:5051/16 FREQ VAGABONDO from 2:5051/16. THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 1. Introduction Для начала немного истории. Тем, кто успел попользоваться BtStat-ом, эта програмка покажется немного знакомой. ;-) Но они, наверное, уже успели заметить некоторые изменения, и imho в лучшую сторону, :-) судите сами. Идея BtStat-а зародилась у меня после знакомства с MnStat (by Nicolas Rodionov?) для старушки фронды. Некоторое идеи взяты из Traffic by Andy Elkin. Идея подсчитывать суммарный траффик и время answering/dialing/etc. позаимствованы у Cris Irvin из d'Bridge. И таким образом в мой очередной отпуск родился некий симбиоз под названием BtStat. Зачем все это, думаю, объяснять не нужно. С некоторого времени ;-) мне стали жаловаться, что прозвониться ко мне невозможно и станция постоянно занята, вот я и решил посмотреть насколько это верно. Но тут случилось очередное проишествие - я переехал под OS/2 и житье бинкоплюсов под ней показалось мне некоторым нонсенсом ;-) Но после вкусностей бинкоплюса переезжать на native BinkleyTerm было абсолютно влом :-( И по сему я опять вернулся на T-Mail. На этом закончился проект BtStat-а - в него был вставлен парзер T-Mail-ового лога, а новый проект получил название Vagabondo. :-)) Вместе с этим была сделана обработка терминальной работы и в гистограмме теперь этот факт так же отражен. За компанию был исправлен ряд глюков блока вывода статистики, из-за которых получались divide error & floating point overflow. 1998 год. Боже, как давно все это было, за это время я уже успел забыть что такое T-Mail и Bink/+ ;-) 2. New features /g-2 : - now support post to Fido(tm) style msgbase with 5D address and ^aINTL kludge as NetMail or EchoMail message; - now calculate average CPS for each systems, highly approximately for Bink/+ (see Paragraph 5.1); - history file format was changed. /g-3 : - fixed BUG with month October which don`t recognized in Bink/+ LOG and recognized as November in T-Mail LOG. Delete Your history file please. - thanx to Andy Elkin for `RING Detected'. Now that Vagabondo recognize this, answer/dial time was somewhat approaching to reality. - `Exiting, ErrorLevel' from T-Mail LOG now process as actual exit, no more treat as external program execution, sorry. Big thanx to Sasha Belikov (2:5053/2); - and more little changes. /g-4 : - for erronous command line no automatical help display now. Please type `Vagabnd2 Help'. Help now output to `stdout' (handle 1), no `stderr' ( handle 2). Thanx to Vladimir Efimov (2:5051/16.2) and Alex Klimov (2:463/82) for persistence; ;-) - new command `Merge History [-hhis] [ ... ]' Simply new command. :-) Special for multyline systems. /g-5 : - now available posting to JAM message base. New `-u' option. See Chapter 3. Don`t omitt `-u' option! - random origin file is now optional; - timeslice releasing now (MS-DOS too). /g-6 is bugfix ;-( - fixed problem with `busy more then 100%' when previous line has early time stamp; - fixed problem with `Merge History' incorrect work. /g-7 : - fixed bug for bink/+ LOG with file name which consist `('; - now recognize T-Mail BBS calling; - now newer use `stderr' stream, only `stdout'; - code was reorganized, now processor/memory exceptions is processed internaly (in DOS version); - `-d' switch is now documented; /g-8 : - fixed bug with T-mail terminal; - and any little changes; /g-9 : - support for t-mail janus session; - now recognize t-mail "CALLER'S NUMBER" - and incoming t-mail FAX (outgoing in future); - new switch `-1' - for T-Mail >2501 - do not detect T-Mail version; /g-10 : - new method of CPS calculation, now support bi-direction file transfer protocols such as janus & hydra; - now only one MS-DOS .EXE for i8086 without math co-processor; /g-11 : - support new T-Mail flag operation logging; - fixed bug with T-Mail `aborted at pos 0'; - fixed `Unpack' processing (for (Empty) message); - support T-Mail call time; /g-12 : - new option -c for Dmitry Ladygin; /g-13 : - now support The Brake! mailer binary LOG; /g-14 : - little changes for Bink/+ BBS call; /g-15 : - fixed problem with Time Zone environiment variable; /g-16 : - little changes for new T-Mail log entry; - support The Brake! hydra session. /Version 1.1 (3 years later) - support new format of The Brake!(tm) Mailer binary log; - little changes for T-Mail; - support T-Mail Hydra session and T-Mail/TCP/IP version; - no timeslice releasing now (timeslicing sucks - buy fast CPU!); - new history file structure, please delete your old history file; - new executable - vagaemx.exe; - DOS version now compiled for 80286/co-processor; /Version 1.1.1 - busy more then 100% in EMX & OS/2 version; - support T-Mail russian log; - buggy *.msg base create message; /Version 1.1.2 - buggy history file truncation; - new `?' switch for The Brake!(tm) Mailer; - "Illegal time sequence in line ?" for The Brake!(tm) Mailer; - busy more then 100% for The Brake!(tm) Mailer. 3. Command line 3.1 Command line syntax Usage: Vagabnd [-d] Stat [-btsz1 -cset -mmask -ostat -hhist []] Vagabnd [-d] Brake [-btsz? -cset -mmask -ostat -hhist []] Vagabnd [-d] Summary [-bts -cset -mmask -ostat []] Vagabnd [-d] Reset Pointer Vagabnd [-d] Clear History Vagabnd [-d] Merge History [-hhis] [ ... ] Vagabnd [-d] Help -cset up to five chars set for hystogram build -hhist use history file `hist' -mmask `mask' is node mask as V8 egrep-style regular expression -ostat write statistics to file `stat' -b don`t write busy hystogram -t don`t write detailed traffic -s don`t write detailed sessions statistics -z show progress indicator -d work in debug mode -? print The Brake!(tm) binary log sessions to stderr -?? print The Brake!(tm) binary log records to stderr -1 force T-Mail >2501 -rorigin random origin file `origin' -aaddress from address `address' -ffrom from name `name' -naddr to address `addr' -lto to name `to' -jsubj message subject `subj' -ppath `path' is path to Fido(tm) msgbase style base or JAM file generic name. -utype `type' must be `Msg' or `JAM' Command line syntax is UNIX like. getopt - Copyright (c) 1987 Regents of the University of California. For -c option chars must be in order: session, answer/dial, external, BBS, terminal. Some may be skipped with `-' char. What You will specify multiword parameters for -f -l -j in MS-DOS version - I don`t know. This is MS DOS & Borland C++ problem. For OS/2 version - like in UNIX: vagabnd2 stat -j"Line III" -f"Stat Gen" -p\msg -a2:5051/16 -ro.lst 3.log I may make interpretation `_' as space if anybody need this. Please report me. Little commands description: Stat - processing LOG-file, generate statistics and count summary statistics into .his file. In .his file also placed time-stamp of last processed LOG-file line. Details see in busy.h and history.cpp. Brake - processing The Brake! binary LOG-file. WARNING: Please set TZ environiment variable correctly! (Like for The Brake!) Summary - output statistics summarized in .his file. Reset Pointer - reset stored time-stamp into zero. Next call of `Stat' was process LOG-file from begin. WARNING! Summary statistics will be incorrect. Clear History - ohhh... You may delete .his file, simple delete ;-). Vagabondo do this and create empty .his file. Merge History - merge some .his files into one. Special for statistics of multiline system. If You don`t specified .his file name or statistics file name for `Stat' command, Vagabondo create file with name of LOG-file and .his extension and .stc in second case. For `Summary' command - identical. For `Merge History' command output statistics stored into first specified file if `-h' option is omitted. Origin file compiler create index file with original name and extension `.ofx'. 3.2 Regular expresion syntax regexp - Copyright (c) 1986 by University of Toronto. Written by Henry Spencer. 3.2.1 Syntax A regular expression is zero or more branches, separated by `|'. It matches anything that matches one of the branches. A branch is zero or more pieces, concatenated. It matches a match for the first, followed by a match for the second, etc. A piece is an atom possibly followed by `*', `+', or `?'. An atom followed by `*' matches a sequence of 0 or more matches of the atom. An atom followed by `+' matches a sequence of 1 or more matches of the atom. An atom followed by `?' matches a match of the atom, or the null string. An atom is a regular expression in parentheses (matching a match for the regular expression), a range (see below), `.' (matching any single character), `^' (matching the null string at the beginning of the input string), `$' (matching the null string at the end of the input string), a `\' followed by a single character (matching that character), or a single character with no other significance (matching that character). A range is a sequence of characters enclosed in `[]'. It normally matches any single character from the sequence. If the sequence begins with `^', it matches any single character not from the rest of the sequence. If two characters in the sequence are separated by `-', this is shorthand for the full list of ASCII characters between them (e.g. `[0-9]' matches any decimal digit). To include a literal `]' in the sequence, make it the first character (following a possible `^'). To include a literal `-', make it the first or last character. 3.2.2 Ambiguity If a regular expression could match two different parts of the input string, it will match the one which begins earliest. If both begin in the same place but match different lengths, or match the same length in different ways, life gets messier, as follows. In general, the possibilities in a list of branches are considered in left-to-right order, the possibilities for `*', `+', and `?' are considered longest-first, nested constructs are considered from the outermost in, and concatenated constructs are considered leftmost-first. The match that will be chosen is the one that uses the earliest possibility in the first choice that has to be made. If there is more than one choice, the next will be made in the same manner (earliest possibility) subject to the decision on the first choice. And so forth. For example, `(ab|a)b*c' could match `abc' in one of two ways. The first choice is between `ab' and `a'; since `ab' is earlier, and does lead to a successful overall match, it is chosen. Since the `b' is already spoken for, the `b*' must match its last possibility-the empty string-since it must respect the earlier choice. In the particular case where no `|'s are present and there is only one `*', `+', or `?', the net effect is that the longest possible match will be chosen. So `ab*', presented with `xabbbby', will match `abbbb'. Note that if `ab*' is tried against `xabyabbbz', it will match `ab' just after `x', due to the begins-earliest rule. (In effect, the decision on where to start the match is the first choice to be made, hence subsequent choices must respect it even if this leads them to less-preferred alternatives.) 4. Errorlevels ErrorLevel Description ---------- ----------- 0 Success 1 Too many nodes in LOG file ;-) (up to 64k) 2 Memory overflow (DOS only) 3 Too many protocols in LOG file ;-) (up to 64k) Or start error (abort called) 4 Command line error 5 History file I/O or structure error 6 Protocols or nodes list merge error (too many items) 7 LOG file I/O error 8 Statistics file I/O error 9 Unknown LOG style ( not T-Mail or Bink/+ ) 10 Nothing to do! (last line in LOG-file already processed) 11 Origin file / .OFX I/O error 12 Fido style msgbase or JAM-base I/O error 13 Program killed by another process 100 Internal error, please report to John! (send your LOG and history file with little description ;-) to me ) Any comments? ;-) 4. .Exe files list 4.1 OS/2 32-bit File named as `VAGABND2.EXE' is native OS/2 2.1 32-bit textmode or windowed session application. 4.2 MS-DOS version VAGABND.EXE for 80286 processor with 80287. 4.3 Multiplatform version VAGAEMX.EXE is 32-bit multiplatform executable and may be ran under OS/2 with EMX runtime, DOS with RSX protected mode extender and Windows/NT with RSXNT (I hope!). 5. Known problems For Bink/+ Vagabondo recognize only `Exiting to BBS' BBS calling method. Send me log-file with another way please, then this problem will be solved. For Bink/+ don`t recognize file transfer fault, sorry. 6. Restrictions This product is freeware. Please use freely and distribute unchanged. I will be glad to recieve $5 from somebody in the capacity of spended time compensation. :-) MS-DOS version compiled by Borland C++ 3.1, OS/2 version - gcc/emx 2.7.2.1. Multiplatform version by gcc/emx too, and require EMX runtime version 0.9c (or high) under OS/2 and RSX DOS protected mode extender under pure DOS and RSXNT under Windows/NT (I don't know what RSXNT is ;) getopt & regexp used in this product is freeware (see before). This product uses the JAM(mbp) API - Copyright 1993 Joaquim Homrighausen, Andrew Milner, Mats Birch, Mats Wallin. ALL RIGHTS RESERVED. JAM API was changed. Fixed problem with locking JAM base under native MS-DOS. SHARE.EXE don`t more required :-) No other commercial/shareware API or class library was used. 7. Gratitudes. Big thanx to Michael Alekseyev (2:5051/13) AKA Vagabondo :-) BRGRDS, Jonny. John Gladkih e-Mail: 2:5051/16@fidonet app. 249, john@simcb.ru 32, Ho Shi Min Boulevard 432066 Simbirsk Russia --------------------------------- End file -----------------------------