Oberon || Library || Module Index || Search Engine || Definition || Module
PROCEDURE Install(session: FTPSessions.Session; log: Streams.Stream);
Install spawns a task (using Jobs) that processes log events generated by FTPLoggers for session until session terminates (see Resources) or output operations to log fail. The output generated for a log event consists of
Streams.Flush is invoked for log after printing each log event. Hence, Streams.onebuf should be taken as buffering mode for log.
Multiple logging tasks with different output streams for a particular session are permitted.
When logging fails (due to the termination of an output filter, for example), FTP server operations for session continue to be handled unless provisions are taken that session terminates as well in such cases.
All requests, responses, and error reports depend on the input provided by the communication partner. Hence, they may contain overly long strings (e.g., for buffer overrun attacks) or malicious sequences (e.g., for format attacks) that could exploit external utilities that postprocess logs. FTPLogPrinter itself provides all data as-is without any filtering against possible attacks.
The utility splogger(8) that is shipped with Qmail (see http://cr.yp.to/qmail.html) may be used in conjunction with UnixPipes to forward log messages in a safe way to syslogd(1m).
Another secure output filter is multilog, see http://cr.yp.to/daemontools/multilog.html.
Oberon || Library || Module Index || Search Engine || Definition || Module