Codebase list opendmarc / c53d5a9
New upstream release * New upstream release - Refresh patches - Drop debian/patches/cve-2021-34555.patch, equivalent fix incorporated upstream Scott Kitterman 2 years ago
19 changed file(s) with 210 addition(s) and 127 deletion(s). Raw diff Collapse all Expand all
0 opendmarc (1.4.2-1) unstable; urgency=medium
1
2 * New upstream release
3 - Refresh patches
4 - Drop debian/patches/cve-2021-34555.patch, equivalent fix incorporated
5 upstream
6
7 -- Scott Kitterman <scott@kitterman.com> Tue, 18 Jan 2022 12:14:37 -0500
8
09 opendmarc (1.4.1.1-2) unstable; urgency=medium
110
211 * Deprecate /lib/opendmarc/opendmarc.service.generate script: instead, edit
0 Description: Add ARC override for policy "quarantine"
0 From: Scott Kitterman <scott@kitterman.com>
1 Date: Tue, 18 Jan 2022 11:57:01 -0500
2 Subject: Add ARC override for policy "quarantine"
3
14 Origin: other, https://github.com/trusteddomainproject/OpenDMARC/files/6697440/opendmarc-arc-overwrite-for-quarantines-patch.txt
25 Bug: https://github.com/trusteddomainproject/OpenDMARC/issues/24
6 ---
7 opendmarc/opendmarc.c | 29 +++++++++++++++++------------
8 1 file changed, 17 insertions(+), 12 deletions(-)
39
10 diff --git a/opendmarc/opendmarc.c b/opendmarc/opendmarc.c
11 index be3d496..9317817 100644
412 --- a/opendmarc/opendmarc.c
513 +++ b/opendmarc/opendmarc.c
6 @@ -3639,16 +3639,7 @@
14 @@ -3637,16 +3637,7 @@ mlfi_eom(SMFICTX *ctx)
715 conf->conf_holdquarantinedmessages &&
816 random() % 100 < pct)
917 {
2129
2230 ret = SMFIS_ACCEPT;
2331 result = DMARC_RESULT_QUARANTINE;
24 @@ -3685,7 +3676,7 @@
32 @@ -3683,7 +3674,7 @@ mlfi_eom(SMFICTX *ctx)
2533 ** arc.chain to assist with administrative debugging.
2634 */
2735
3038 dfc->mctx_arcpass == ARES_RESULT_PASS &&
3139 dfc->mctx_arcpolicypass != DMARC_ARC_POLICY_RESULT_PASS &&
3240 conf->conf_dolog)
33 @@ -3695,7 +3686,7 @@
41 @@ -3693,7 +3684,7 @@ mlfi_eom(SMFICTX *ctx)
3442 dfc->mctx_jobid);
3543 }
3644
3947 dfc->mctx_arcpolicypass == DMARC_ARC_POLICY_RESULT_PASS)
4048 {
4149 ret = SMFIS_ACCEPT;
42 @@ -3707,6 +3698,20 @@
43 dfc->mctx_jobid);
50 @@ -3706,6 +3697,20 @@ mlfi_eom(SMFICTX *ctx)
4451 }
4552 }
46 +
53
4754 + if (result == DMARC_RESULT_QUARANTINE)
4855 + {
4956 + snprintf(replybuf, sizeof replybuf,
5764 + dfc->mctx_jobid);
5865 + }
5966 + }
60
67 +
6168 /*
6269 ** Append arc override to historyfile. The format
70 **
0 Description: Fix segfaults, increase token max lengths in ARC-Seal headers
0 From: Scott Kitterman <scott@kitterman.com>
1 Date: Tue, 18 Jan 2022 11:57:01 -0500
2 Subject: Fix segfaults, increase token max lengths in ARC-Seal headers
3
14 Origin: other, https://github.com/trusteddomainproject/OpenDMARC/files/6717466/opendmarc-arcseal.patch.txt
25 Bug: https://github.com/trusteddomainproject/OpenDMARC/issues/183
6 ---
7 opendmarc/opendmarc-arcseal.c | 7 ++++++-
8 opendmarc/opendmarc-arcseal.h | 2 +-
9 2 files changed, 7 insertions(+), 2 deletions(-)
310
11 diff --git a/opendmarc/opendmarc-arcseal.c b/opendmarc/opendmarc-arcseal.c
12 index 73eebb7..66fc62a 100644
413 --- a/opendmarc/opendmarc-arcseal.c
514 +++ b/opendmarc/opendmarc-arcseal.c
615 @@ -29,7 +29,7 @@
1221
1322 /* tables */
1423 struct opendmarc_arcseal_lookup
15 @@ -167,7 +167,12 @@
24 @@ -167,7 +167,12 @@ opendmarc_arcseal_parse(u_char *hdr, struct arcseal *as)
1625 if (*token_ptr == '\0')
1726 return 0;
1827 tag_label = strsep(&token_ptr, "=");
2534
2635 tag_code = opendmarc_arcseal_convert(as_tags, tag_label);
2736
37 diff --git a/opendmarc/opendmarc-arcseal.h b/opendmarc/opendmarc-arcseal.h
38 index 4eb0927..6e11a06 100644
2839 --- a/opendmarc/opendmarc-arcseal.h
2940 +++ b/opendmarc/opendmarc-arcseal.h
3041 @@ -32,7 +32,7 @@
0 Description: Make function check_domain static
1 Author: David Bürgin <dbuergin@gluet.ch>
0 From: =?utf-8?q?David_B=C3=BCrgin?= <dbuergin@gluet.ch>
1 Date: Tue, 18 Jan 2022 11:57:01 -0500
2 Subject: Make function check_domain static
3
24 Bug: https://github.com/trusteddomainproject/OpenDMARC/pull/177
5 ---
6 libopendmarc/opendmarc_policy.c | 2 +-
7 1 file changed, 1 insertion(+), 1 deletion(-)
38
9 diff --git a/libopendmarc/opendmarc_policy.c b/libopendmarc/opendmarc_policy.c
10 index 32053db..c864906 100644
411 --- a/libopendmarc/opendmarc_policy.c
512 +++ b/libopendmarc/opendmarc_policy.c
613 @@ -35,7 +35,7 @@
0 Description: Fix off-by-one error buffer overrun in opendmarc_util_cleanup
0 From: Scott Kitterman <scott@kitterman.com>
1 Date: Tue, 18 Jan 2022 11:57:01 -0500
2 Subject: Fix off-by-one error buffer overrun in opendmarc_util_cleanup
3
14 Bug: https://github.com/trusteddomainproject/OpenDMARC/pull/188
5 ---
6 libopendmarc/opendmarc_util.c | 2 +-
7 1 file changed, 1 insertion(+), 1 deletion(-)
28
9 diff --git a/libopendmarc/opendmarc_util.c b/libopendmarc/opendmarc_util.c
10 index 4ab8ac0..86cc69b 100644
311 --- a/libopendmarc/opendmarc_util.c
412 +++ b/libopendmarc/opendmarc_util.c
5 @@ -160,7 +160,7 @@
13 @@ -160,7 +160,7 @@ opendmarc_util_cleanup(u_char *str, u_char *buf, size_t buflen)
614 {
715 char *sp, *ep;
816
0 Description: opendmarc/opendmarc.c:dmarfc_config_free: don't assert conf->conf_refcnt == 0
0 From: Scott Kitterman <scott@kitterman.com>
1 Date: Tue, 18 Jan 2022 11:57:01 -0500
2 Subject: opendmarc/opendmarc.c:dmarfc_config_free: don't assert
3 conf->conf_refcnt == 0
4
15 Bug: https://github.com/trusteddomainproject/OpenDMARC/issues/18
6 ---
7 opendmarc/opendmarc.c | 1 -
8 1 file changed, 1 deletion(-)
29
10 diff --git a/opendmarc/opendmarc.c b/opendmarc/opendmarc.c
11 index fbb6e40..fbf06b6 100644
312 --- a/opendmarc/opendmarc.c
413 +++ b/opendmarc/opendmarc.c
5 @@ -4227,7 +4227,6 @@
14 @@ -4225,7 +4225,6 @@ static void
615 dmarcf_config_free(struct dmarcf_config *conf)
716 {
817 assert(conf != NULL);
+0
-38
debian/patches/cve-2021-34555.patch less more
0 Description: CVE-2021-34555: Fix multi-value From rejection logic
1 Author: David Bürgin <dbuergin@gluet.ch>
2 Bug: https://github.com/trusteddomainproject/OpenDMARC/pull/178
3
4 --- a/opendmarc/opendmarc.c
5 +++ b/opendmarc/opendmarc.c
6 @@ -2513,17 +2513,22 @@
7
8 for (c = 1; users[c] != NULL; c++)
9 {
10 - if (strcasecmp(domains[0], domains[c]) != 0)
11 + if (domains[0] != NULL
12 + && domains[c] != NULL
13 + && strcasecmp(domains[0], domains[c]) != 0)
14 {
15 - syslog(LOG_ERR,
16 - "%s: multi-valued From field detected",
17 - dfc->mctx_jobid);
18 - }
19 + if (conf->conf_dolog)
20 + {
21 + syslog(LOG_ERR,
22 + "%s: multi-valued From field detected",
23 + dfc->mctx_jobid);
24 + }
25
26 - if (conf->conf_reject_multi_from)
27 - return SMFIS_REJECT;
28 - else
29 - return SMFIS_ACCEPT;
30 + if (conf->conf_reject_multi_from)
31 + return SMFIS_REJECT;
32 + else
33 + return SMFIS_ACCEPT;
34 + }
35 }
36
37 user = users[0];
66 contrib/rddmarc/dmarcfail.py | 2 +-
77 1 file changed, 1 insertion(+), 1 deletion(-)
88
9 diff --git a/contrib/rddmarc/dmarcfail.py b/contrib/rddmarc/dmarcfail.py
10 index 96df270..f849d92 100644
911 --- a/contrib/rddmarc/dmarcfail.py
1012 +++ b/contrib/rddmarc/dmarcfail.py
1113 @@ -1,4 +1,4 @@
0 Description: Fix memory leak when evaluating ARC chain by freeing temporary string "arcdomain"
0 From: Scott Kitterman <scott@kitterman.com>
1 Date: Tue, 18 Jan 2022 11:57:01 -0500
2 Subject: Fix memory leak when evaluating ARC chain by freeing temporary
3 string "arcdomain"
4
15 Origin: other, https://github.com/trusteddomainproject/OpenDMARC/files/6682308/opendmarc-free-arcdomain-patch.txt
26 Bug: https://github.com/trusteddomainproject/OpenDMARC/issues/182
7 ---
8 opendmarc/opendmarc.c | 3 +++
9 1 file changed, 3 insertions(+)
310
11 diff --git a/opendmarc/opendmarc.c b/opendmarc/opendmarc.c
12 index fbf06b6..be3d496 100644
413 --- a/opendmarc/opendmarc.c
514 +++ b/opendmarc/opendmarc.c
6 @@ -3011,6 +3011,9 @@
15 @@ -3009,6 +3009,9 @@ mlfi_eom(SMFICTX *ctx)
716 eptr = hsearch(entry,
817 FIND);
918 pthread_rwlock_unlock(&hash_lock);
0 Description: Correct HoldQuarantinedMessages documentation
1 Author: David Bürgin <dbuergin@gluet.ch>
0 From: =?utf-8?q?David_B=C3=BCrgin?= <dbuergin@gluet.ch>
1 Date: Tue, 18 Jan 2022 11:57:01 -0500
2 Subject: Correct HoldQuarantinedMessages documentation
3
24 Bug: https://github.com/trusteddomainproject/OpenDMARC/issues/165
5 ---
6 opendmarc/opendmarc.conf.5.in | 13 +------------
7 opendmarc/opendmarc.conf.sample | 16 +---------------
8 2 files changed, 2 insertions(+), 27 deletions(-)
39
10 diff --git a/opendmarc/opendmarc.conf.5.in b/opendmarc/opendmarc.conf.5.in
11 index dcb518c..0580b9d 100644
12 --- a/opendmarc/opendmarc.conf.5.in
13 +++ b/opendmarc/opendmarc.conf.5.in
14 @@ -196,18 +196,7 @@ aggregate reports can be extracted using
15 If set, the milter will signal to the mta that messages with
16 p=quarantine, which fail dmarc authentication, should be held in
17 the MTA's "Hold" or "Quarantine" queue. The name varies by MTA.
18 -If false, messsages will be accepted and passed along with the
19 -regular mail flow, and the quarantine will be left up to downstream
20 -MTA/MDA/MUA filters, if any, to handle by re-evaluating the headers,
21 -including the Authentication-Results header added by this filter.
22 -The default is "false".
23 -
24 -.TP
25 -.I HoldQuarantinedMessages (Boolean)
26 -If set, the milter will signal to the mta that messages with
27 -p=quarantine, which fail dmarc authentication, should be held in
28 -the MTA's "Hold" or "Quarantine" queue. The name varies by MTA.
29 -If false, messsages will be accepted and passed along with the
30 +If false, messages will be accepted and passed along with the
31 regular mail flow, and the quarantine will be left up to downstream
32 MTA/MDA/MUA filters, if any, to handle by re-evaluating the headers,
33 including the Authentication-Results header added by this filter.
34 diff --git a/opendmarc/opendmarc.conf.sample b/opendmarc/opendmarc.conf.sample
35 index 4e1f1ab..c545ba6 100644
436 --- a/opendmarc/opendmarc.conf.sample
537 +++ b/opendmarc/opendmarc.conf.sample
638 @@ -219,7 +219,7 @@
3365 ## IgnoreHosts path
3466 ## default (internal)
3567 ##
36 --- a/opendmarc/opendmarc.conf.5.in
37 +++ b/opendmarc/opendmarc.conf.5.in
38 @@ -196,18 +196,7 @@
39 If set, the milter will signal to the mta that messages with
40 p=quarantine, which fail dmarc authentication, should be held in
41 the MTA's "Hold" or "Quarantine" queue. The name varies by MTA.
42 -If false, messsages will be accepted and passed along with the
43 -regular mail flow, and the quarantine will be left up to downstream
44 -MTA/MDA/MUA filters, if any, to handle by re-evaluating the headers,
45 -including the Authentication-Results header added by this filter.
46 -The default is "false".
47 -
48 -.TP
49 -.I HoldQuarantinedMessages (Boolean)
50 -If set, the milter will signal to the mta that messages with
51 -p=quarantine, which fail dmarc authentication, should be held in
52 -the MTA's "Hold" or "Quarantine" queue. The name varies by MTA.
53 -If false, messsages will be accepted and passed along with the
54 +If false, messages will be accepted and passed along with the
55 regular mail flow, and the quarantine will be left up to downstream
56 MTA/MDA/MUA filters, if any, to handle by re-evaluating the headers,
57 including the Authentication-Results header added by this filter.
0 Description: Insert trace headers at index 0
1 Author: David Bürgin <dbuergin@gluet.ch>
0 From: =?utf-8?q?David_B=C3=BCrgin?= <dbuergin@gluet.ch>
1 Date: Tue, 18 Jan 2022 11:57:01 -0500
2 Subject: Insert trace headers at index 0
3
24 Bug: https://github.com/trusteddomainproject/OpenDMARC/pull/171
5 ---
6 opendmarc/opendmarc.c | 8 ++++----
7 1 file changed, 4 insertions(+), 4 deletions(-)
38
9 diff --git a/opendmarc/opendmarc.c b/opendmarc/opendmarc.c
10 index 5b09c3f..fbb6e40 100644
411 --- a/opendmarc/opendmarc.c
512 +++ b/opendmarc/opendmarc.c
6 @@ -3179,7 +3179,7 @@
13 @@ -3177,7 +3177,7 @@ mlfi_eom(SMFICTX *ctx)
714 authservid, pass_fail, use_domain);
815 }
916
1219 header) == MI_FAILURE)
1320 {
1421 if (conf->conf_dolog)
15 @@ -3244,7 +3244,7 @@
22 @@ -3242,7 +3242,7 @@ mlfi_eom(SMFICTX *ctx)
1623 "%s; dmarc=permerror header.from=%s",
1724 authservid, dfc->mctx_fromdomain);
1825
2128 header) == MI_FAILURE)
2229 {
2330 if (conf->conf_dolog)
24 @@ -3793,7 +3793,7 @@
31 @@ -3791,7 +3791,7 @@ mlfi_eom(SMFICTX *ctx)
2532 conf->conf_authservidwithjobid ? dfc->mctx_jobid : "",
2633 aresult, apolicy, adisposition, dfc->mctx_fromdomain);
2734
3037 header) == MI_FAILURE)
3138 {
3239 if (conf->conf_dolog)
33 @@ -3912,7 +3912,7 @@
40 @@ -3910,7 +3910,7 @@ mlfi_eom(SMFICTX *ctx)
3441 dfc->mctx_jobid != NULL ? dfc->mctx_jobid
3542 : JOBIDUNKNOWN);
3643
55 ticket207.patch
66 ticket208.patch
77 ticket212.patch
8 cve-2021-34555.patch
98 hold-quarantined-messages-doc.patch
109 insheader.patch
1110 check_domain.patch
00 From: Scott Kitterman <scott@kitterman.com>
11 Date: Mon, 23 Dec 2019 11:12:36 -0500
22 Subject: ticket159
3
34 Bug: https://sourceforge.net/p/opendmarc/tickets/159/
4
55 ---
66 configure.ac | 1 +
77 reports/opendmarc-importstats | 26 --------------------------
88 reports/opendmarc-importstats.in | 27 +++++++++++++++++++++++++++
99 3 files changed, 28 insertions(+), 26 deletions(-)
1010 delete mode 100755 reports/opendmarc-importstats
11 create mode 100755 reports/opendmarc-importstats.in
11 create mode 100644 reports/opendmarc-importstats.in
1212
13 diff --git a/configure.ac b/configure.ac
14 index 692dbe4..cf4ff90 100644
1315 --- a/configure.ac
1416 +++ b/configure.ac
15 @@ -538,6 +538,7 @@
17 @@ -538,6 +538,7 @@ AC_CONFIG_FILES([ Makefile
1618 reports/opendmarc-expire.8
1719 reports/opendmarc-import
1820 reports/opendmarc-import.8
2022 reports/opendmarc-importstats.8
2123 reports/opendmarc-params
2224 reports/opendmarc-params.8
25 diff --git a/reports/opendmarc-importstats b/reports/opendmarc-importstats
26 deleted file mode 100755
27 index 839a871..0000000
2328 --- a/reports/opendmarc-importstats
2429 +++ /dev/null
2530 @@ -1,26 +0,0 @@
4954 - ls -l ${statsdb}.OLD.$$
5055 - fi
5156 -fi
57 diff --git a/reports/opendmarc-importstats.in b/reports/opendmarc-importstats.in
58 new file mode 100644
59 index 0000000..3a28ee3
5260 --- /dev/null
5361 +++ b/reports/opendmarc-importstats.in
5462 @@ -0,0 +1,27 @@
11 Date: Mon, 23 Dec 2019 11:12:36 -0500
22 Subject: allow one to configure the SMTP Reject reason. This patch adds the
33 RejectString option.
4
45 Bug: https://sourceforge.net/p/opendmarc/tickets/168/
5 Author: M. Favero
6
76 ---
87 opendmarc/opendmarc-config.h | 1 +
98 opendmarc/opendmarc.c | 34 +++++++++++++++++++++++++++++++++-
1211 opendmarc/opendmarc.h | 1 +
1312 5 files changed, 50 insertions(+), 1 deletion(-)
1413
14 diff --git a/opendmarc/opendmarc-config.h b/opendmarc/opendmarc-config.h
15 index 1b781df..8398007 100644
1516 --- a/opendmarc/opendmarc-config.h
1617 +++ b/opendmarc/opendmarc-config.h
17 @@ -47,6 +47,7 @@
18 @@ -47,6 +47,7 @@ struct configdef dmarcf_config[] =
1819 { "RequiredHeaders", CONFIG_TYPE_BOOLEAN, FALSE },
1920 { "RejectFailures", CONFIG_TYPE_BOOLEAN, FALSE },
2021 { "RejectMultiValueFrom", CONFIG_TYPE_BOOLEAN, FALSE },
2223 { "ReportCommand", CONFIG_TYPE_STRING, FALSE },
2324 { "Socket", CONFIG_TYPE_STRING, FALSE },
2425 { "SoftwareHeader", CONFIG_TYPE_BOOLEAN, FALSE },
26 diff --git a/opendmarc/opendmarc.c b/opendmarc/opendmarc.c
27 index aee0d48..687ef6d 100644
2528 --- a/opendmarc/opendmarc.c
2629 +++ b/opendmarc/opendmarc.c
27 @@ -190,6 +190,7 @@
30 @@ -190,6 +190,7 @@ struct dmarcf_config
2831 char * conf_historyfile;
2932 char * conf_pslist;
3033 char * conf_ignorelist;
3235 char ** conf_trustedauthservids;
3336 char ** conf_ignoredomains;
3437 struct list * conf_domainwhitelist;
35 @@ -1419,6 +1420,10 @@
38 @@ -1419,6 +1420,10 @@ dmarcf_config_load(struct config *data, struct dmarcf_config *conf,
3639 &conf->conf_rejectfail,
3740 sizeof conf->conf_rejectfail);
3841
4346 (void) config_get(data, "RequiredHeaders",
4447 &conf->conf_reqhdrs,
4548 sizeof conf->conf_reqhdrs);
46 @@ -1627,6 +1632,33 @@
49 @@ -1627,6 +1632,33 @@ dmarcf_config_load(struct config *data, struct dmarcf_config *conf,
4750
4851 pthread_rwlock_unlock(&hash_lock);
4952
7780 return 0;
7881 }
7982
80 @@ -3558,7 +3590,7 @@
83 @@ -3561,7 +3593,7 @@ mlfi_eom(SMFICTX *ctx)
8184 random() % 100 < pct)
8285 {
8386 snprintf(replybuf, sizeof replybuf,
8689
8790 status = dmarcf_setreply(ctx, DMARC_REJECT_SMTP,
8891 DMARC_REJECT_ESC, replybuf);
92 diff --git a/opendmarc/opendmarc.conf.5.in b/opendmarc/opendmarc.conf.5.in
93 index f7cea9a..ced6ddb 100644
8994 --- a/opendmarc/opendmarc.conf.5.in
9095 +++ b/opendmarc/opendmarc.conf.5.in
91 @@ -273,6 +273,13 @@
96 @@ -272,6 +272,13 @@ If set, messages with multiple addresses in the From: field of the message
97 will be rejected unless all domain names in that field are the same. They
9298 will otherwise be ignored by the filter (the default).
9399
94 .TP
100 +.TP
95101 +.I RejectString (string)
96102 +This string describes the reason of reject at SMTP level.
97103 +The message MUST contain the word "%s" once, which will be replaced by
98104 +the RFC5322.From domain.
99105 +The default is "rejected by DMARC policy for %s"
100106 +
101 +.TP
107 .TP
102108 .I ReportCommand (string)
103109 Indicates the shell command to which failure reports should be passed for
104 delivery when
110 diff --git a/opendmarc/opendmarc.conf.sample b/opendmarc/opendmarc.conf.sample
111 index 69c9afb..2accc6f 100644
105112 --- a/opendmarc/opendmarc.conf.sample
106113 +++ b/opendmarc/opendmarc.conf.sample
107114 @@ -325,6 +325,14 @@
119126 ## ReportCommand string
120127 ## default "/usr/sbin/sendmail -t"
121128 ##
129 diff --git a/opendmarc/opendmarc.h b/opendmarc/opendmarc.h
130 index e36f93a..a3b053e 100644
122131 --- a/opendmarc/opendmarc.h
123132 +++ b/opendmarc/opendmarc.h
124133 @@ -34,6 +34,7 @@
44 ===================================================================
55 ---
66 db/Makefile.am | 2 +-
7 db/README.update-db-schema.mysql | 8 ++++++
7 db/README.update-db-schema.mysql | 8 ++++++++
88 db/schema.mysql | 3 ++-
9 db/update-db-schema.mysql | 12 +++++++++
10 reports/opendmarc-expire.in | 13 +++++++++-
11 reports/opendmarc-import.in | 53 +++++++++++++++++++++++-----------------
12 6 files changed, 65 insertions(+), 26 deletions(-)
9 db/update-db-schema.mysql | 12 ++++++++++++
10 reports/opendmarc-expire.in | 13 ++++++++++++-
11 5 files changed, 35 insertions(+), 3 deletions(-)
1312 create mode 100644 db/README.update-db-schema.mysql
1413 create mode 100644 db/update-db-schema.mysql
1514
15 diff --git a/db/Makefile.am b/db/Makefile.am
16 index 43b8614..83bc1d1 100644
1617 --- a/db/Makefile.am
1718 +++ b/db/Makefile.am
1819 @@ -1,3 +1,3 @@
2021
2122 -dist_doc_DATA = README.schema schema.mysql
2223 +dist_doc_DATA = README.schema schema.mysql README.update-db-schema.mysql update-db-schema.mysql
24 diff --git a/db/README.update-db-schema.mysql b/db/README.update-db-schema.mysql
25 new file mode 100644
26 index 0000000..8a6a909
2327 --- /dev/null
2428 +++ b/db/README.update-db-schema.mysql
2529 @@ -0,0 +1,8 @@
3135 +You might receive up to four errors about duplicate keys - this is expected if your database
3236 +already has these keys (because you used the MySQL schema in the db sub-direcory instead of
3337 +the obsolete schema in the reports sub-dirctory).
38 diff --git a/db/schema.mysql b/db/schema.mysql
39 index 059c3de..926d141 100644
3440 --- a/db/schema.mysql
3541 +++ b/db/schema.mysql
3642 @@ -5,6 +5,7 @@
4147
4248 -- A table for mapping domain names and their DMARC policies to IDs
4349 CREATE TABLE IF NOT EXISTS domains (
44 @@ -66,7 +67,7 @@
50 @@ -66,7 +67,7 @@ CREATE TABLE IF NOT EXISTS requests (
4551 pct TINYINT NOT NULL DEFAULT '0',
4652 locked TINYINT NOT NULL DEFAULT '0',
4753 firstseen TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
5056
5157 PRIMARY KEY(id),
5258 KEY(lastsent),
59 diff --git a/db/update-db-schema.mysql b/db/update-db-schema.mysql
60 new file mode 100644
61 index 0000000..5c0a190
5362 --- /dev/null
5463 +++ b/db/update-db-schema.mysql
5564 @@ -0,0 +1,12 @@
6574 +ALTER TABLE messages ADD KEY date (date);
6675 +ALTER TABLE signatures ADD KEY message (message);
6776 +
77 diff --git a/reports/opendmarc-expire.in b/reports/opendmarc-expire.in
78 index 326a5a3..0115429 100755
6879 --- a/reports/opendmarc-expire.in
6980 +++ b/reports/opendmarc-expire.in
70 @@ -210,6 +210,17 @@
81 @@ -210,6 +210,17 @@ if ($verbose)
7182 print STDERR "$progname: connected to database\n";
7283 }
7384
8596 #
8697 # Expire messages
8798 #
88 @@ -414,7 +425,7 @@
99 @@ -414,7 +425,7 @@ if ($verbose)
89100 print STDERR "$progname: expiring request data older than $maxage days\n";
90101 }
91102
66 reports/opendmarc-import.in | 6 +++---
77 1 file changed, 3 insertions(+), 3 deletions(-)
88
9 diff --git a/reports/opendmarc-import.in b/reports/opendmarc-import.in
10 index 3a2f404..0169c9e 100755
911 --- a/reports/opendmarc-import.in
1012 +++ b/reports/opendmarc-import.in
11 @@ -649,7 +649,7 @@
13 @@ -649,7 +649,7 @@ while (<$inputfh>)
1214 }
1315
1416 case "from" {
1719 }
1820
1921 case "job" {
20 @@ -691,7 +691,7 @@
22 @@ -691,7 +691,7 @@ while (<$inputfh>)
2123 }
2224
2325 case "mfrom" {
2628 }
2729
2830 case "p" {
29 @@ -703,7 +703,7 @@
31 @@ -703,7 +703,7 @@ while (<$inputfh>)
3032 }
3133
3234 case "pdomain" {
66 reports/opendmarc-reports.in | 8 +++++++-
77 1 file changed, 7 insertions(+), 1 deletion(-)
88
9 diff --git a/reports/opendmarc-reports.in b/reports/opendmarc-reports.in
10 index 69a2194..143997e 100755
911 --- a/reports/opendmarc-reports.in
1012 +++ b/reports/opendmarc-reports.in
11 @@ -65,6 +65,7 @@
13 @@ -65,6 +65,7 @@ my $domainset;
1214 my $forcedomain;
1315 my @skipdomains;
1416
1618 my $policy;
1719 my $spolicy;
1820 my $policystr;
19 @@ -447,7 +448,7 @@
21 @@ -447,7 +448,7 @@ foreach (@$domainset)
2022 next;
2123 }
2224
2527 if (!$dbi_s->execute($domainid))
2628 {
2729 print STDERR "$progname: can't get reporting URI for domain $domain: " . $dbi_h->errstr . "\n";
28 @@ -457,6 +458,7 @@
30 @@ -457,6 +458,7 @@ foreach (@$domainset)
2931 }
3032
3133 undef $repuri;
3335
3436 while ($dbi_a = $dbi_s->fetchrow_arrayref())
3537 {
36 @@ -488,6 +490,10 @@
38 @@ -488,6 +490,10 @@ foreach (@$domainset)
3739 {
3840 $lastsent = $dbi_a->[6];
3941 }
99 opendmarc/opendmarc.conf.sample | 10 ++++++++++
1010 4 files changed, 53 insertions(+), 1 deletion(-)
1111
12 diff --git a/opendmarc/opendmarc-config.h b/opendmarc/opendmarc-config.h
13 index 8398007..84cdcc5 100644
1214 --- a/opendmarc/opendmarc-config.h
1315 +++ b/opendmarc/opendmarc-config.h
14 @@ -40,6 +40,7 @@
16 @@ -40,6 +40,7 @@ struct configdef dmarcf_config[] =
1517 { "IgnoreAuthenticatedClients", CONFIG_TYPE_BOOLEAN, FALSE },
1618 { "IgnoreHosts", CONFIG_TYPE_STRING, FALSE },
1719 { "IgnoreMailFrom", CONFIG_TYPE_STRING, FALSE },
1921 { "MilterDebug", CONFIG_TYPE_INTEGER, FALSE },
2022 { "PidFile", CONFIG_TYPE_STRING, FALSE },
2123 { "PublicSuffixList", CONFIG_TYPE_STRING, FALSE },
24 diff --git a/opendmarc/opendmarc.c b/opendmarc/opendmarc.c
25 index 687ef6d..5b09c3f 100644
2226 --- a/opendmarc/opendmarc.c
2327 +++ b/opendmarc/opendmarc.c
24 @@ -195,6 +195,7 @@
28 @@ -195,6 +195,7 @@ struct dmarcf_config
2529 char ** conf_ignoredomains;
2630 struct list * conf_domainwhitelist;
2731 unsigned int conf_domainwhitelisthashcount;
2933 };
3034
3135 /* LIST -- basic linked list of strings */
32 @@ -1381,6 +1382,11 @@
36 @@ -1381,6 +1382,11 @@ dmarcf_config_load(struct config *data, struct dmarcf_config *conf,
3337 if (str != NULL)
3438 dmarcf_mkarray(str, ",", &conf->conf_ignoredomains);
3539
4145 (void) config_get(data, "AuthservIDWithJobID",
4246 &conf->conf_authservidwithjobid,
4347 sizeof conf->conf_authservidwithjobid);
44 @@ -2339,6 +2345,7 @@
48 @@ -2339,6 +2345,7 @@ sfsistat
4549 mlfi_eom(SMFICTX *ctx)
4650 {
4751 _Bool wspf = FALSE;
4953 int c;
5054 int pc;
5155 int policy;
52 @@ -3800,7 +3807,34 @@
56 @@ -3803,7 +3810,34 @@ mlfi_eom(SMFICTX *ctx)
5357 ** Record activity in the history file.
5458 */
5559
8589 (conf->conf_recordall || ostatus != DMARC_DNS_ERROR_NO_RECORD))
8690 {
8791 FILE *f;
92 diff --git a/opendmarc/opendmarc.conf.5.in b/opendmarc/opendmarc.conf.5.in
93 index ced6ddb..dcb518c 100644
8894 --- a/opendmarc/opendmarc.conf.5.in
8995 +++ b/opendmarc/opendmarc.conf.5.in
90 @@ -232,6 +232,13 @@
96 @@ -231,6 +231,13 @@ be ignored by the filter. The list should be comma-separated. Matching
97 against this list is case-insensitive. The default is an empty list, meaning
9198 no mail is ignored.
9299
93 .TP
100 +.TP
94101 +.I IgnoreMailTo (string)
95102 +Gives a list of mail addresses which aren't entered into the history file.
96103 +This is useful to prevent exchanging mutual message reports. The
97104 +list should be comma-separated. Matching against this list is
98105 +case-insensitive. The default is an empty list, meaning no mail is ignored.
99106 +
100 +.TP
107 .TP
101108 .I MilterDebug (integer)
102109 Sets the debug level to be requested from the milter library. The
103 default is 0.
110 diff --git a/opendmarc/opendmarc.conf.sample b/opendmarc/opendmarc.conf.sample
111 index 2accc6f..4e1f1ab 100644
104112 --- a/opendmarc/opendmarc.conf.sample
105113 +++ b/opendmarc/opendmarc.conf.sample
106114 @@ -268,6 +268,16 @@
00 From: Scott Kitterman <scott@kitterman.com>
11 Date: Mon, 23 Dec 2019 11:12:36 -0500
22 Subject: ticket212
3
34 Bug: https://sourceforge.net/p/opendmarc/tickets/212/
4
55 ---
66 libopendmarc/opendmarc_tld.c | 7 +++++--
77 1 file changed, 5 insertions(+), 2 deletions(-)
88
9 diff --git a/libopendmarc/opendmarc_tld.c b/libopendmarc/opendmarc_tld.c
10 index 6dd889d..fa2de26 100644
911 --- a/libopendmarc/opendmarc_tld.c
1012 +++ b/libopendmarc/opendmarc_tld.c
11 @@ -134,8 +134,11 @@
13 @@ -134,8 +134,11 @@ opendmarc_tld_read_file(char *path_fname, char *commentstring, char *drop, char
1214 return (errno == 0) ? ENOMEM : errno;
1315
1416 fp = fopen(path_fname, "r");