Hallo, bekanntlich erstellt XP, bzw. der UUZ, aus den Received-Headern bei Mails aus dem RFC-Raum einen ROT-Header.
Der ROT-Header soll bei ZConnect-Systemen verhindern, daß ein System eine Nachricht (erneut) verarbeitet, wenn es sich selbst im ROT einer empfangenen Nachricht findet. Zum Erstellen des ROT-Headers geht der UUZ jeden Received-Header einer Nachricht durch, und extrahiert daraus ein vorhandenes "by"-System und gegebenenfalls ein vorhandenes "from"-System. Die beiden Systemnamen werden an den bisher aufgebauten ROT-Header angehängt. Vor dem Anhängen des "by"-Systems wird geprüft, ob dieses System das letzte System im bisher aufgebauten ROT-Header ist (Dupe- Prüfung). Wenn ja, wird das "by"-Systems verworfen. Das gegebenenfalls vorhandene "from"-System wird ohne Dupe-Prüfung an den ROT-Header angehängt. Fragen: 1. Macht der ROT-Header in XP überhaupt Sinn (RFC- und ZConnect-Boxen)? XP ist schließlich nur ein Endpunktsystem. UM den ZPR zu beruhigen, könnte man auch einen leeren ROT-Header generieren 2. Wenn ja, macht es Sinn, "from"-Systeme aus den Received-Headern in den ROT-Header zu übernehmen? ZConnect-Systeme, die über RFC-Routen, scheinen beim Erstellen des ROT-Headers die "from"-Systeme (immer?) zu ignorieren. Es gibt da auch bei "from"-Systemnamen so sinnvolle Sachen wie Received: from by localhost 3. Wenn ja, müsste vor Aufnahme des "from"-Systems in den ROT-Header nicht genauso wie vor der Aufnahme des "by"-Systems geprüft werden, ob dieser nicht bereits im ROT vorhanden ist (und sei es das "by"- System, das aus dem gerade bearbeiteten Received- Header übernommen wurde)? Im Beispiel: Received: from kboks.kruemel.org by kboks.kruemel.org würde dann das reduntante "from"-System für den ROT-Header als Dupe entfallen. 4. Die bisherige Prüfung des UUZ auf Dupes arbeitet etwas merkwürdig. Es wird das aus dem Received-Header extrahierte "by"-System mit der Stringlänge dieses "by"-Systems mit dem letzten Teil des ROT-Headers verglichen. Beispiel (gekürzt): Received: from kboks.kruemel.org by kboks.kruemel.org Received: by kruemel.org Das System "kruemel.org" aus dem letzten Received-Header wird (fälschlicherweise?) als Dupe verworfen, da zufällig dieser Systemname als rechter *Teil*-String im ROT vorhanden ist. Richtigerweise(?) müsste mit der kompletten Länge des "by"-Systems geprüft werden, und damit würde "kruemel.org" in den ROT-Header aufgenommen werden. Ich bitte um rege Diskussion. ;-) Die relevate Rountine GetReceived in UUZ.PAS, bzw zcrfc.pas: <---------------------------------------------------------------------> if (by <> '') and (LowerCase(by) <> LowerCase(RightStr(hd.pfad, length(by)))) then begin if hd.pfad <> '' then hd.pfad := hd.pfad + '!'; hd.pfad := hd.pfad + by; end; if from <> '' then begin if hd.pfad <> '' then hd.pfad := hd.pfad + '!'; hd.pfad := hd.pfad + from; end; <---------------------------------------------------------------------> wobei diese Routine im aktuellen FreeXP-UUZ möglicherweise etwas anders aussieht. Danke an Joachim Merkel für die Beantwortung von Fragen zu ZConnect- Systemen und für das zur Verfügungstellen von Beispiel-Headern. Etwaige Fehler in meiner Darstellung gehen natürlich auf meine Kappe. Hans-Jürgen ------------------------------------------------------------------------ FreeXP Entwickler-Mailingliste Dev-List@freexp.de http://www.freexp.de/cgi-bin/mailman/listinfo/dev-list