On Wed, Oct 28, 2020 at 09:05:40AM +0000, Allen Coates wrote:

> Some time ago (5 years maybe) I discovered that "OK" was not being universally
> recognised in every access list;  I cultivated the habit of using the words
> "ACCEPT" and REJECT" - and have had no problems since.

That's odd, because in fact Postfix does not support "ACCEPT", but
smtpd(8) definitely supports "OK" in *ALL* access(5) tables:

    smtpd_check.c:    if (STREQUAL(value, "DUNNO", cmd_len))
    smtpd_check.c:    if (STREQUAL(value, "REJECT", cmd_len)) {
    smtpd_check.c:    if (STREQUAL(value, "DEFER", cmd_len)) {
    smtpd_check.c:    if (STREQUAL(value, "HANGUP", cmd_len)) {
    smtpd_check.c:    if (STREQUAL(value, "INFO", cmd_len)) {
    smtpd_check.c:    if (STREQUAL(value, "WARN", cmd_len)) {
    smtpd_check.c:    if (STREQUAL(value, "FILTER", cmd_len)) {
    smtpd_check.c:    if (STREQUAL(value, "HOLD", cmd_len)) {
    smtpd_check.c:    if (STREQUAL(value, "DELAY", cmd_len)) {
    smtpd_check.c:    if (STREQUAL(value, "DISCARD", cmd_len)) {
    smtpd_check.c:    if (STREQUAL(value, "REDIRECT", cmd_len)) {
    smtpd_check.c:    if (STREQUAL(value, "BCC", cmd_len)) {
    smtpd_check.c:    if (STREQUAL(value, DEFER_IF_PERMIT, cmd_len)) {
    smtpd_check.c:    if (STREQUAL(value, DEFER_IF_REJECT, cmd_len)) {
    smtpd_check.c:    if (STREQUAL(value, "PREPEND", cmd_len)) {
    smtpd_check.c:    if (STREQUAL(value, "OK", cmd_len) || STREQUAL(value, 
"RELAY", cmd_len))

and even cleanup(8) supports "OK" in header/body_checks(5), though
"DUNNO" is preferred:

    cleanup_message.c:    if (STREQUAL(value, "REJECT", command_len)) {
    cleanup_message.c:    if (STREQUAL(value, "WARN", command_len)) {
    cleanup_message.c:    if (STREQUAL(value, "INFO", command_len)) {
    cleanup_message.c:    if (STREQUAL(value, "FILTER", command_len)) {
    cleanup_message.c:    if (STREQUAL(value, "PASS", command_len)) {
    cleanup_message.c:    if (STREQUAL(value, "DISCARD", command_len)) {
    cleanup_message.c:    if (STREQUAL(value, "HOLD", command_len)) {
    cleanup_message.c:    if (STREQUAL(value, "DELAY", command_len)) {
    cleanup_message.c:    if (STREQUAL(value, "PREPEND", command_len)) {
    cleanup_message.c:    if (STREQUAL(value, "REPLACE", command_len)) {
    cleanup_message.c:    if (STREQUAL(value, "REDIRECT", command_len)) {
    cleanup_message.c:    if (STREQUAL(value, "BCC", command_len)) {
    cleanup_message.c:    if (STREQUAL(value, "STRIP", command_len)) {
    cleanup_message.c:    if (STREQUAL(value, "IGNORE", command_len))
    cleanup_message.c:    if (STREQUAL(value, "DUNNO", command_len))    /* 
preferred */
    cleanup_message.c:    if (STREQUAL(value, "OK", command_len))       /* 
compat */

-- 
    Viktor.

Reply via email to