diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | doc/mailfromd.texi | 18 |
2 files changed, 22 insertions, 1 deletions
@@ -5,12 +5,15 @@ (MAILUTILS_LIBS): Require auth * src/Makefile.am (mailfromd_SOURCES): Add func.c * src/gram.y: Implement functions, function calls and new - conditional `validuser' + conditionals `validuser' and `dbmap' * src/lex.l: Likewise * src/mailfrom.h (FUNCTION,LOCUS): New types. (node_type): New types node_type_funcall and node_type_validuser (parse_error_locus): New function (function_lookup,function_install): New function + (node_type): New type node_type_dbmap + (struct dbmap_node): New data type + (struct node): New member `map'. * src/main.c: Use enum instead of defines for long option codes. New options: --dump-grammar-trace, --dump-lex-trace and --dump-tree. diff --git a/doc/mailfromd.texi b/doc/mailfromd.texi index 51be5e3a..b9629c68 100644 --- a/doc/mailfromd.texi +++ b/doc/mailfromd.texi @@ -747,6 +747,24 @@ them as of functions in programming languages. Currently the following expressions are implemented: @table @code +@item dbmap @var{file} @var{atom} + @var{file} should be a literal string, @var{atom} an arbitrary +atom which evaluates to a valid string. This conditional returns +@code{true} if the key @var{atom} is present in the @acronym{DBM} file +@var{file}. If @var{atom} contains a @samp{@@} character, only the +part before this character will be used, thus allowing to check emails +against the aliases database: + +@smallexample +@group +if not dbmap "/etc/mail/aliases" $f + @dots{} +fi +@end group +@end smallexample + +Notice that @var{file} must not end in @samp{.db} suffix. + @item hostname @var{atom} @cindex @code{hostname} @var{atom} should be a string representing an IP address in |