change the smtpd table protocol
authorop <op@openbsd.org>
Tue, 7 May 2024 12:10:06 +0000 (12:10 +0000)
committerop <op@openbsd.org>
Tue, 7 May 2024 12:10:06 +0000 (12:10 +0000)
commit8380d0005224591913aa460562d118c0e5eb6f50
treeb0c3bace1be57b448e8863ca4d184d04fdab1937
parent3809f4f16c814a20b2d683c19d6ccb94580b5be6
change the smtpd table protocol

Using imsg for the "proc" table (external programs) has proven quite
painful in practice since a lot of smtpd internals (structs, enums,
etc..) have to be kept in sync with the various tables implementations.

Instead, a filter-like protocol for tables decouples the implementations
and allows to write and test tables easily.

The new text-based transport protocol is documented in the (added)
smtpd-tables(7) manpage.

The old imsg protocol is no longer supported and existing tables have to
be converted.  In particular, users of opensmtpd-extras tables will need
install the new opensmtpd-table-* packages.

With lots of suggestions and improvements from gilles and a tweak
from Philipp (philipp+openbsd [at] bureaucracy [dot] de), thanks!

ok gilles
usr.sbin/smtpd/makemap.c
usr.sbin/smtpd/queue_proc.c
usr.sbin/smtpd/scheduler_proc.c
usr.sbin/smtpd/smtpd.c
usr.sbin/smtpd/smtpd.h
usr.sbin/smtpd/table.c
usr.sbin/smtpd/table_proc.c