[archimedes] Re: Wie <Obey$Dir>-Variable von C-Quellcode aus nutzen?

  • From: Carlos Michael Santillan <ml-archimedes@xxxxxxxxxx>
  • To: archimedes@xxxxxxxxxxxxx
  • Date: Fri, 23 May 2014 19:50:10 +0200

On 23 May 2014  Alexander Ausserstorfer <bavariasound@xxxxxxxxxxxxxxx> wrote:
>der E-Mail als erste Zeile voranstellen. Die Größe wird mit führenden
>Nullen aufgefüllt. Ich vermute, dass dies ein Platzhalter ist, da
>_zuerst_ die E-Mail gezählt und geschrieben und anschließend
>_nachträglich_ die Größe der E-Mail geschrieben wird. Anders geht das
>auch gar nicht. Leider geht aber die Größe der E-Mail voraus. Das macht
>die Sache auch nicht gerade schön.

Naja, das geht schon anders. Was aber die beste Lösung ist, kann ich aus
dem Stehgreif nicht sagen. Da muss man sicher auch ein paar Dinge
ausprobieren und messen. Du kennst OS_GBPB? Damit kannst Du den
Transport zwischen Speicher und Festplatte im Gegensatz zu den
C-Funktionen _deutlich_ beschleunigen.


>Was passiert denn dann eigentlich, wenn die Größe der E-Mail den
>Platzhalter überschreitet? Da gibt's doch ein Problem, oder?

Wenn das zuviel in den Speicher geht, nennt man das Pufferüberlauf und
kann unter Umständen Kode einschleusen, einen schönen Absturz
produzieren oder auch nichts machen. Es gibt nebenbei in C ein paar
"neue" Funktionen, die versuchen das zu verhinden. Da muss man die Größe
in der Funktion mitangeben. Bei manchen Projekten sind die alten
Funktionen verboten, da man gerne Mal eine Prüfung vergisst oder einen
Fehler ("<" vs. "<=") einbaut.
http://de.wikipedia.org/wiki/Puffer%C3%BCberlauf


Auch wenn Dein Programm keine Probleme damit hat, vielleicht verläßt
sich Messenger oder Pluto auf die Angabe.

Die Frage ist, was macht man wenn das Problem auftaucht? Verwirft man
die Mail? Auf alle Fälle muss man das den Benutzer melden. Die Angabe
von LIST und der tatschächlichen Größe darf sich nicht unterscheiden.
Wenn das passiert, dann stimmt da etwas nicht und der (gekaperte?) POP3
Server versucht eventuell einen Mist unterzuschieben.

Das habe ich nie gemacht, aber man kann doch den Dateizeiger verschieben
und dann sollte man die Angabe der Dateigröße nachträglich verändern
können. Dann darf das natürlich, mit Multitaskingmeldung, länger dauern.
In der Regel wird das auch nicht auftretten, aber man sollte dafür
vorbereitet sein. Das nachzuvollziehen mit einen fremden POP3 Server
kann schwer werden.


Carlos Michael Santillán

--
http://www.arcsite.de/
http://www.risc-os.de/

Ein Staat, in dem alle verdächtig sind, ist selbst verdächtig
A state that suspects everyone is itself suspicious

Other related posts: