mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-07 20:27:02 +01:00
84 lines
3.2 KiB
Diff
84 lines
3.2 KiB
Diff
|
diff --git a/opendmarc/opendmarc-config.h b/opendmarc/opendmarc-config.h
|
||
|
index 28f605e..ff4983d 100644
|
||
|
--- a/opendmarc/opendmarc-config.h
|
||
|
+++ b/opendmarc/opendmarc-config.h
|
||
|
@@ -32,6 +32,7 @@ struct configdef dmarcf_config[] =
|
||
|
{ "FailureReportsOnNone", CONFIG_TYPE_BOOLEAN, FALSE },
|
||
|
{ "FailureReportsSentBy", CONFIG_TYPE_STRING, FALSE },
|
||
|
{ "HistoryFile", CONFIG_TYPE_STRING, FALSE },
|
||
|
+ { "HoldQuarantinedMessages", CONFIG_TYPE_BOOLEAN, FALSE },
|
||
|
{ "IgnoreAuthenticatedClients", CONFIG_TYPE_BOOLEAN, FALSE },
|
||
|
{ "IgnoreHosts", CONFIG_TYPE_STRING, FALSE },
|
||
|
{ "IgnoreMailFrom", CONFIG_TYPE_STRING, FALSE },
|
||
|
diff --git a/opendmarc/opendmarc.c b/opendmarc/opendmarc.c
|
||
|
index 0179f4d..5aade55 100644
|
||
|
--- a/opendmarc/opendmarc.c
|
||
|
+++ b/opendmarc/opendmarc.c
|
||
|
@@ -155,6 +155,7 @@ struct dmarcf_config
|
||
|
_Bool conf_spfselfvalidate;
|
||
|
#endif /* WITH_SPF */
|
||
|
_Bool conf_ignoreauthclients;
|
||
|
+ _Bool conf_holdquarantinedmessages;
|
||
|
unsigned int conf_refcnt;
|
||
|
unsigned int conf_dnstimeout;
|
||
|
struct config * conf_data;
|
||
|
@@ -1297,6 +1298,10 @@ dmarcf_config_load(struct config *data, struct dmarcf_config *conf,
|
||
|
&conf->conf_recordall,
|
||
|
sizeof conf->conf_recordall);
|
||
|
|
||
|
+ (void) config_get(data, "HoldQuarantinedMessages",
|
||
|
+ &conf->conf_holdquarantinedmessages,
|
||
|
+ sizeof conf->conf_holdquarantinedmessages);
|
||
|
+
|
||
|
(void) config_get(data, "IgnoreAuthenticatedClients",
|
||
|
&conf->conf_ignoreauthclients,
|
||
|
sizeof conf->conf_ignoreauthclients);
|
||
|
@@ -3064,7 +3069,8 @@ mlfi_eom(SMFICTX *ctx)
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
- if (conf->conf_rejectfail && random() % 100 < pct)
|
||
|
+ if (conf->conf_rejectfail && random() % 100 < pct &&
|
||
|
+ conf->conf_holdquarantinedmessages)
|
||
|
{
|
||
|
snprintf(replybuf, sizeof replybuf,
|
||
|
"quarantined by DMARC policy for %s",
|
||
|
diff --git a/opendmarc/opendmarc.conf.5.in b/opendmarc/opendmarc.conf.5.in
|
||
|
index 9ee16ae..565e992 100644
|
||
|
--- a/opendmarc/opendmarc.conf.5.in
|
||
|
+++ b/opendmarc/opendmarc.conf.5.in
|
||
|
@@ -167,6 +167,13 @@ rather periodically imported into a relational database from which the
|
||
|
aggregate reports can be extracted.
|
||
|
|
||
|
.TP
|
||
|
+.I HoldQuarantinedMessages (Boolean)
|
||
|
+If set to true, causes mail that fails the DMARC tests to get hold
|
||
|
+by the MTA if the purported sender of the message has a policy of
|
||
|
+"quarantine". Does nothing if the policy is either "none" or "reject".
|
||
|
+The default is "true".
|
||
|
+
|
||
|
+.TP
|
||
|
.I IgnoreAuthenticatedClients (Boolean)
|
||
|
If set, causes mail from authenticated clients (i.e., those that used
|
||
|
SMTP AUTH) to be ignored by the filter. The default is "false".
|
||
|
diff --git a/opendmarc/opendmarc.conf.sample b/opendmarc/opendmarc.conf.sample
|
||
|
index fbfa49d..a2e1da3 100644
|
||
|
--- a/opendmarc/opendmarc.conf.sample
|
||
|
+++ b/opendmarc/opendmarc.conf.sample
|
||
|
@@ -177,6 +177,15 @@
|
||
|
#
|
||
|
# HistoryFile /var/run/opendmarc.dat
|
||
|
|
||
|
+## HoldQuarantinedMessages { true | false }
|
||
|
+## default "true"
|
||
|
+##
|
||
|
+## If set to true, causes mail that fails the DMARC tests to get hold
|
||
|
+## by the MTA if the purported sender of the message has a policy of
|
||
|
+## "quarantine". Does nothing if the policy is either "none" or "reject".
|
||
|
+#
|
||
|
+# HoldQuarantinedMessages true
|
||
|
+
|
||
|
## IgnoreAuthenticatedClients { true | false }
|
||
|
## default "false"
|
||
|
##
|