Index | Thread | Search

From:
Martijn van Duren <openbsd+tech@list.imperialat.at>
Subject:
smtpd: remove WIZ plumbing
To:
tech@openbsd.org
Date:
Fri, 2 Jan 2026 17:15:32 +0100

Download raw body.

Thread
"support" for WIZ was added back in 2014 by eric@ in smtp_session.c
r1.195. The commit message doesn't have an OK, I couldn't find any
discussion, and the commit message states:
"Add support for DSN and Enhanced Status Code"

Considering the history of the command I assume this was added as a
joke, but especially with "support" in filters I think the joke might
have gone a bit too far. This effectively turns:
500 5.5.1 Invalid command: this feature is not supported yet ;-)
into
500 5.5.1 Invalid command: Command unrecognized

OK?

martijn@

diff b9146a17035f22954d6f1be04af1b32218d3b317 845c02cb5174e0f0f1fc6cbef0aacc3c0fa4b0ae
commit - b9146a17035f22954d6f1be04af1b32218d3b317
commit + 845c02cb5174e0f0f1fc6cbef0aacc3c0fa4b0ae
blob - b9c5d55c15f9052bc726f1a09484f0e32f75e2f3
blob + 4d17433265157de0285f5857437ad4c25454bc06
--- usr.sbin/smtpd/lka_filter.c
+++ usr.sbin/smtpd/lka_filter.c
@@ -94,7 +94,6 @@ static struct filter_exec {
 	{ FILTER_QUIT,    	"quit",		filter_builtins_notimpl },
 	{ FILTER_NOOP,    	"noop",		filter_builtins_notimpl },
 	{ FILTER_HELP,    	"help",		filter_builtins_notimpl },
-	{ FILTER_WIZ,    	"wiz",		filter_builtins_notimpl },
 	{ FILTER_COMMIT,    	"commit",      	filter_builtins_commit },
 };
 
@@ -1632,9 +1631,6 @@ lka_report_smtp_filter_response(const char *direction,
 	case FILTER_HELP:
 		phase_name = "help";
 		break;
-	case FILTER_WIZ:
-		phase_name = "wiz";
-		break;
 	case FILTER_COMMIT:
 		phase_name = "commit";
 		break;
blob - 195e75ec10fb05d4d30390a53c5ce5729b931505
blob + 3c4b0e3fa0dbb5c8a9ecf25cac1e21e3c3870acc
--- usr.sbin/smtpd/smtp_session.c
+++ usr.sbin/smtpd/smtp_session.c
@@ -82,7 +82,6 @@ enum smtp_command {
 	CMD_RSET,
 	CMD_QUIT,
 	CMD_HELP,
-	CMD_WIZ,
 	CMD_NOOP,
 	CMD_COMMIT,
 };
@@ -228,7 +227,6 @@ static void smtp_proceed_rcpt_to(struct smtp_session *
 static void smtp_proceed_data(struct smtp_session *, const char *);
 static void smtp_proceed_noop(struct smtp_session *, const char *);
 static void smtp_proceed_help(struct smtp_session *, const char *);
-static void smtp_proceed_wiz(struct smtp_session *, const char *);
 static void smtp_proceed_quit(struct smtp_session *, const char *);
 static void smtp_proceed_commit(struct smtp_session *, const char *);
 static void smtp_proceed_rollback(struct smtp_session *, const char *);
@@ -279,7 +277,6 @@ static struct {
 	{ CMD_QUIT,             FILTER_QUIT,            "QUIT",         smtp_check_noparam,     smtp_proceed_quit },
 	{ CMD_NOOP,             FILTER_NOOP,            "NOOP",         smtp_check_noop,        smtp_proceed_noop },
 	{ CMD_HELP,             FILTER_HELP,            "HELP",         smtp_check_noparam,     smtp_proceed_help },
-	{ CMD_WIZ,              FILTER_WIZ,             "WIZ",          smtp_check_noparam,     smtp_proceed_wiz },
 	{ CMD_COMMIT,  		FILTER_COMMIT,		".",		smtp_check_noparam,	smtp_proceed_commit },
 	{ -1,                   0,                      NULL,           NULL },
 };
@@ -1358,12 +1355,6 @@ smtp_command(struct smtp_session *s, char *line)
 		smtp_proceed_help(s, NULL);
 		break;
 
-	case CMD_WIZ:
-		if (!smtp_check_noparam(s, args))
-			break;
-		smtp_proceed_wiz(s, NULL);
-		break;
-
 	default:
 		smtp_reply(s, "500 %s %s: Command unrecognized",
 			    esc_code(ESC_STATUS_PERMFAIL, ESC_INVALID_COMMAND),
@@ -1901,14 +1892,6 @@ smtp_proceed_help(struct smtp_session *s, const char *
 }
 
 static void
-smtp_proceed_wiz(struct smtp_session *s, const char *args)
-{
-	smtp_reply(s, "500 %s %s: this feature is not supported yet ;-)",
-	    esc_code(ESC_STATUS_PERMFAIL, ESC_INVALID_COMMAND),
-	    esc_description(ESC_INVALID_COMMAND));
-}
-
-static void
 smtp_proceed_commit(struct smtp_session *s, const char *args)
 {
 	smtp_message_end(s->tx);
blob - e93ece542bca1130f7facaff0ff2df2b06c1ad50
blob + c7dcbc1a24d01cdd75356badfe9508eea07ef4a8
--- usr.sbin/smtpd/smtpd.h
+++ usr.sbin/smtpd/smtpd.h
@@ -418,7 +418,6 @@ enum filter_phase {
 	FILTER_QUIT,
 	FILTER_NOOP,
 	FILTER_HELP,
-	FILTER_WIZ,
 	FILTER_COMMIT,
 	FILTER_PHASES_COUNT     /* must be last */
 };