summaryrefslogtreecommitdiff
path: root/mail/postfix-policyd-spf/files/patch-policyd.c
diff options
context:
space:
mode:
authorDoug Barton <dougb@FreeBSD.org>2011-09-09 08:20:59 +0000
committerDoug Barton <dougb@FreeBSD.org>2011-09-09 08:20:59 +0000
commitde3193618a1433ed292d02288e1d0f93468224d9 (patch)
tree329753911635a17b06236d3564e8176c3cba2f50 /mail/postfix-policyd-spf/files/patch-policyd.c
parentSimplify USERS/GROUPS management, use groupmod instead of usermod to append u... (diff)
mail/libspf2-10 Vulnerable, use mail/libspf2 instead
mail/postfix-policyd-spf Relies on vulnerable mail/libspf2-10
Notes
Notes: svn path=/head/; revision=281487
Diffstat (limited to 'mail/postfix-policyd-spf/files/patch-policyd.c')
-rw-r--r--mail/postfix-policyd-spf/files/patch-policyd.c128
1 files changed, 0 insertions, 128 deletions
diff --git a/mail/postfix-policyd-spf/files/patch-policyd.c b/mail/postfix-policyd-spf/files/patch-policyd.c
deleted file mode 100644
index 7bd5c0b03263..000000000000
--- a/mail/postfix-policyd-spf/files/patch-policyd.c
+++ /dev/null
@@ -1,128 +0,0 @@
---- policyd.c.orig 2004-07-09 06:42:25.000000000 +0900
-+++ policyd.c 2008-06-23 12:55:02.000000000 +0900
-@@ -70,12 +70,14 @@
-
- #define POSTFIX_DUNNO "DUNNO"
- #define POSTFIX_REJECT "REJECT"
-+#define POSTFIX_PREPEND "PREPEND"
-
- typedef
- struct _config_t {
- char *localpolicy;
- char *explanation;
- int trustedforwarder;
-+ int softfailreject;
- int debug;
- } config_t;
-
-@@ -106,6 +108,7 @@
- static const struct option longopts[] = {
- { "localpolicy", required_argument, NULL, 'l', },
- { "trustedforwarder", no_argument, NULL, 't', },
-+ { "softfailreject", no_argument, NULL, 's', },
- { "explanation", required_argument, NULL, 'x', },
- { "debug", optional_argument, NULL, 'd', },
- { "help", no_argument, NULL, 'h', },
-@@ -119,7 +122,7 @@
- #else
- #define DOC_LONGOPT(l, v, t, p1) do { } while(0)
- #endif
--static const char *shortopts = "a:h";
-+static const char *shortopts = "l:x:d:tsh";
-
- #define DOC_OPT(s, l, v, t, p0, p1) do { \
- fprintf(stderr, " -%c%c%s%*s" t "\n", \
-@@ -137,10 +140,12 @@
- "Set the SPF local policy.", 21, 10);
- DOC_OPT('t', "trustedforwarder", NULL,
- "Use the trusted-forwarder.com whitelist.", 29, 13);
-+ DOC_OPT('s', "softfailreject", NULL,
-+ "Reject SOFTFAIL.", 29, 15);
- DOC_OPT('x', "explanation", "<explanation>",
- "Set the SPF explanation.", 16, 5);
-- DOC_OPT('d', "debug", "[<level>]",
-- "Set the debug level.", 20, 15);
-+ DOC_OPT('d', "debug", "<level>",
-+ "Set the debug level.", 22, 17);
- DOC_OPT('h', "help", NULL,
- "Display this help.", 29, 25);
- }
-@@ -249,7 +254,7 @@
- }
-
- static void
--process_request(request_t *req)
-+process_request(request_t *req, config_t *conf)
- {
- SPF_output_t output;
-
-@@ -268,7 +273,7 @@
-
- switch (output.result) {
- case SPF_RESULT_PASS:
-- strcpy(req->result, POSTFIX_DUNNO);
-+ snprintf(req->result, RESULTSIZE, POSTFIX_PREPEND " %s", output.received_spf);
- break;
- case SPF_RESULT_FAIL:
- snprintf(req->result, RESULTSIZE,
-@@ -287,11 +292,21 @@
- : ""));
- break;
- case SPF_RESULT_SOFTFAIL:
-+ if (conf->softfailreject == 1) {
-+ snprintf(req->result, RESULTSIZE,
-+ POSTFIX_REJECT " %s",
-+ (output.smtp_comment
-+ ? output.smtp_comment
-+ : (output.header_comment
-+ ? output.header_comment
-+ : "")));
-+ break;
-+ }
- case SPF_RESULT_NEUTRAL:
- case SPF_RESULT_UNKNOWN:
- case SPF_RESULT_NONE:
- default:
-- strcpy(req->result, POSTFIX_DUNNO);
-+ snprintf(req->result, RESULTSIZE, POSTFIX_PREPEND " %s", output.received_spf);
- break;
- }
-
-@@ -315,6 +330,11 @@
- argv0 = argv[0];
-
-
-+ config.localpolicy = NULL;
-+ config.explanation = NULL;
-+ config.trustedforwarder = 0;
-+ config.softfailreject = 0;
-+ config.debug = 0;
- while ((c =
- #ifdef HAVE_GETOPT_LONG
- getopt_long(argc, argv, shortopts, longopts, &idx)
-@@ -329,12 +349,15 @@
- case 't':
- config.trustedforwarder = 1;
- break;
-+ case 's':
-+ config.softfailreject = 1;
-+ break;
- case 'x':
- config.explanation = optarg;
- break;
- case 'd':
- if (optarg)
-- config.debug = atol(optarg);
-+ config.debug = atoi(optarg);
- else
- config.debug = 1;
- break;
-@@ -366,7 +389,7 @@
- CHECK(req.client_ip, "client_address")
- else CHECK(req.sender_address, "sender")
- else CHECK(req.helo_address, "helo_name")
-- else process_request(&req);
-+ else process_request(&req, &config);
-
- req.result[RESULTSIZE - 1] = '\0';
- printf("action=%s\n\n", req.result);