August 29, 2021 10:16 PM, gil...@poolp.org wrote:

> Hellow,
> 
> The K_STRING and K_REGEX lookup kinds are missing from table_db even though 
> nothing prevents
> them from working technically. The following diff is enough to allow db 
> tables to be used on
> regex or string contexts.
> 
> 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 29 Aug 2021 20:08:30 -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,


the complete diff would be better:


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 {

Reply via email to