Commit Diff


commit - 996ed9252693fdf20f6d8e31b0067b6829427266
commit + 4fb726123ba56ecd6994f718ca9944b17c4a37c0
blob - 33938c186ad42cb4216530c026ecdab85bdcb877
blob + a48260a5eb6a3d11e723e81e8f95aa2e50037d46
--- opensmtpd.c
+++ opensmtpd.c
@@ -1009,6 +1009,19 @@ osmtpd_filter_disconnect(struct osmtpd_ctx *ctx, const
 }
 
 void
+osmtpd_filter_rewrite(struct osmtpd_ctx *ctx, const char *value, ...)
+{
+	va_list ap;
+
+	io_printf(io_stdout, "filter-result|%016"PRIx64"|%016"PRIx64"|"
+	    "rewrite|", ctx->token, ctx->reqid);
+	va_start(ap, value);
+	io_vprintf(io_stdout, value, ap);
+	va_end(ap);
+	io_printf(io_stdout, "\n");
+}
+
+void
 osmtpd_filter_dataline(struct osmtpd_ctx *ctx, const char *line, ...)
 {
 	va_list ap;
blob - e9d58e9e35bc66e9c0da18f86f3a0fdb915d3d5d
blob + ab3fbc5542a3ca7699b94012de0324469b86eda1
--- opensmtpd.h
+++ opensmtpd.h
@@ -147,6 +147,8 @@ void osmtpd_filter_reject(struct osmtpd_ctx *, int, co
 	__attribute__((__format__ (printf, 3, 4)));
 void osmtpd_filter_disconnect(struct osmtpd_ctx *, const char *, ...)
 	__attribute__((__format__ (printf, 2, 3)));
+void osmtpd_filter_rewrite(struct osmtpd_ctx *, const char *, ...)
+	__attribute__((__format__ (printf, 2, 3)));
 void osmtpd_filter_dataline(struct osmtpd_ctx *, const char *, ...)
 	__attribute__((__format__ (printf, 2, 3)));
 void osmtpd_run(void);