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

Reply via email to