]> git.pld-linux.org Git - packages/postfix.git/blobdiff - postfix-log-proxy-rejects.patch
- updated for 2.6.1
[packages/postfix.git] / postfix-log-proxy-rejects.patch
index 1fdca09bb3844d36e6cf52d3f90936e4dc1ac5de..2f7e369a5c204d44103fa56554d50d01f091a2b6 100644 (file)
@@ -1,21 +1,50 @@
---- postfix-2.2.3/src/smtpd/smtpd.c~   2005-09-08 15:51:27.479075120 +0200
-+++ postfix-2.2.3/src/smtpd/smtpd.c    2005-09-08 17:28:05.934984184 +0200
-@@ -2076,8 +2076,11 @@
+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) smtpd_proxy_cmd(state, SMTPD_PROX_WANT_ANY, ".");
            if (state->err == CLEANUP_STAT_OK &&
 -              *STR(state->proxy_buffer) != '2')
 +              *STR(state->proxy_buffer) != '2') {
                state->err = CLEANUP_STAT_CONT;
-+              smtpd_check_reject(state, MAIL_ERROR_POLICY,
++              proxy_why = vstring_alloc(10);
++              vstring_strncpy(proxy_why, STR(state->proxy_buffer), 3);
++              if (alldig(STR(proxy_why)))
++                      proxy_code = atol(STR(proxy_why));
++              else
++                      proxy_code = 554;
++              vstring_strncpy(proxy_why, STR(state->proxy_buffer)+4, 5);
++              smtpd_check_reject(state, MAIL_ERROR_POLICY, proxy_code, proxy_why,
 +                                      "%s", STR(state->proxy_buffer));
++              vstring_free(proxy_why);
 +          }
        } else if (state->err != CLEANUP_STAT_SIZE) {
            state->err |= CLEANUP_STAT_PROXY;
            detail = cleanup_stat_detail(CLEANUP_STAT_PROXY);
---- postfix-2.2.3/src/smtpd/smtpd_check.c~     2005-09-08 15:51:27.482074664 +0200
-+++ postfix-2.2.3/src/smtpd/smtpd_check.c      2005-09-08 17:28:05.192097120 +0200
-@@ -764,7 +764,7 @@
+--- 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 */
  
                                      int code, const char *dsn,
                                      const char *format,...)
  {
---- postfix-2.2.3/src/smtpd/smtpd_check.h~     2005-09-08 15:51:27.483074512 +0200
-+++ postfix-2.2.3/src/smtpd/smtpd_check.h      2005-09-08 17:29:17.952035928 +0200
+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, char *format,...);
++extern int smtpd_check_reject(SMTPD_STATE *state, int error_class, int code, const char *dsn, const char *format,...);
  
  /* LICENSE
  /* .ad
This page took 0.26632 seconds and 4 git commands to generate.