]> git.pld-linux.org Git - packages/postfix.git/blob - postfix-log-proxy-rejects.patch
- updates by Eero Hanninen <eero.hanninen at delfi.ee>; rel 5.1 (give it a test!)
[packages/postfix.git] / postfix-log-proxy-rejects.patch
1 diff -ur postfix-2.4.5/src/smtpd/smtpd.c postfix-2.4.5-proxy/src/smtpd/smtpd.c
2 --- postfix-2.4.5/src/smtpd/smtpd.c     2007-09-11 00:27:31.181567626 +0200
3 +++ postfix-2.4.5-proxy/src/smtpd/smtpd.c       2007-09-11 00:26:54.177444169 +0200
4 @@ -2526,7 +2526,9 @@
5      int     out_error;
6      char  **cpp;
7      const CLEANUP_STAT_DETAIL *detail;
8 -    const char *rfc3848_sess;
9 +    VSTRING *proxy_why = 0;
10 +    int     proxy_code;
11 +    const char *rfc3848_sess;
12      const char *rfc3848_auth;
13  
14  #ifdef USE_TLS
15 @@ -2705,8 +2707,19 @@
16         if (state->err == CLEANUP_STAT_OK) {
17             (void) smtpd_proxy_cmd(state, SMTPD_PROX_WANT_ANY, ".");
18             if (state->err == CLEANUP_STAT_OK &&
19 -               *STR(state->proxy_buffer) != '2')
20 +               *STR(state->proxy_buffer) != '2') {
21                 state->err = CLEANUP_STAT_CONT;
22 +               proxy_why = vstring_alloc(10);
23 +               vstring_strncpy(proxy_why, STR(state->proxy_buffer), 3);
24 +               if (alldig(STR(proxy_why)))
25 +                       proxy_code = atol(STR(proxy_why));
26 +               else
27 +                       proxy_code = 554;
28 +               vstring_strncpy(proxy_why, STR(state->proxy_buffer)+4, 5);
29 +               smtpd_check_reject(state, MAIL_ERROR_POLICY, proxy_code, proxy_why,
30 +                                       "%s", STR(state->proxy_buffer));
31 +               vstring_free(proxy_why);
32 +           }
33         } else if (state->err != CLEANUP_STAT_SIZE) {
34             state->err |= CLEANUP_STAT_PROXY;
35             detail = cleanup_stat_detail(CLEANUP_STAT_PROXY);
36 diff -ur postfix-2.4.5/src/smtpd/smtpd_check.c postfix-2.4.5-proxy/src/smtpd/smtpd_check.c
37 --- postfix-2.4.5/src/smtpd/smtpd_check.c       2007-09-11 00:27:30.414953649 +0200
38 +++ postfix-2.4.5-proxy/src/smtpd/smtpd_check.c 2007-09-11 00:10:33.804822948 +0200
39 @@ -378,7 +378,7 @@
40    * mail.
41    */
42  static void PRINTFLIKE(5, 6) defer_if(SMTPD_DEFER *, int, int, const char *, const char *,...);
43 -static int PRINTFLIKE(5, 6) smtpd_check_reject(SMTPD_STATE *, int, int, const char *, const char *,...);
44 +int PRINTFLIKE(5, 6) smtpd_check_reject(SMTPD_STATE *, int, int, const char *, const char *,...);
45  
46  #define DEFER_IF_REJECT2(state, class, code, dsn, fmt, a1, a2) \
47      defer_if(&(state)->defer_if_reject, (class), (code), (dsn), (fmt), (a1), (a2))
48 @@ -759,7 +759,7 @@
49  
50  /* smtpd_check_reject - do the boring things that must be done */
51  
52 -static int smtpd_check_reject(SMTPD_STATE *state, int error_class,
53 +int smtpd_check_reject(SMTPD_STATE *state, int error_class,
54                                       int code, const char *dsn,
55                                       const char *format,...)
56  {
57 diff -ur postfix-2.4.5/src/smtpd/smtpd_check.h postfix-2.4.5-proxy/src/smtpd/smtpd_check.h
58 --- postfix-2.4.5/src/smtpd/smtpd_check.h       2007-09-11 00:27:30.414953649 +0200
59 +++ postfix-2.4.5-proxy/src/smtpd/smtpd_check.h 2007-09-11 00:10:33.808156052 +0200
60 @@ -25,6 +25,7 @@
61  extern char *smtpd_check_data(SMTPD_STATE *);
62  extern char *smtpd_check_eod(SMTPD_STATE *);
63  extern char *smtpd_check_policy(SMTPD_STATE *, char *);
64 +extern int smtpd_check_reject(SMTPD_STATE *state, int error_class, int code, const char *dsn, const char *format,...);
65  
66  /* LICENSE
67  /* .ad
This page took 0.028485 seconds and 3 git commands to generate.