The output of exim -bV has changed slightly WRT to lookups. Instead of
Lookups: blah1 blah2
it now does:
Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm
dbmnz dnsdb dsearch ldap ldapdn ldapm nis nis0 nisplus passwd sqlite
and if the patches in bug #139 ever get accepted, there will be another
line of output that may look something like this:
Lookups (as-module): mysql spf
The quick hacky way that I implemented it was:
# check that binary has various lookups
foreach (qw[lsearch wildlsearch nwildlsearch dnsdb]) {
$exim->has_capability( 'lookups_built_in', $_ );
}
foreach (qw[mysql spf]) {
$exim->has_capability( 'lookups_as_module', $_ );
}
But there are inconsistencies with the above usage:
1. "lookup", singular, was the original, and I think it should stay that
way for consistency.
2. The test code really shouldn't care whether it is built in or is a
module, only that it is present. This requires some extra parsing logic
in _run_exim_bv() specific to the potential different lookup types it
will report.
3. I think it should also track the different class (built-in or
as-module) of $type "lookup", but I can't think of a reason yet why that
would be important.
Attached a patch which should strip values in parenthesis (but after the
transformation to underscores). It does not store the class of the
lookup (built-in or as-module). I feel it needs work and can possibly
be altered to just strip everything after ^lookup, for simplicity sake.