home | O'Reilly's CD bookshelfs | FreeBSD | Linux | Cisco | Cisco Exam  


Previous Section Next Section

implicit

Search for an aliases database entry V8.1 and above

The implicit database-map type refers specifically to aliases(5) files only. It causes sendmail to first try to open a db(3) hash-style alias file. If that fails or if NEWDB support was not compiled in, it tries to open an ndbm(3)-style database. If that fails, sendmail reads the aliases(5) source file into its internal symbol table.

When sendmail rebuilds its aliases database (as with newaliases), it looks for the special string literal /yp/ anywhere in the path specified for the aliases source file. If that string literal is found, sendmail uses this implicit type to create both a db(3) hash-style alias file, and an ndbm(3)-style database. It creates both to support NIS compatibility.

Although you can declare and use this type in a configuration file, there is no reason to do so. It is of use only to the internals of sendmail. If implicit fails to open an aliases file, probably because of a faulty AliasFile option (Section 24.9), sendmail will issue the following error if it is running in verbose mode:

WARNING: cannot open alias database bad filename

If the source aliases file exists but no database form exists, sendmail will read that source file into its internal symbol table using the stab type (stab).

You can experiment with this implicit database-map type using a mini-configuration file such as this:

V10
Kxlate implicit -a.Yes -o /etc/mail/aliases
Stest
R$*     $: $(xlate $1 $)

Here we declare a database map named xlate to be of type implicit. We use it to look up aliases in the file /etc/mail/aliases (which can optionally not exist because of the -o switch). We don't care if that file is a db file, a dbm file, or a text file. The implicit type will find the right type and use it. A successful match will append a .Yes suffix to the returned value.

The -d38.20 command-line switch (-d38.20) can be used to observe this type's lookups in db files and dbm files.

    Previous Section Next Section