[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

6.7.5 Entire Message Filters

There may be some cases when you need to use an external filter that processes the entire message (including headers). You cannot use external-body-processor, since it feeds only the message body to the program. To overcome this difficulty, GNU Anubis is shipped with `entire-msg.scm' module. This module provides Scheme function entire-msg-filter, which is to be used in such cases.

Scheme Function: entire-msg-filter program [args]
Feeds entire message to the given program. The output from the program replaces message headers and body.

progname
Full pathname of the program to be executed.

args
Any additional arguments it may require.

Suppose you have a program /usr/libexec/myfilter, that accepts entire message as its output and produces on standard output a modified version of this message. The program takes as its argument he name of a directory for temporary files. The following example illustrates how to invoke this program:

 
BEGIN GUILE
guile-load-program entire-msg.scm
END

SECTION RULE
guile-process entire-msg-filter /usr/libexec/myfilter /tmp
END

Another function defined in this module is openssl-filter:

Scheme Function: openssl-filter program [args]

This function is provided for use with openssl program. Openssl binary attempts to rewind its input and fails if the latter is a pipe, so openssl cannot be used with entire-msg-filter. Instead, you should use openssl-filter. Its arguments are:

program
Path to openssl binary.

args
Its arguments

See section 10. Using S/MIME Signatures, for an example of use of this function.



This document was generated by Wojciech Polak on December, 18 2004 using texi2html