Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
2 files changed, 22 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index f7ce246..7fc43fd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,12 +5,15 @@
(MAILUTILS_LIBS): Require auth
* src/ (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
diff --git a/doc/mailfromd.texi b/doc/mailfromd.texi
index 51be5e3..b9629c6 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:
+if not dbmap "/etc/mail/aliases" $f
+ @dots{}
+@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

Return to:

Send suggestions and report system problems to the System administrator.