+++ /dev/null
-diff -ur postfix-2.4.5/src/smtpd/smtpd.c postfix-2.4.5-proxy/src/smtpd/smtpd.c
---- postfix-2.4.5/src/smtpd/smtpd.c 2007-09-11 00:27:31.181567626 +0200
-+++ postfix-2.4.5-proxy/src/smtpd/smtpd.c 2007-09-11 00:26:54.177444169 +0200
-@@ -2526,7 +2526,9 @@
- int out_error;
- char **cpp;
- const CLEANUP_STAT_DETAIL *detail;
-- const char *rfc3848_sess;
-+ VSTRING *proxy_why = 0;
-+ int proxy_code;
-+ const char *rfc3848_sess;
- const char *rfc3848_auth;
-
- #ifdef USE_TLS
-@@ -2705,8 +2707,19 @@
- if (state->err == CLEANUP_STAT_OK) {
- (void) proxy->cmd(state, SMTPD_PROX_WANT_ANY, ".");
- if (state->err == CLEANUP_STAT_OK &&
-- *STR(proxy->buffer) != '2')
-+ *STR(proxy->buffer) != '2') {
- state->err = CLEANUP_STAT_CONT;
-+ proxy_why = vstring_alloc(10);
-+ vstring_strncpy(proxy_why, STR(proxy->buffer), 3);
-+ if (alldig(STR(proxy_why)))
-+ proxy_code = atol(STR(proxy_why));
-+ else
-+ proxy_code = 554;
-+ vstring_strncpy(proxy_why, STR(proxy->buffer)+4, 5);
-+ smtpd_check_reject(state, MAIL_ERROR_POLICY, proxy_code, STR(proxy_why),
-+ "%s", STR(proxy->buffer));
-+ vstring_free(proxy_why);
-+ }
- }
- }
-
---- postfix-2.6.1/src/smtpd/smtpd_check.c.orig 2009-05-25 19:29:43.159923869 +0200
-+++ postfix-2.6.1/src/smtpd/smtpd_check.c 2009-05-25 19:31:30.299567709 +0200
-@@ -386,7 +386,7 @@
- * mail.
- */
- static int PRINTFLIKE(5, 6) defer_if(SMTPD_DEFER *, int, int, const char *, const char *,...);
--static int PRINTFLIKE(5, 6) smtpd_check_reject(SMTPD_STATE *, int, int, const char *, const char *,...);
-+int PRINTFLIKE(5, 6) smtpd_check_reject(SMTPD_STATE *, int, int, const char *, const char *,...);
-
- #define DEFER_IF_REJECT2(state, class, code, dsn, fmt, a1, a2) \
- defer_if(&(state)->defer_if_reject, (class), (code), (dsn), (fmt), (a1), (a2))
-@@ -758,7 +758,7 @@
-
- /* smtpd_check_reject - do the boring things that must be done */
-
--static int smtpd_check_reject(SMTPD_STATE *state, int error_class,
-+int smtpd_check_reject(SMTPD_STATE *state, int error_class,
- int code, const char *dsn,
- const char *format,...)
- {
-diff -ur postfix-2.4.5/src/smtpd/smtpd_check.h postfix-2.4.5-proxy/src/smtpd/smtpd_check.h
---- postfix-2.4.5/src/smtpd/smtpd_check.h 2007-09-11 00:27:30.414953649 +0200
-+++ postfix-2.4.5-proxy/src/smtpd/smtpd_check.h 2007-09-11 00:10:33.808156052 +0200
-@@ -25,6 +25,7 @@
- extern char *smtpd_check_data(SMTPD_STATE *);
- extern char *smtpd_check_eod(SMTPD_STATE *);
- extern char *smtpd_check_policy(SMTPD_STATE *, char *);
-+extern int smtpd_check_reject(SMTPD_STATE *state, int error_class, int code, const char *dsn, const char *format,...);
-
- /* LICENSE
- /* .ad