Madness Mailbox-System Bretter-/Usergroup-Index-Check V2.10 =========================================================== (c) 05.07.1993 by Jrgen Meyer Update V2.10 (von V2.03): - BUGIDXCH l„uft nun auch wieder als External, kann von allen Punkten aus gestartet werden (CSH, Zeitexternal, "X" in MENUE.DAT) - BUGIDXCH schreibt, wenn es als External gestartet wird, eventuelle Fehlermeldungen in das Logbuch (aber keine Meldungen, welche Mail repariert wurde). Erscheint nur "Rckgabewert von BUGIDXCH.PRG: -33", so wurde MB.INF nicht gefunden, wenn "-1", dann ist MB.INF zu alt oder defekt. - Am Ende des Prfvorganges wird angezeigt, wieviele Mails in wieviel Brettern repariert wurden oder eben "Keine Fehler gefunden", wenn keine defekten Maileintr„ge gefunden wurden. Beim Start als External wird dieses Endergebnis auch in das Logbuch geschrieben. - Wird BUGIDXCH als External via RS232 gestartet und der Carrier geht verloren, so bricht BUGIDXCH nicht ab, sondern gibt weiter auf die Console aus. Nach Beenden von BUGIDXCH fhrt die Box dann die gewohnte NO CARRIER - Prozedur aus. V2.00, V2.01 und V2.02 sind unver”ffentlicht. Dieses Tool dient dazu, die Integrit„t der Indexdateien fr Bretter und Usergroups zu testen und ggf. Fehler, sofern machbar, korrigieren. Die hier vorliegende Version von BUGIDXCH arbeitet mit den Brett- und UG-Indexstrukturen ab V4.02.R1 zusammen. Žltere Indexstrukturen k”nnen nicht bearbeitet werden. Der Versuch wird mit einer Fehlermeldung quittiert. BUGIDXCH testet _SEHR_ ausfhrlich. Daher sind Laufzeiten von ca. 10 Minuten fr 1000 Mails durchaus normal. Die Ausfhrungsdauer schwankt stark, je schneller der Rechner, desto schneller ist auch BUGIDXCH. Wer viele Mails, aber einen langsamen Rechner hat, sollte fr die Zeit, wo er BUGIDXCH laufen l„žt, einen grožzgigen Cache installieren. Das beschleunigt ungemein! BUGIDXCH ben”tigt ca. 150 KByte fr sich selbst sowie ca. 650 KByte externen Speicher (wahlweise TT-RAM/ST-RAM). Daher kann BUGIDXCH bei Rechnern mit nur 2 MByte evtl. nicht mehr unterhalb des Mad-Sys gestartet werden. Hinweis fr die erste Benutzung von BUGIDXCH -------------------------------------------- Bitte nicht wundern: BUGIDXCH wird beim ersten Lauf unheimlich viel anmeckern und korrigieren. Denke also nicht "Oh Gott, alles breit!". Das liegt schlicht daran, daž es „ltere Versionen der Madness nie so ganz genau nahmen mit der Verwaltung der Brettinhalte. Das neue Verfahren ist viel genauer und erlaubt keine Toleranzen. Somit ist nun gew„hrleistet, daž Externals, die auf die Bretter/UGs zugreifen, endlich "geordnete Verh„ltnisse" vorfinden. Folgendes wird beim ersten Lauf h„ufig auftreten: "IllChars" --> Kommt aus den Zeiten, wo das Mad-Sys alle Daten in IBM- Umlauten ablegte. BUGIDXCH convertiert automatisch alles nach ST-Format (siehe Spezifikation der Indexstrukturen). "AnzZln" --> Wer uralten Datenbestand hat, kann diese Meldung haben. Ganz frh (vor Mad-Sys Version V3.50) waren einige Bugs beim Sichern der Mails vorhanden. "SavChMail" -> Bedeutet nur: korrigierte Mail wird gesichert Arbeitsweise von BUGIDXCH ------------------------- Alle Indexdateien werden im RAM gehalten und in einem Stck geladen bzw. gesichert. Daher der hohe Speicherverbrauch. BUGIDXCH kann w„hrend der Arbeitsphase abgebrochen werden, allerdings nur beim Wechsel der Index- Dateien, nicht mitten in der Bearbeitung einer einzelnen Indexdatei. Zum Abbruch muž die ALTERNATE-Taste gedrckt gehalten werden bis Wechsel der Indexdatei auftritt. BUGIDXCH liest nur den Pfad auf den Ordner "BRETTER" aus und sammelt dort alle IDX_*.DAT Dateien ein. Es werden also keine Mad-Sys Installations- Dateien verwendet, sondern die tats„chlich gefundenen Indexdateien! Ablauf des Prfens ------------------ BUGIDXCH liest zuerst alle Ordner ein und sucht die Indexdateien heraus. Es wird reihenweise nach den gefundenen Indexdateien abgearbeitet. Es erfolgt eine Anzeige, welche Indexdatei zur Zeit bearbeitet wird. Sind keine Mails vorhanden, das zur Indexdatei zugeh”rige Brett/UG also leer, erscheint nur "Keine Mails in Brett/UG". Im anderen Falle wird angezeigt, welche Mail (Mail xxx von xxx) bearbeitet wird. Gefundene Fehler werden angezeigt und die Ausgabe rutscht eine Zeile nach unten. War die aktuelle Mail fehlerfrei, so wird nichts angezeigt bzw. der Cursor verbleibt in der aktuellen Zeile. Wurde eine Indexdatei vorgefunden, dessen Versionsnummer BUGIDXCH unbekannt ist, so wird dies angezeigt und die Indexdatei nicht weiter bearbeitet. Ist die CRC-Summe des Index 0 (Verwaltungsindex) defekt, so wird der Index 0 wieder restauriert. Da nicht gew„hrleistet ist, daž die Eintr„ge fr die Mail-ID's noch stimmen, werden in einem solchen Fall (Index 0 defekt) alle Mails mit neuen Mail-ID's versehen. Ebenso wird eine neue Mail-ID Vergabe durchgefhrt, wenn die Mail-ID Eintr„ge in Index 0 trotz heilem CRC irrefhrung bzw. fehlerhaft sind. W„hrend der Abarbeitung der einzelnen Mails sowie dessen Indizes wird folgendes geprft: 1. CRC des Indizies. Es wird "IDX-CRC-Err" ausgegeben, wenn die CRC-Summe nicht bereinstimmt. 2. Existiert die Mail nicht, so wird "FileNotFound" ausgegeben und der entsprechende Eintrag aus der Indexdatei gel”scht. Es erfolgt gleich ein automatisches Renamen der Mail-Dateinamen sowie damit verbundene Aus- sortierungen in der Indexdatei. Es wird also nicht mehr, wie beim alten BUGIDXCH, eine Dummy-Mail erzeugt. 3. Ist die Mail-ID der aktuellen Mail gr”žer als die zuletzt vergebene Mail-ID oder kleiner 1 (signed), dann wird die Mail-ID fr ungltig erkl„rt und "Mail-ID" als Fehler ausgegeben. Die Mail erh„lt dann eine neue Mail-ID (als w„re sie neu geschrieben worden). 4. Die Mail wird in den Speicher gelesen. Stimmt die L„nge der Datei nicht mit dem Eintrag in der Indexdatei berein, wird "Len" ausgegeben. 5. Ist die Mail l„nger als 64 KByte, wird ">64k" ausgegeben und die Mail auf 65535 Bytes gekrzt. 6. Stimmt die CRC-Summe ber die Mail nicht mit der in der Indexdatei ein- getragenen berein, so wird "Mail-CRC-Err" ausgegeben. 7. Ist das letzte Zeichen der Mail-Datei ungleich 10 (Linefeed), so werden alle dem letzten LF nachfolgenden Zeichen, die keine komplettte Zeile mehr bilden k”nnen, abgeschnitten. Es wird "IllChars" ausgegeben. 8. Die Mail wird nach illegalen Zeichen durchsucht. Erlaubt sind die Bereiche/Zeichen ASCII 10 & 13 (LF & CR), ASCII 32 - ASCII 125 und ASCII 128 - 255. Zeichen, die nicht auf diese Grenzen passen, werden durch ein "?" ersetzt. Findet die Box ein Zeichen ASCII 225 (ž nach IBM-Belegung, so wird dies nach ASCII 158 (ž nach ST-Belegung) con- vertiert. 9. Es wird geprft, ob die Anzahl der tats„chlichen Zeilen mit der in der Indexdatei eingetragenen Anzahl bereinstimmt. Wenn nicht, wird "AnzZln" als Fehlermeldung ausgegeben. 10. Enth„lt die Mail mehr als 800 Zeilen, werden alle Zeilen nach 800 abge- schnitten und die Mail entsprechend gekrzt. Es erscheint ">800-Zln" als Fehlermeldung. 11. Wurden Žnderungen an der Mail n”tig (siehe obige Punkte), so wird die korrigierte Mail geschrieben. Es erscheint "SavChMail". Dies ist also keine eigentliche Fehlermeldung, sondern nur ein Hinweis auf das Sichern der korrigierten Version der Mail. 12. Die 'Anzahl der verbleibenden Tage im System' wird geprft. Hier ist rein technisch nur ein Prfen daraufhin m”glich, ob ein Wert gr”žer als 90 Tage (Maximum) eingetragen ist. Wenn ja, wird "VT" ausgegeben und der Wert auf 90 gesetzt. 13. Der Status der Mail wird geprft. Ist dieser durch einen Fehler gr”žer als 9, wird er auf 9 gesetzt. Es erscheint "Stat" als Fehlermeldung. 14. Das Datum der Mail wird geprft. Ist das eingetragene Datum ungltig, so wird das heutige Datum eingesetzt. 15. Die Zeit der Mail wird geprft. Ist die eingetragene Zeit ungltig, so wird die aktuelle Zeit eingesetzt. 16. Die Betrifft-Zeile wird geprft. Ist die Betrifft-Zeile leer, wird "*** Kein Betreff! ***" eingesetzt. Ist die Betrifft-Zeile l„nger als 40 Zeichen, werden alle Zeichen ber 40 abgeschnitten. Anschliežend wird ein Test auf illegale Zeichen (gleiches Verfahren wie Punkt 8.) durchgefhrt. Sind ebensolche vorhanden, werden diese durch ein ? (ASCII 63) ersetzt. In allen F„llen erscheint die Fehlermeldung "Betr" 17. Der ASCII-Username wird geprft. Gleicher Vorgang wie bei Punkt 16., mit Ausnahme: Im Falle eines leeren Eintrags wird "Ehemaliger User" eingesetzt. Bei Fehlern erscheint "UsrName". Nach Beendigung des Prfens aller Mails der aktuellen Indexdatei wird die korrigierte Version des Indexdatei zurckgeschrieben. Das Programm beachtet w„hrend der Arbeitsphase aužer der ALTERNATE-Taste beim Wechsel der Indexdateien keinerlei Tastatureingaben. Ein 'brutaler' Abbruch w„hrend des Prfens hat in 99% aller F„lle ein zerst”rtes Brett/ UG zur Folge. Ich rate also nur von solchen Mažnahmen ab. MfG. Jrgen Meyer