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.