September 1, 2021 1:01 PM, mimerun...@gmx.de wrote: >> Care to try the following diff ? >> --- table_db.c.orig.txt 2021-08-28 15:50:28.000000000 +0200 >> +++ table_db.c 2021-08-28 15:50:10.000000000 +0200 >> @@ -42,7 +42,9 @@ static char *table_db_get_entry_match(vo >> >> struct table_backend table_backend_db = { >> "db", >> - >> K_ALIAS|K_CREDENTIALS|K_DOMAIN|K_NETADDR|K_USERINFO|K_SOURCE|K_MAILADDR|K_ADDRNAME|K_MAILADDRMAP, >> + K_ALIAS|K_CREDENTIALS|K_DOMAIN|K_NETADDR|K_USERINFO| >> + K_SOURCE|K_MAILADDR|K_ADDRNAME|K_MAILADDRMAP|K_RELAYHOST| >> + K_STRING|K_REGEX, >> table_db_config, >> NULL, >> NULL, > > Thank you gilles. I tried the patch but unfortunately the behaviour is > exactly the same as before. > > $ makemap -U myregex.db > .* <set> > > The filter with this table should always match, but it only matches the > literal string ".*" When switching the table to file:/ backend the regex > works as expected.
Maybe if I had sent you the proper diff it would have worked... Index: table_db.c =================================================================== RCS file: /cvs/src/usr.sbin/smtpd/table_db.c,v retrieving revision 1.22 diff -u -p -r1.22 table_db.c --- table_db.c 23 Jan 2021 16:11:11 -0000 1.22 +++ table_db.c 1 Sep 2021 11:19:02 -0000 @@ -55,7 +55,9 @@ static char *table_db_get_entry_match(vo struct table_backend table_backend_db = { "db", - K_ALIAS|K_CREDENTIALS|K_DOMAIN|K_NETADDR|K_USERINFO|K_SOURCE|K_MAILADDR|K_ADDRNAME|K_MAILADDRMAP, + K_ALIAS|K_CREDENTIALS|K_DOMAIN|K_NETADDR|K_USERINFO| + K_SOURCE|K_MAILADDR|K_ADDRNAME|K_MAILADDRMAP|K_RELAYHOST| + K_STRING|K_REGEX, table_db_config, NULL, NULL, @@ -72,7 +74,8 @@ static struct keycmp { } keycmp[] = { { K_DOMAIN, table_domain_match }, { K_NETADDR, table_netaddr_match }, - { K_MAILADDR, table_mailaddr_match } + { K_MAILADDR, table_mailaddr_match }, + { K_REGEX, table_regex_match }, }; struct dbhandle {