Mit sendfile 1.6-19970708 ist echtes asynchrones Verschicken ueber
einen Outgoing Spool verfuegbar. Eigentlich war der Code schon seit fast 1
Jahr drin und wartete nur darauf, dass ich ihn endlich mal debuggte und
fertig stellte. Nun isses so weit :-)

sendfile hat dafuer 2 neue Optionen zur Verfuegung:
	
	-S  sendet nicht direkt, sondern legt das File im Outgoing Spool ab 
	-l  listet Files im Outgoing Spool 
	

Beispiel:

moep:~/sendfile/sendfile-1.6> sendfile -S Makefile framstag@bofh.belwue.de
%sendfile-I, 'Makefile' spooled

moep:~/sendfile/sendfile-1.6> sendfile -l
Files in outgoing spool:

framstag@bofh.belwue.de : Makefile


Oder etwas ausfuehrlicher:

moep:~/sendfile/sendfile-1.6> sendfile -Suv makeconfig framstag@bofh.belwue.de
%sendfile-I, makeconfig is of type: Bourne shell script text
%sendfile-I, 'makeconfig' spooled
220 moep.bb.bawue.de SAFT server (sendfiled 1.6 on Linux) ready.
-> START SPOOLDAEMON
200 Command ok.


Wie man sieht, nimmt sendfile am Ende noch schnell Kontakt zum eigenen
sendfiled auf und sagt ihm, er solle den spooldaemon starten. 

Der sendfile spool daemon ist im normalen sendfiled enthalten und wird von
diesem via fork gestartet. Fuer jeden Zielhost, den er im Outgoing Spool
findet, wird erneut ein sfsd geforkt, der dann versucht zu diesem host
eine Verbindung aufzubauen. Dies habe ich gemacht, um zu verhindern, dass
sich die tcp-timeouts zu sehr addieren. Alternativ kann ueber die
sendfile.cf Option parallel=off auch erzwungen werden, dass nur ein sfsd
laeuft, der alles hintereinander abarbeitet. Ist ein Host nicht
erreichbar, so wird fuer X Minuten gewartet, um es erneut zu versuchen.
Kommt es nach Y Tagen zu keiner erfplgreichen Uebertragung, so wird das
betreffende File an den Absender zurueckgeschickt; genauer gesagt: es
landet in dessen Incomming Spool. X und Y sind in sendfile.cf
konfigurierbar ueber die Optionen retry und bounce.

Der Absender kann aber auch Files aus dem Outgoing Spool loeschen, Beispiel:

moep:~> sendfile -Sd Makefile framstag@bofh.belwue.de
%sendfile-I, deleted from outgoing spool: 'Makefile' for framstag@bofh.belwue.de


Die Abarbeitung der Outgoing Queue kann aber auch von root direkt
angestossen werden mit: sendfiled -q

Dabei wird nur einmal versucht auszuliefern und nicht in einer
Endlosschleife.

Es ist trotzdem zu empfehlen in das System Bootscript folgende Zeile
aufzunehmen:
	/usr/local/sbin/sendfiled -Q
Damit wird sichergestellt, dass liegengebliebene Files im outgoing spool
gleich weiterverarbeitet werden und nicht erst wenn der naechste User es
mit sendfile anstoesst.

Anmerkung: der sendfile spool daemon arbeitet mit locking und kommt daher
nicht durcheinander wenn versucht wird ihn mehrfach zu starten. Spaeter
gestartete sendfile spool daemon terminieren einfach, wenn sie merken,
dass die queue bereits abgearbeitet wird. Nur "sendfiled -q" arbeitet die
outgoing spool queue in jedem Fall einmal ab.
