2025-10-16 16:43  ale

	* [r598] etc/zdkimfilter.conf.pod.in:
	  Describe the changed checkhelo_if_no_auth.
	  
	  release-notes-3.22.txt:
	  Mention checkhelo_if_no_auth,

2025-10-16 11:50  ale

	* [r597] src/parm.h, src/redact.c, src/treewalk.h, src/zdkimfilter.c:
	  Replace "char" type with "int8_t", which is known to be signed.

2025-10-06 10:43  ale

	* [r596] src/database.c:
	  Fix print format and odbx_escape() arg 5, after Alexis mail.

2025-07-08 10:37  ale

	* [r595] libopendkim/dkim-mailparse.c:
	  Steffen's group syntax

2025-03-11 17:26  ale

	* [r594] etc/zaggregate.pod.in:
	  Fix =head1.
	  
	  src/treewalk.c:
	  Accept records with only a "v=" tag.

2025-01-23 18:47  ale

	* [r593] tag v3.22

2025-01-17 09:47  ale

	* [r592] release-notes-3.22

2025-01-14 17:19  ale

	* [r591] src/parm.c:
	  Apply fix-use-after-scope error by Hanno Böck,
	  limit "Too much recursion" message to one,
	  free memory in the test function.
	  
	  src/treewalk.[ch]:
	  Export is_subdomain().
	  
	  src/zdkimfilter.c:
	  Change any_auth_ok used as boolean to good_auth as counter,
	  set vh.dkim_dps to (the last) signing domain,
	  on checkhelo_if_no_auth, reject also if there is one DKIM signature
	  having a d= which is not a parent domain of the non-existing helo.
	  
	  tests/testsuite.at:
	  Add test parameter inclusion at 4,
	  add various checks for non-existing HELO domain.

2025-01-14 11:57  ale

	* [r590] remove unripe release

2025-01-03 18:08  ale

	* [r589] tag v3.22

2025-01-03 17:48  ale

	* [r588] also bump debian/changelog and zdkimfilter.spec.

2025-01-03 17:47  ale

	* [r587] Version bump 3.22 prerelesase

2025-01-02 20:12  ale

	* [r586] libopendkim/dkim-canon.c:
	  Deinit hash context if dkim_tmpfile() fails.
	  
	  libopendkim/dkim.c:
	  deinit priv key and free crypto if crypto_is_new.
	  
	  src/database.c:
	  Bring prefix_len_buf out of if() scope.
	  
	  src/filterlib.c:
	  Free fl.cfc in the test main().
	  
	  src/transform.c:
	  Add one byte for the terminating 0 in decode_quoted_printable().
	  
	  src/zdkimfilter.c:
	  Read cbvp ony if (in && len) in copy_body_to_dkim(),
	  same for cbtf in copy_body_to_file(),
	  bring cbvp out of if() scope in sign_message().

2025-01-01 11:29  ale

	* [r585] libopendkim/tests/t-test73.c:
	  Fix by Hanno Böck (pointer type)

2024-12-22 12:21  ale

	* [r584] Changed the log "DNS: timeout server[0]: 127.0.0.1" to also report the
	  domain.

2024-10-26 16:26  ale

	* [r583] tests/testsuite.at:
	  Add a test with a public key containing spaces.

2024-10-02 11:56  ale

	* [r582] etc/odbx_example.pod.in:
	  Note INET6 type.

2024-09-12 16:35  ale

	* [r581] tag v3.21

2024-09-12 16:32  ale

	* [r580] etc/zfilter_db.pod.in:
	  Remove original_ri again.

2024-09-12 16:31  ale

	* [r579] etc/zfilter_db.pod.in:
	  Remove original_ri.

2024-09-12 16:29  ale

	* [r578] etc/odbx_example.pod.in:
	  remove original_ri
	  

2024-09-12 15:54  ale

	* [r577] debian/templates:
	  s/_Description/Description/
	  
	  debian/upgrade_mysql_3.21.sql:
	  Remove leftover.

2024-09-12 10:40  ale

	* [r576] debian/rules

2024-09-12 10:39  ale

	* [r575] debian/rules:
	  s/spaces/tab for updatepo.

2024-09-12 10:30  ale

	* [r574] tag v3.21

2024-09-12 10:19  ale

	* [r573] Missing one file.

2024-09-12 10:16  ale

	* [r572] debian/upgrade_mysql_3.21.sql:
	  New file.

2024-09-12 10:11  ale

	* [r571] tag v.3.21

2024-09-12 09:46  ale

	* [r570] configure.ac:
	  Bump to 3.21.
	  
	  debian/Makefile.am:
	  Add upgrade_mysql_3.21.sql.
	  
	  debian/rules:
	  Copy upgrade_mysql_3.21.sql to dbconfig-common.
	  
	  etc/zdkimfilter.conf.pod.in:
	  Remove vouch from description of reject_on_nxdomain.
	  
	  etc/zdkimfilter.pod.in:
	  Expand on Tree Walk.
	  
	  release-notes-3.21.txt:
	  New file.
	  
	  src/zdkimfilter.c:
	  Eliminate "vouch" from comment.
	  
	  tests/testsuite.at:
	  Eliminate "vouch".

2024-09-11 18:27  ale

	* [r569] etc/zdkimfilter.conf.pod.in:
	  Document checkhelo_if_no_auth.
	  revise <publicsuffix>.
	  
	  etc/zdkimfilter.pod.in:
	  Usage of PSL.
	  
	  libopendkim/dkim-dns.c:
	  Fix pointer=res.
	  
	  src/parm.[ch]:
	  New parameter checkhelo_if_no_auth.
	  
	  src/treewalk.[ch]:
	  New public function check_domain_exists().
	  
	  src/zdkimfilter.c:
	  Remove obsolete have_trusted_voucher,
	  rename forced_authentication_policy to forced_dmarc_policy,
	  add forced_checkhelo_policy, to be set per checkhelo_if_no_auth,
	  reject message in case.
	  
	  tests/testsuite.at:
	  Add test Reject message with non-existent HELO domain.

2024-08-31 11:37  ale

	* [r568] src/treewalk.c:
	  Remove ANY from "DNS: h_errno=%d (%s) querying ANY %s"

2024-08-19 10:06  ale

	* [r567] libopendkim/dkim-dns.c:
	  Set RES_USE_EDNS0.
	  
	  src/treewalk.c:
	  Typo.

2024-08-18 11:32  ale

	* [r566] zdkimfilter.spec:
	  Add gcc, make, perl, after Zenon's patch.

2024-08-09 11:23  ale

	* [r565] src/treewalk.[ch]:
	  Count attempts in tree_walk,
	  add function res_nopt(), copied from glibc,
	  set receive buffer to 1200 bytes,
	  more specific log for unusable response,
	  same for stray packet vs timed out response,
	  warn truncated packets.

2024-08-09 11:18  ale

	* [r564] configure.ac:
	  Bump version to 3.21beta2.

2024-07-27 16:39  ale

	* [r563] src/treewalk.c:
	  Must not query ANY, turbed to A.
	  
	  src/zdkimfilter.c:
	  Chect vh.tw != NULL in a number of places (still fail in case).

2024-07-25 11:36  ale

	* [r562] etc/zdkimfilter.conf.pod.in:
	  Notice at verbosity 5.
	  
	  src/treewalk.c:
	  Re-split is_aligned() into is_relaxed_aligned().
	  
	  zaggregate-example.sh:
	  Add Auto-Submitted, Precedence and X-Auto-Response-Suppress,
	  sendmail -N never.

2024-07-23 16:05  ale

	* [r561] src/Makefile.am:
	  TESTmyadsp and TESTtransform linked with parm.
	  
	  src/myadsp.c:
	  Fix advancement after name expand.
	  
	  src/treewalk.c:
	  Fix advancement after name expand,
	  fix do_report initialization.

2024-07-22 10:42  ale

	* [r560] src/Makefile.am:
	  TESTtransform uses treewalk (for cleanig up).
	  
	  src/transform.[ch]:
	  Clear the tw element of dkim_transform.
	  
	  src/treewalk.h:
	  The domain arg of treewalk() is not const,
	  new element free_domain, frees the malloc'ed domain name,
	  new element different_od, the org domain by PSL, if different.
	  
	  src/treewalk.c:
	  Free free_domain and different_od in clear_treewalk(),
	  in read_one_dmarc_record(), size of expand 1025 -> available,
	  set tw->free_domain = domain before returning a tree_walk,
	  static function is_subdomain(),
	  wrap is_aligned() in order to log misalignments.
	  
	  src/zdkimfilter.c:
	  Remove any normalized_from,
	  remove leftover funcs is_trusted_voucher() and mv2tv(),
	  in clean_vh() clean only vh's tree_walk,
	  log From: value before building tree_walk,
	  set different_od rather than logging it.

2024-07-21 12:54  ale

	* [r559] src/transform.[ch]:
	  Remove normalized_from[].
	  
	  src/zdkimfilter.c:
	  Do normalized_from[] in vh.

2024-07-20 18:43  ale

	* [r558] src/treewalk.c:
	  Ensure error messages for all bad returns,
	  make expand buffer 1025 bytes (max domain name).

2024-07-20 10:46  ale

	* [r557] Removed "psddmarc" from all files: Makefile.am,
	  debian/lintian-overrides, debian/postinst, debian/rules,
	  etc/zdkimfilter.conf.pod.in,
	  src/parm.[ch], and
	  tests/testsuite.at

2024-07-18 16:11  ale

	* [r556] Reintegrate branches/treewalk ready for v.3.21alpha

2024-07-08 12:08  ale

	* [r555] src/treewalk.c:
	  Free rua's in clear_treewalk().
	  
	  src/zdkimfilter.c:
	  Assert nrecords in set_dmarc().

2024-07-04 11:43  ale

	* [r554] src/transform.[ch]:
	  Add normalized_from[2] to save normalized domain names.
	  
	  src/treewalk.c:
	  Fix DMARC record parsing,
	  check query IDs are all different,
	  fix main() args.
	  
	  src/zdkimfilter.c:
	  Save normalized domain names.
	  
	  tests/testsuite.at:
	  New test for TESTtreewalk.

2024-07-02 17:55  ale

	* [r553] configure.ac:
	  In the tests for resolver library, use res_nquery() and also ns_get16().
	  
	  libopendkim/dkim.c:
	  Comment out a call to res_init(), which is deprecated.
	  
	  odbx_example.{conf,sql}:
	  Remove original_ri.
	  
	  src/Makefile.am:
	  Add treewalk where needed, and TEST.
	  
	  src/database.[ch]:
	  Remove original_ri,
	  remove is_super_org_domain,
	  intermediate parse_dmarc_rec() removed.
	  
	  src/database_variables.h:
	  Remove original_ri.
	  
	  src/myadsp.[ch]:
	  Move res_state pointer to resolver_state,
	  so add an argument to all query functions,
	  note a bug in fake_txt_query_both() --wontfix,
	  many DMARC functions moved to treewalk,
	  nqr_to_int() moved to the header file.
	  
	  src/transform.h:
	  Remove dmarc_domains and dmarc_rec,
	  add tree_walk.
	  
	  src/treewalk.[ch]:
	  New file for the treewalk.
	  
	  src/util.[ch]:
	  Remove is_subdomain(), as it cannot determine alignment.
	  
	  src/zaggregate.c:
	  Add resolver_state, with init,
	  remove dmarc_domains and dmarc_rec,
	  don't call adjust_ri() any more (use zag->period).
	  
	  src/zdkimfilter.c:
	  Use treewalk,
	  don't use pst2, but still verify pst,
	  remove use of dmarc_domains and dmarc_rec,
	  remove use of is_super_org_domain and is_o_super_org_domain,
	  alignment checks only done for SPF or DKIM domains,
	  
	  tests/testsuite.at:
	  Add several "whatever.X" in KEYFILEs, in order to bring about domain
	  existence and avoid adsp-nxdomain (non-replicated bug in fake lookups),
	  create DMARC record as needed to establish org domains.

2024-06-19 11:15  ale

	* [r552] src/treewalk.[ch]:
	  Completed functions.

2024-06-15 10:40  ale

	* [r551] src/treewalk.[ch]:
	  New DNS functions.

2024-06-15 10:36  ale

	* [r550] Public Suffix List to Tree Walk

2024-06-15 10:35  ale

	* [r549] straight over again

2024-06-14 17:59  ale

	* [r548] treewalk.[ch]:
	  New files for DNS async queries.

2024-06-14 17:57  ale

	* [r547] Create new branch

2024-06-14 17:55  ale

	* [r546] Try again

2024-06-14 17:43  ale

	* [r545] Public Suffix List to Tree Walk

2024-05-28 15:58  ale

	* [r544] etc/zdkimfilter.conf.pod.in:
	  Document xtag_value.
	  
	  src/parm.[ch]:
	  Add xtag_value.
	  
	  src/zdkimfilter.c:
	  Set xtag_value;
	  
	  tests/testsuite.at:
	  Test xtag_value.

2024-05-16 07:46  ale

	* [r543] debian/Makefile.am:
	  Add po/de.po po/POTFILES.in po/templates.pot in EXTRA_DISTS.
	  
	  debian/po/de.po:
	  New version by Helge Kreutzmann.
	  
	  debian/rules:
	  Call debconf-updatepo, suggested by Helge Kreutzmann.

2024-05-14 15:06  ale

	* [r542] etc/zdkimfilter.pod.in:
	  Reword ways to set the signing domain.

2024-05-14 14:08  ale

	* [r541] etc/zdkimfilter.conf.pod.in:
	  Fix &gt; -> E<gt>.
	  
	  release-notes-3.20.txt:
	  New file.

2024-05-14 12:03  ale

	* [r540] tag v.3.20

2024-05-14 12:03  ale

	* [r539] configure.ac: bump to version 3.20.
	  
	  debian/changelog:
	  zdkimfilter.spec:
	  Version 3.20

2024-05-14 11:48  ale

	* [r538] etc/zdkimfilter.conf.pod.in:
	  Document sign_local.
	  
	  src/filterlib.c:
	  Set is_relayclient and is_local for ulocal.
	  
	  src/filterlib.h:
	  Add is_local.
	  
	  src/parm.[ch]:
	  Add sign_local.
	  
	  src/zdkimfilter.c:
	  Default sign_local = 2,
	  add_local_unless in sign_parms,
	  on finding a signature, if local_unless quit sign_headers(),
	  local_unless is set in sign_message(),
	  don't call stats_outgoing if rtc != 0,
	  call free_parm_dyn_k on exit, (for rtc != 0),
	  sign_local > 0 is tested in dkimfilter().
	  
	  tests/testsuite.at:
	  Add sign_local,
	  add a test for sign_local = 0, 1, 2.

2024-05-11 17:17  ale

	* [r537] src/filterlib.c:
	  Log version on loading.
	  
	  tests/testsuite.at:
	  Keep both files for RFC 8463

2024-05-10 16:32  ale

	* [r536] tests/testsuite.at:
	  Also verify the signature given in RFC8463.

2024-05-10 15:29  ale

	* [r535] etc/zdkimfilter.conf.pod.in:
	  Document i_signer option.
	  
	  etc/zdkimgenkey.pod.in:
	  Default RSA key size is 2048.
	  
	  libopendkim/dkim-util.c:
	  New function +dkim_dstring_catnlow(), not used.
	  
	  libopendkim/dkim.[ch]:
	  dkim_set_signer() takes a char*, not unsigned.
	  
	  src/parm.[ch]:
	  New string parameter i_signer, by default NULL.
	  
	  src/zdkimfilter.c:
	  New function msg_separator(), for reporting error,
	  better reporting if the signing key failed,
	  call dkim_set_signer() if i_signer.
	  
	  tests/testsuite.at:
	  Replace ed25519 keys with those used by RFC 8463,
	  (with comment on how to do it)
	  new test trying to sign RFC 8463 example, sig can't match.

2024-05-10 08:52  ale

	* [r534] tests/testsuite.at:
	  Test ORELAYCLIENT without equal sign.

2024-05-09 13:58  ale

	* [r533] tag 3.19

2024-05-09 13:57  ale

	* [r532] debian/changelog:
	  zdkimfilter.spec:
	  Update version number

2024-05-09 13:44  ale

	* [r531] configure.ac:
	  Bump version to 3.19
	  
	  release-notes-3.19.txt:
	  New.

2024-05-09 13:37  ale

	* [r530] src/filterlib.c:
	  Take RELAYCLIENT even without a value (for local filtering)

2024-04-19 14:47  ale

	* [r529] tag v.3.18

2024-04-19 14:47  ale

	* [r528] debian/changelog, zdkimfilter.spec:
	  Changes for v3.18.

2024-04-19 14:45  ale

	* [r527] configure.ac:
	  Bump to 3.18.
	  
	  debian/changelog, zdkimfilter.spec:
	  Uncommitted 3.17 changes.

2024-04-19 14:22  ale

	* [r526] etc/zdkimfilter.conf.pod.in:
	  Document new option still_allow_no_from.
	  
	  src/parm.[ch]:
	  New boolean optionstill_allow_no_from.
	  
	  src/zdkimfilter.c:
	  Unless still_allow_no_from, reject messages with no or multiple From:.
	  
	  tests/testsuite.at:
	  Test with and without still_allow_no_from.

2024-04-19 12:53  ale

	* [r525] src/Makefile.am:
	  Add strdup_crsp.[ch] and rfc822_mytake.c.
	  
	  src/rfc822.h:
	  Declare replace_courier_wrap().
	  
	  src/rfc822_mytake.c:
	  New file created from replace_courier_wrap(),
	  add new function check_quoted(),
	  add debug build.
	  
	  src/strdup_crsp.[ch]:
	  New files created from strdup_crsp().
	  
	  src/zdkimfilter.c:
	  Move strdup_crsp() and replace_courier_wrap() to their own files.

2024-02-13 09:11  ale

	* [r524] Changes by Hege Kreutzmann:
	  debian/changelog
	  debian/control
	  debian/copyright
	  debian/po
	  debian/po/POTFILES.in
	  debian/po/de.po
	  debian/po/templates.pot
	  debian/rules
	  debian/templates

2023-10-10 18:36  ale

	* [r523] etc/zdkimfilter.conf.pod.in:
	  Document List-Unsubscribe-Post CFBL-Address CFBL-Feedback-ID.

2023-10-10 16:16  ale

	* [r522] tag v3.17 fixed.

2023-10-10 16:15  ale

	* [r521] redo

2023-10-10 16:12  ale

	* [r520] src/zdkimfilter.c:
	  Initialize fname in read_key().

2023-10-10 10:50  ale

	* [r519] tag v3.17

2023-10-10 10:46  ale

	* [r518] Prepare v3.17

2023-10-10 08:55  ale

	* [r517] etc/zdkimsign.pod.in:
	  Document directory used with -f.
	  
	  libopendkim/dkim-canon.c
	  libopendkim/dkim-types.h
	  libopendkim/dkim.c:
	  Overhaul openssl for version 3,
	  in dkim.c, add cfbl-address and cfbl-feedback-id to
	  dkim_should_signhdrs[] list of fields to sign if present, after rfc9477.
	  
	  src/database.c:
	  Fix bug which was getting the wrong ino number after zdkimsign.
	  
	  src/zdkimfilter.c:
	  New function normalize_utf8_twice() used for key symlinks and also in
	  place of normalize_utf8().

2023-09-14 17:43  ale

	* [r516] etc/zdkimfilter.conf.pod.in:
	  Fix logic line syntax

2023-09-08 17:58  ale

	* [r515] tag v3.16

2023-09-08 17:40  ale

	* [r514] configure.ac:
	  Switch to version 2.71 (Debian 12)
	  Bump release 3.16
	  
	  debian/changelog
	  release-notes-3.16.txt
	  zdkimfilter.spec

2023-07-19 09:58  ale

	* [r513] src/zdkimfilter.c:
	  Adjust sign_headers() parameters,
	  fix missing body case.
	  
	  tests/testsuite.at
	  Add a test for message with no body.

2023-07-12 16:30  ale

	* [r512] zdkimfilter:
	  Revise header parsing for empty message,
	  add an "invalid" case, rtc=3 in dkimfilter().

2023-06-15 08:14  ale

	* [r511] configure.ac:
	  Bump to 3.16beta.
	  
	  release-notes-3.16.txt:
	  New file.

2023-06-14 19:05  ale

	* [r510] libopendkim/dkim-mailparse.c:
	  Add a check that the cont returned value is right after comma.
	  
	  libopendkim/dkim.[ch]:
	  New function dkim_get_processed_header().
	  
	  src/transform.[ch]:
	  Fix add_candidate_from() emptiness, non-recursive, set added part,
	  new enum candidate_is for From: candidates.
	  
	  src/zdkimfilter.c:
	  New function strdup_add(),
	  in found_footer, found_content_type becomes multi-valued,
	  in ff_check_footer(), add continuation lines of Content-Type:,
	  use candidate_is instead of numbers,
	  in domain_flags(), guess the original value of Reply-To: or Cc:.

2023-05-18 08:42  ale

	* [r509] Add zfilter_db_snippet after modifying it with an example.

2023-03-29 10:52  ale

	* [r508] etc/zdkimfilter.conf.pod.in:
	  Typo.

2023-03-29 10:50  ale

	* [r507] tag v3.15

2023-03-29 09:55  ale

	* [r506] configure.ac:
	  Bump to 3.15.
	  
	  release-notes-3.15.txt:
	  Added.
	  
	  debian/changelog:
	  zdkimfilter.spec:

2023-03-28 16:22  ale

	* [r505] etc/zdkimfilter.conf.pod.in:
	  Document include and override.

2023-03-28 15:45  ale

	* [r504] src/parm.c:
	  New function skip_space_equal(),
	  call that instead of skipping _any_ equal sign,
	  fix memory leak.
	  
	  src/transform.[ch]:
	  Add first_content_type to struct dkim_transform.
	  
	  src/zdkimfilter.c:
	  Track first Content-Type: in case of mime_wrap
	  (in a few cases it can verify an otherwise failed signature).

2023-03-21 08:33  ale

	* [r503] src/zdkimfilter.c:
	  Log ignored signatures at verbose >= 5.
	  
	  tests/testsuite.at:
	  Adapt corresponding test.

2023-03-20 18:01  ale

	* [r502] src/zdkimfilter.c:
	  In somain_sort(), discard signatures with formal errors
	  (fixes nullptr in dkim_sig_wrapup()).
	  
	  tests/testsuite.at:
	  Allow a parameter in ZF_RUN, used to proceed as zdkimverify,
	  add another Hanno's check.

2023-03-18 14:01  ale

	* [r501] zdkimgenkey:
	  Bump default key size to 2048.

2023-03-17 11:08  ale

	* [r500] zdkimfilter.spec:
	  Install zdkimgenkey, patch by Svetozar Mihaylov

2023-03-17 09:15  ale

	* [r499] bump 3.15beta

2023-03-16 13:39  ale

	* [r498] src/Makefile.am:
	  Add TESTparm.
	  
	  src/parm.[ch]:
	  New feature: keywords include and override,
	  new function get_keyword(),
	  new recursive function do_read_all_values(),
	  rewrite read_single_values() changing prototype,
	  add testing main().
	  
	  src/redact.c:
	  Rewrite call to read_single_values().
	  
	  src/zdkimfilter.c:
	  Fix Hanno's another null pointer.
	  
	  src/zdkimsign.c:
	  Rewrite call to read_single_values().

2023-03-15 08:43  ale

	* [r497] configure.ac:
	  Same ownership/permissions as zdkimsign for redact.
	  
	  libopendkim/dkim-mailparse.c:
	  Fix Hanno's oobheap, returnin MY_MAILPARSE_ERR_ESCAPE_EOS,
	  add test case for it.
	  
	  src/Makefile.am:
	  Same ownership/permissions as zdkimsign for redact,
	  remove link to zarcseal on uninstall.

2023-03-14 11:35  ale

	* [r496] src/redact.c:
	  Adjust return code.

2023-03-13 13:21  ale

	* [r495] READMEsvn:
	  Add touch config.rpath

2023-03-13 11:05  ale

	* [r494] zdkimfilter:
	  Check broken signatures in post_eoh_process(), before doing anything
	  else with them.

2023-03-11 17:43  ale

	* [r493] libopendkim/dkim.c:
	  Stricter check in dkim_sig_hdrlistok().
	  
	  src/filterlib.c:
	  Return 128 + signal or 134, not 3.

2023-03-10 10:11  ale

	* [r492] tag v3.14

2023-03-10 10:10  ale

	* [r491] Bump to 3.14 (configure.ac, debian/changelog, release-notes-3.14.txt,
	  zdkimfilter.spec)

2023-03-10 08:28  ale

	* [r490] m4_redist.zip: updated.

2023-03-10 08:05  ale

	* [r489] libopendkim/dkim-canon.c:
	  Use char2unsigned_char() to cast struct members.
	  
	  libopendkim/dkim-types.h:
	  Define char2unsigned_char() inline function.
	  
	  tests/testsuite.at:
	  Add keys to Hanno's check.

2023-03-09 20:10  ale

	* [r488] libopendkim/dkim-canon.c:
	  Cast sha*_out to unsigned char* for SHA*_Final(),
	  arc_canon_runheaders_seal() do all canons (fix Hanno's bug).
	  
	  libopendkim/dkim-types.h:
	  sha1_out not unsigned (like sha256_out).
	  
	  libopendkim/dkim.[ch]:
	  Add list-unsubscribe-post to default sign headers,
	  new function dkim_clearerror().
	  
	  src/zdkimfilter.c:
	  New function log_arc_info() to be called when not filtered,
	  log any (left) dkim_error before write_file(),
	  log arc_info if not filtered.
	  
	  tests/testsuite.at:
	  Add Hanno's check,
	  add left error in one test.

2023-01-28 12:08  ale

	* [r487] configure.ac:
	  Commented out FFR features.

2023-01-26 18:30  ale

	* [r486] tag v3.13 again

2023-01-26 18:30  ale

	* [r485] Repeat correctly

2023-01-26 18:28  ale

	* [r484] Version 3.13 -- forgot to commit...

2023-01-11 10:03  ale

	* [r483] tag v3.13

2023-01-10 10:46  ale

	* [r482] etc/zdkimfilter.conf.pod.in:
	  Typo.
	  
	  libopendkim/dkim.c:
	  Compiler happy.

2023-01-09 12:56  ale

	* [r481] etc/zdkimfilter.conf.pod.in:
	  Document parameter scope (auto disabling or enabling) for
	  auth_pass, no_qp_conversion and key_choice_header.
	  
	  src/zdkimfilter.c:
	  Add "wrapped" in parm->dyn,
	  skip auth_pass on dyn.wrapped (was do_seal),
	  output selector when there is header.b.
	  
	  tests/testsuite.at:
	  Test with header.b.

2023-01-06 11:09  ale

	* [r480] src/zdkimfilter.c:
	  Don't consider changing signing domain if sealing,
	  don't add auth=pass if sealing.

2023-01-04 12:14  ale

	* [r479] Tag v3.12 (complete)

2023-01-04 12:14  ale

	* [r478] Remove incomplete release.

2023-01-04 11:58  ale

	* [r477] src/database.c:
	  Fix pid-mtime-ino keys.

2023-01-04 11:14  ale

	* [r476] src/zdkimfilter.c:
	  Fix compiler warning.

2023-01-03 19:24  ale

	* [r475] debian/changelog:
	  Fix ${myself}
	  
	  debian/control:
	  Remove silly dependenccy on mariadb.

2023-01-03 19:22  ale

	* [r474] tag v3.12.

2023-01-03 18:38  ale

	* [r473] etc/Makefile.am:
	  Link zarcseal.1.
	  
	  etc/zdkimsign.pod.in:
	  Document zarcseal.
	  
	  src/zdkimsign.c:
	  Option --db in --help.

2023-01-03 13:37  ale

	* [r472] libopendkim/dkim-arparse.c:
	  Check memory usage,
	  adjust return value.

2023-01-03 12:32  ale

	* [r471] libopendkim/dkim-arparse.[ch]:
	  New functions a_r_scan_value() and advance_past_semicolon(),
	  modified skip_cfws() and skip_digits(),
	  changed a_r_parse() behavior,
	  must_be_quoted() moved here.
	  
	  src/zdkimfilter.c:
	  must_be_quoted() removed.
	  
	  tests/testsuite.at:
	  Modified A-R test according to new behavior of a_r_parse.

2023-01-02 18:47  ale

	* [r470] configure.ac:
	  bump version to 3.12,
	  add libopendkim to AC_CONFIG_TESTDIR.
	  
	  debian/changelog:
	  Updated.
	  
	  debian/control:
	  tentative Depend.
	  
	  libopendkim/Makefile.am:
	  Add arparse.h.
	  
	  release-notes-3.12.txt:
	  New.
	  
	  tests/testsuite.at:
	  Don't pass version in A-R?
	  
	  zdkimfilter.spec:
	  3.12

2023-01-02 17:48  ale

	* [r469] libopendkim/dkim-types.h:
	  Change sha1_out to unsigned.
	  
	  libopendkim/dkim.c:
	  Fix build for OpenSSL.

2023-01-02 11:47  ale

	* [r468] Merged branches/arc

2023-01-02 11:43  ale

	* [r467] Sync

2023-01-02 11:38  ale

	* [r466] etc/zdkimsign.pod.in:
	  Document --db.
	  
	  src/database.c:
	  Sythesize ino, mtime, pid for non-Courier IDs.
	  
	  src/zdkimsign.c:
	  Add option --db.
	  
	  Adjust Copyright dates.

2023-01-01 13:36  ale

	* [r465] tests/testsuite.at:
	  Add test with cv=fail.

2022-12-23 18:50  ale

	* [r464] libopendkim/dkim-types.h:
	  Add boolean arc_set_inconsistent to DKIM.
	  
	  libopendkim/dkim.[ch]:
	  Add a flag to dkim_init() arguments (to skip res_init()),
	  in arc_do_seal(), free AMS crypto output before reusing,
	  manage inconsistency found after dkim_eoh() allocation.
	  
	  libopendkim/tests/*.c:
	  Modify call to dkim_init().
	  
	  src/filterlib.c:
	  Pass files to fl_runchild(), so child closes.
	  
	  src/zdkimfilter.c:
	  Manage dkim_init_flag, in parm,
	  free authserv_id in clear_sign_parms(),
	  free dkim_hdr in sign_message(),
	  do query_init also on sign-only --useless.
	  
	  tests/testsuite.at:
	  Remove --no-fork from seal tests, which behaves strangely,
	  add a test to Detect bad ARC chains.

2022-12-21 13:46  ale

	* [r463] etc/zdkimfilter.conf.pod.in:
	  Document oversign_hfields and no_qp_conversion.
	  
	  etc/zdkimfilter.pod.in:
	  Document --do-seal option,
	  document test4 entry of batch.
	  
	  libopendkim/dkim-canon.c:
	  Set arc_seal_failed in arc_canon_runheaders_seal().
	  
	  libopendkim/dkim-types.h:
	  Add arc_seal_failed in DKIM.
	  
	  libopendkim/dkim.[ch]:
	  Tweak return value of dkim_eom_verify() if ARC succeeds,
	  new functions dkim_getsealdomain() and dkim_getsealerror().
	  
	  src/parm.[ch]:
	  New parameters oversign_hfields and no_qp_conversion.
	  
	  src/zdkimfilter.c:
	  Fix ar_gather() skip header field,
	  use new parameters,
	  fix various logging also using arc_info,
	  use domain name for authserv-id if none found.
	  
	  tests/testsuite.at:
	  Add test for no_qp_conversion,
	  improve Seal and verify ARC set,
	  add Copy A-R to ARC-Authentication-Results,
	  add ARC sets sequence.

2022-12-18 18:29  ale

	* [r462] src/cstring.[ch]:
	  New functions cstr_printfrc() and cstr_printfrcv() to get rc.
	  
	  src/zdkimfilter.c:
	  Wrap long resinfo stanzas.

2022-12-16 13:10  ale

	* [r461] libopendkim/dkim-arparse.[ch]:
	  Finalize header file,
	  add quotes in values,
	  new function a_r_error(),
	  accept FIFO in the test file.
	  
	  libopendkim/dkim.c:
	  Commend arc_do_seal(), use ARC_AR_HDRNAME.
	  
	  src/Makefile.am:
	  On install symlink zarcseal,
	  link zdkimfilter with cstring.
	  
	  src/cstring.[ch]:
	  in cstr_insch() allow inserting at the end,
	  new function cstr_insstr(), tested in main().
	  
	  src/filterlib.[ch]:
	  Add test4 for fixed time (not used yet),
	  set fl.wrapped on zarcseal.
	  
	  src/zdkimfilter.c:
	  Include "cstring.h",
	  new flag do_seal in per_message_parm,
	  add parm and an ar cstring in sign_parms,
	  new function ar_gather(),
	  in sign_headers() with do_seal: disable qp conversion and track A-R,
	  define a context containing either sh or vh,
	  log sealing instead of signing if do_seal,
	  on do_seal do it instead of signing,
	  report ARC status on verifying,
	  new function set_fixedtime().
	  
	  src/zdkimsign.c:
	  Set do_seal if called as zarcseal.
	  
	  tests/testsuite.at:
	  Add a few checks for bad dnswl domain,
	  add a basic test for ARC.

2022-12-02 18:53  ale

	* [r460] libopendkim/dkim-canon.c:
	  Fix leaking hdrset in dkim_canon_runheaders().
	  
	  libopendkim/dkim-types.h:
	  Comment out sig_b64key and sig_b64keylen.
	  
	  libopendkim/dkim-util.c:
	  Renamed dkiml_dkim.
	  
	  libopendkim/dkim.c:
	  Include dkim_arparse.h,
	  use local sig_b64key and sig_b64keylen in dkim_get_key(),
	  remove usage of sig_b64keylen in other functions,
	  tweak dkim_eoh_verify() to take into account ARC sets,
	  new function arc_checkfail() to check arc= in A-R,
	  set correct arc_state in arc_do_seal(),
	  tweak dkim_eom_verify() to take into account ARC sets,
	  renamed libhandle->dkiml_dkim,
	  memset(libhandle, 0, ...) in dkim_init(),
	  
	  libopendkim/dkim.h:
	  Use enum for arc_state.
	  
	  libopendkim/tests/Makefile.am:
	  Add new test files.
	  
	  libopendkim/tests/t-setup.c:
	  Add FRA key.
	  
	  libopendkim/tests/t-test116 and 76.c:
	  Remove "bis" ARC headers that were added in October.
	  
	  libopendkim/tests/t-test300 to 310.c
	  New test files.
	  
	  libopendkim/tests/t-testdata.h:
	  FRA key and ARC stuff.

2022-11-30 12:22  ale

	* [r459] libopendkim/Makefile.am:
	  added dkim-arparse, with check program run in testsuite.
	  
	  libopendkim/dkim-arparse.[ch]:
	  New file with a_r_parse taken from src/util.c
	  
	  libopendkim/tests/t-test300.c:
	  First check file for ARC sealing.
	  
	  src/Makefile.am:
	  Remove TESTutil, now in libopendkim.
	  
	  src/transform.c:
	  include dkim-arparse.h,
	  new function skip_cfws_sep() moved here from util.c.
	  
	  src/util.[ch]:
	  Removed skip_comment(), skip_cfws(), skip_digits(), a_r_scan(),
	  a_r_parse and the TEST_UTIL conditional, gone to dkim-arparse.c,
	  removed skip_cfws_sep() gone to transform.c.
	  
	  src/zdkimfilter.c:
	  Include dkim-arparse.h

2022-11-28 17:19  ale

	* [r458] libopendkim/dkim-canon.[ch]:
	  New function dkim_canon_header_text() taking a char*,
	  new argument apply_flag to dkim_canon_selecthdrs(),
	  function arc_canon_strip_b() moved upward,
	  func dkim_canon_runheaders() use it, and no hdr flagging,
	  func dkim_canon_runheaders(), reser dkim_hdrbuf each loop,
	  apply_different hdr flags for signing and verifying,
	  dkim_canon_signature() take a char* and call dkim_canon_finalize(),
	  arc_canon_runheaders_seal() set different arc_state values,
	  new function arc_canon_runheaders_seal_again() when signing.
	  
	  libopendkim/dkim-tables.c:
	  Updated chainstatus for new arc_state values.
	  
	  libopendkim/dkim-types.h:
	  New defined flag DKIM_HDR_TO_BE_SIGNED,
	  new field dkim_arcmax in DKIM.
	  
	  libopendkim/dkim-util.[ch]
	  New function dkim_dstring_grab(),
	  new function dkim_dstring_catd(),
	  some char* turned to char const *.
	  
	  libopendkim/dkim.c:
	  Set dkim_arcmax while decoding ARC- headers,
	  fix copying already downloaded key,
	  func dkim_do_sign() merged into dkim_compute_signature(),
	  new function arc_do_seal() (to be completed),
	  new function arc_free_seal(),
	  use new arc_state values in dkim_eom_verify(),
	  fix cv=fail (must be in top ARC set),
	  remove output args from dkim_getsighdr_d(),
	  fix dkim_getsighdr_d() for bare b= endings,
	  compute signature at dkim_getsighdr(),
	  new function dkim_getsighdr_a(),
	  better dkim_getarcinfo().
	  
	  libopendkim/dkim.h:
	  New arc_state values,
	  define ARC*NAME of header fields.
	  
	  libopendkim/tests/Makefile.am
	  add t-test300,
	  comment out performance scripts.
	  
	  src/zdkimfilter.c:
	  Call dkim_getsighdr_a() instead of dkim_getsighdr_d(),
	  better report syntax errors on header fields,
	  output new values of arc_state in A-R.

2022-11-09 18:36  ale

	* [r457] libopendkim/dkim-tables.{c,h}:
	  Added chainstatus, copied from OpenARC.
	  
	  libopendkim/dkim-types.h:
	  Convert arc_state to an enum,
	  add dkim_eom_done boolean.
	  
	  libopendkim/dkim.c:
	  Use inttypes PRIu64,
	  move sigtype to dkim.h,
	  add sigtype to args of dkim_gensighdr() and dkim_getsighdr_d(),
	  split dkim_eom_sign() adding a new function dkim_do_sign().
	  
	  libopendkim/dkim.h:
	  Definition of sigtype moved here,
	  arc_chain_state as enum.
	  
	  libopendkim/tests/t-test148.c:
	  An invalid i= still suceeds dkim_eom(),
	  failure happens at dkim_getsighdr().
	  
	  src/zdkimfilter.c:
	  Specify sigtype_dkim when calling dkim_getsighdr_d.

2022-11-08 18:12  ale

	* [r456] libopendkim/dkim-canon.c:
	  New function dkim_check_canonbuf(),
	  remove dkim_check_hdrbuf().
	  
	  libopendkim/dkim-internal.h:
	  Declare dkim_check_hdrbuf().
	  
	  libopendkim/dkim.c:
	  Move dkim_check_hdrbuf() here.
	  
	  libopendkim/tests/t-test{54,64,72,141,152}.c
	  Remove HEADER0{3,4,5}bis. How come they passed previous checks?

2022-11-08 12:38  ale

	* [r455] libopendkim/dkim.c:
	  Fix assertions where AMS expected,
	  key loaded callback not called if same key,
	  exclude dkim_domain == NULL in dkim_eom_verify(),
	  chack AMSes in dkim_eom_verify(),
	  new function dkim_getarcinfo().
	  
	  libopendkim/dkim.h:
	  New function dkim_getarcinfo() with param.
	  
	  src/zdkimfilter.c:
	  Report ARC status on verifying.

2022-11-03 11:44  ale

	* [r454] libopendkim/dkim-types.h:
	  Define oldest_pass in DKIM.
	  
	  libopendkim/dkim.c:
	  Change dkim_borrow_header_verify() only borrow passed signatures,
	  also in dkim_borrow_header_verify() skim ARC processing,
	  in dkim_eom_verify() process ARC-Message-Signatures,
	  libhandle->dkim restricted to first instance.
	  
	  src/zdkimfilter.c:
	  In my_dkim_header(), accept non fatal return codes,
	  remove useless #pragmas.

2022-10-31 17:35  ale

	* [r453] libopendkim/dkim-internal.h:
	  Change prototype of dkim_process_set(): return a DKIM_SET*.
	  
	  libopendkim/dkim-types.h:
	  Add a _Bool memory_fault to DKIM.
	  
	  libopendkim/dkim-util.c:
	  Issue a memory fault error if unable to allocate, if there is a DKIM.
	  
	  libopendkim/dkim.c:
	  Replace dkim_process_set() calls to receive a set* and interpret it,
	  change the function itself accordingly.

2022-10-24 18:24  ale

	* [r452] dkim.h, dkim-internal.h:
	  Move ARC_CHAIN_* definitions to dkim.h,
	  add ARC_CHAIN_FAIL_CV.
	  
	  dkim.c:
	  Check cv="fail" in ARC-Seal,
	  set arc_state on error in dkim_process_set(),
	  new inline function check_sigmatch(),
	  check matching keys in ARC sets.

2022-10-20 17:37  ale

	* [r451] dkim-canon.c:
	  prevent double init in dkim_canon_init(),
	  set ARC_CHAIN_FAIL on ARC-Seal fail in arc_canon_runheaders_seal().
	  
	  dkim-types.h:
	  Comments.
	  
	  dkim.c:
	  Parameter "t" is supported but not required in ARC-Seal,
	  new function dkim_sig_clear(),
	  clear ARC signatures,
	  use DKIM_MALLOC for arc_sets.
	  
	  libopendkim/tests/t-testdata.h:
	  Define additional headers (02bis, 03bis, 04bis) for an ARC set.
	  
	  libopendkim/tests/t-test*.c (93 files):
	  Add an ARC set in the header of the message under test.

2022-10-18 18:34  ale

	* [r450] libopendkim/dkim-canon.c:
	  review various functions,
	  new function dkim_canon_finalize(),
	  new function dkim_check_hdrbuf(),
	  new function arc_canon_strip_b() from OpenARC,
	  new function arc_canon_runheaders_seal.
	  
	  libopendkim/dkim-canon.h:
	  changed dkim_canon_selecthdrs(),
	  new arc_canon_runheaders_seal().
	  
	  libopendkim/dkim-internal.h:
	  define ARC_constants,
	  change dkim_process_set();
	  
	  libopendkim/dkim-test.c:
	  if out unused dkim_test_key().
	  
	  libopendkim/dkim-types.h:
	  new struct arc_set,
	  reorder structs and fields.
	  
	  libopendkim/dkim-util.c:
	  minor unsigned char tweak.
	  
	  libopendkim/dkim.c:
	  new function arc_check_uint() from OpenARC,
	  changes to dkim_process_set() to add ARC types,
	  dkim_set_getudata() return header,
	  new function dkim_sig_fromset() extracted from dkim_siglist_setup(),
	  removed unused tagvalues feature,
	  change dkim_header() to allow AAR,
	  change dkim_eoh() to add a tentative check of ARC-Seal.
	  
	  libopendkim/tests/Makefile.am:
	  remove t-test41 and t-test45 testing removed tagvalues feature.
	  
	  src/zdkimfilter.c:
	  add fixed oversign parameter for testing.

2022-09-20 11:02  ale

	* [r449] Branch for ARC development.

2022-09-20 10:43  ale

	* [r448] debian/postinst:
	  Fix cron time accounting for time zone +0000.
	  
	  etc/odbx_example.pod.in:
	  Remove obsolete treatment of binary ip.

2022-09-06 10:29  ale

	* [r447] debian/postinst:
	  typeset befor assignment.
	  
	  etc/zdkimfilter.conf.pod.in: typo.

2022-06-29 07:54  ale

	* [r446] tag v3.11

2022-06-29 07:19  ale

	* [r445] configure:
	  Bump version to 3.11,
	  add --utf8 in pod2man options.
	  
	  debian and spec:
	  bump version to 3.11.
	  
	  urldecode.pod:
	  set encoding.
	  
	  release-notes-3.11:
	  new file, feature changes and bug fixes.

2022-06-29 06:56  ale

	* [r444] etc/urldecode.pod:
	  Minor addition (&#NNN).

2022-06-28 10:17  ale

	* [r443] etc/zdkimfilter.conf.pod.in:
	  Document no_signlen.
	  
	  src/zdkimfilter.c:
	  Two new functions, strchr_del_cr() and fgetc_skip_cr(),
	  invoke those instead of library ones when wrapped by zdkimverify,
	  don't issue the no_signlen warning on verify only cases.

2022-06-27 17:53  ale

	* [r442] libopendkim/base32.c:
	  Fix signed/unsigned comparison.
	  
	  libopendkim/dkim.[ch]:
	  New function dkim_tobesigned().
	  
	  libopendkim/tests/Makefile.am
	  libopendkim/tests/t-test201.c:
	  New simple test file for dkim_tobesigned().
	  
	  odbx_example.sql:
	  New example query with MAKE_SET.
	  
	  src/zdkimfilter.c:
	  Set dmarc_dispo also if vh.policy is not DMARC,
	  set sign/skip lists before options,
	  set signlen (l=) only if Content-Type is signed.
	  
	  tests/testsuite.at:
	  Modify parameter tests to have no_signlen=Y.

2022-06-15 10:15  ale

	* [r441] string.[ch]:
	  add function cstr_addutf8().
	  
	  urldecode.{c,pod}:
	  Decode &#-encoded entities in arguments.

2022-06-14 17:20  ale

	* [r440] transform.c:
	  In limit_size(), set terminating 0;
	  in decode_base64(), don't read beyond input length.

2022-06-14 09:27  ale

	* [r439] zdkimfilter: compiler warning.

2022-06-04 13:02  ale

	* [r438] zdkimfilter:
	  Fix bug: zdkimfilter crashes on d=; fixed domain_sort().

2022-05-18 08:18  ale

	* [r437] debian/changelog:
	  Version 3.10.
	  
	  etc/mangle_doc.pl:
	  Remove special header for 'old',
	  mv ['old', 'OLD ZDKIMFILTER', 'v-0.5.shtml']
	  to ['old', 'ALL VERSIONS', 'all.shtml'].
	  
	  etc/webdoc.sh:
	  Rename to all.shtml.
	  
	  release-notes-3.10.txt:
	  Describe changes.
	  
	  zaggregate:
	  Remove "::ffff:" from ip
	  (this didn't make it into 3.10).

2022-05-17 15:05  ale

	* [r436] tag v3.10

2022-05-14 10:53  ale

	* [r435] debian/postinst:
	  Remove header_canon_relaxed, which is already there.
	  
	  debian/upgrade_mysql_3.10.sql:
	  Replace stored procedure sent_message.
	  
	  etc/zfilter_db.pod.in:
	  Complete review.
	  
	  odbx_example.conf:
	  Remove passing vbr.
	  
	  odbx_example.sql:
	  Replace comments (# to /* */),
	  remove engine specification from tables creation,
	  remove BINARY(4) in sent_message.
	  
	  database:
	  Fix call to db_check_user() in test mode.

2022-05-10 17:28  ale

	* [r434] debian/Makefile.am, lintian-overrides:
	  Lintian overrides lives in debian, not debian/source.
	  
	  debian/config:
	  Input priority set to high.
	  
	  libopendkim/dkim-atps.c:
	  uchar -> char.
	  
	  libopendkim/dkim-canon.c:
	  (void)!write works.
	  
	  libopendkim/dkim-dns.c, dkim-dns.h, dkim-keys.c, dkim-mailparse.c, ...:
	  Compiler happy.
	  
	  zdkimfilter:
	  IP address for IPv4 not IPv4-mapped (i.e. remove ::ffff:).

2022-05-09 12:07  ale

	* [r433] debian/Makefile.am:
	  Add lintian-overrides.
	  
	  debian/changelog:
	  Version 3.10.
	  
	  debian/rules:
	  DEB_BUILD_OPTIONS=hardening=+all.
	  
	  debian/source/lintian-overrides:
	  Trying to avoid useless warnings.
	  
	  etc/zdkimfilter.conf.pod.in:
	  s/allow/enable.
	  
	  database, zdkimfilter:
	  Update call to write_dmarc_rec().
	  
	  myadsp:
	  Add argument "all" to write_dmarc_rec(), to set default values.
	  
	  zaggregate:
	  Compliance: add envelope_from, version, and default policy values.
	  
	  tentative-psddmarc-list.txt:
	  Add gov.in.

2022-05-06 16:49  ale

	* [r432] debian/config:
	  Set -e.
	  
	  debian/postinst:
	  chown zdkimfilter.
	  
	  debian/rules:
	  Try setting funny variables.
	  
	  etc/zdkimfilter.conf.pod.in:
	  Typo?!

2022-05-06 15:36  ale

	* [r431] configure.ac:
	  Add option --enable-debian-build.
	  
	  debian/Makefile.am:
	  Distribute templates.
	  
	  debian/config:
	  Set -e.
	  
	  debian/rules:
	  Use --enable-debian-build.

2022-05-06 14:38  ale

	* [r430] testsuite:
	  Set worthiness=2 for tests to behave as they used to.

2022-05-06 10:24  ale

	* [r429] configure.ac:
	  Bump to 3.10.
	  
	  debian/config:
	  Ask whether zdkimsign should be setuid.
	  
	  debian/control:
	  Build-depend on coreutils (stat).
	  
	  debian/postinst:
	  Set zdkimsign setuid if required,
	  run some generic stuff also if not "$dbc_install" = "true",
	  use OUTPUT=&2.
	  
	  debian/rules:
	  Remove --enable-zdkimsign-setuid,
	  add upgrade_mysql_3.10.sql.
	  
	  debian/templates:
	  New file.
	  
	  zdkimfilter:
	  Change the default value of dnswl_worthiness_pass from 1 to 2.

2022-05-05 17:16  ale

	* [r428] Change ip type to INET6:
	  
	  debian/Makefile.am:
	  Distribute upgrade_mysql_3.10.sql.
	  
	  debian/upgrade_mysql_3.10.sql:
	  New file.
	  
	  odbx_example.{conf,sql}:
	  X'$(ip)' -> '$(ip)',
	  no more INET_NTOA CONV HEX.
	  
	  release-notes-3.10.txt:
	  Draft.
	  
	  src/Makefile.am:
	  Drop ip_to_hex.c.
	  
	  database:
	  In db_set_client_ip(), add ::ffff: prefix.
	  
	  zdkimfilter:
	  Also look at OTCPREMOTEIP if not found as dns.
	  
	  testsuite:
	  c0000201 -> ::ffff:192.0.2.1 and similar.

2022-05-04 14:43  ale

	* [r427] TODO, debian/postinst, zdkimfilter.conf.pod.in:
	  Typos.

2022-05-04 14:05  ale

	* [r426] zdkimgnkey:
	  Fix the value of bits in usage.

2022-05-04 14:02  ale

	* [r425] Removed VBR
	  
	  odbx_example.pod.in:
	  Remove vbr from msg_ref.
	  
	  zdkimfilter.conf.pod.in:
	  Remove trusted_vouchers paragraph.
	  
	  zfilter_db.pod.in:
	  Remove vbr, vbr_mv,
	  arranged examples.
	  
	  odbx_example.sql:
	  Remove vbr from auth SET.
	  
	  Makefile.am:
	  Remove myvbr.[ch],
	  remove TESTmyvbr.
	  
	  database.c:
	  Remove vbr_mv, vbr_bit, vbr_is_ok.
	  
	  database.h:
	  Remove has_vbr, vbr_is_trusted, vbr_is_ok,
	  remove vbr_mv, vbr_result_resp.
	  
	  database_variables.h:
	  Remove vbr_mv, vbr_response.
	  
	  filterlib.c:
	  Remove handler for fn->test_fn4.
	  
	  filterlib.h:
	  Remove test_fn4.
	  
	  parm.[ch]:
	  Remove trusted_vouchers.
	  
	  zdkimfilter.c:
	  As needed.
	  
	  testsuite.at:
	  As needed.

2022-05-04 11:57  ale

	* [r424] format: set to 3.0 (native).
	  
	  Removed reputation:
	  
	  zdkimfilter.conf.pod.in:
	  removed doc paragraphs about do_reputation, reputation_fail,
	  reputation_pass, and reputation_root.
	  
	  zfilter.db.pod.in:
	  Remove mentions of rep and rep_s,
	  remove reputation.
	  
	  odbx_example.conf:
	  remove reputation from msg_ref variables.
	  
	  odbx_example.sql:
	  remove reputation column,
	  remove rep and rep_s from the set bits of auth.
	  
	  Makefile:
	  remove myreputation.[ch],
	  remove TESTmyrep.
	  
	  database:
	  remove reputation_mask_bit,
	  shorten authbuf,
	  remove setting rep, rep_s.
	  
	  database_variables.h:
	  remove reputtion.
	  
	  parm:
	  as needed.
	  
	  zdkimfilter:
	  as needed.
	  
	  testsuite:
	  remove rep=0
	  strabge fact at [Report all sigs with header.b].

2022-04-01 16:22  ale

	* [r423] TODO: add note for libopendkim.
	  
	  zdkimfilter:
	  Duplicate ff_check_footer() for text/plain to allow many footers.

2022-03-11 17:14  ale

	* [r422] zdkimfilter:
	  Fix ff_check_footer() for Usenet Signature Convention.

2022-03-06 12:05  ale

	* [r421] TODO:
	  Add envelope_sender and multiple From:

2022-03-04 10:23  ale

	* [r420] etc/*.py, etc/webdoc.sh:
	  Port the database picture creation to Python3.

2022-02-26 11:21  ale

	* [r419] tag v3.9 again

2022-02-26 10:54  ale

	* [r418] remove bad tag for v3.9

2022-02-26 10:51  ale

	* [r417] debian/postinst:
	  Set "key_choice_header from *" in zdkimfilter.conf.
	  
	  zdkimfilter:
	  Discard mkdir false-failure due to race condition.

2022-02-25 18:24  ale

	* [r416] zdkimfilter.conf doc:
	  Explain that blocked users can only send to postmaster@their-own-domain.
	  
	  release-notes-3.9:
	  Add the above as a Feature change,
	  remove the new bug, as this commit fixes it.
	  
	  transform:
	  Fix comparison in check_original_subject().
	  
	  zdkimfilter:
	  New function default_domain_choice(),
	  new function insert_auth_pass(),
	  remove key_finder* from sign_parms,
	  manage key_finder in sign_headers(),
	  fix copy_replacement() by including newline in the length,
	  use user_domain, not dyn.k.domain, for blocked users.
	  
	  testsuite:
	  add a couple of tests to ease debugging.

2022-02-24 20:11  ale

	* [r415] etc/*.py:
	  Attempt porting to python3. Still don't work.
	  
	  zdkimfilter.c:
	  Fix key_finder_track() serious bug,
	  output A-R: auth=pass only if signing domain is known.
	  
	  testsuite:
	  Repeat sign and verify with key choice.

2022-02-24 20:05  ale

	* [r414] New bug in v3.9

2022-02-24 17:33  ale

	* [r413] tag v3.9

2022-02-24 17:13  ale

	* [r412] Bump to version 3.9

2022-02-24 16:47  ale

	* [r411] database.c:
	  Fix non-opendbx version of db_get_domain_flags().
	  
	  testsuite:
	  set ZF_REQUIRE_OPENDBX for tests 141 and a42.

2022-02-24 16:11  ale

	* [r410] dkim.c:
	  In dkim_free(), clobber crypto also in key type is not RSA.
	  
	  zdkimfilter:
	  Code CTE logic inside sign_headers(),
	  save more Original- headers with multiple mailboxes,
	  new function free_parm_dyn_k(),
	  clean up sign_message().
	  
	  testsuite:
	  In "Quoted-printable conversion to base64" put back the two log lines
	  (re-encode and signing for) in the order they had the day before
	  yesterday.

2022-02-23 18:38  ale

	* [r409] zdkimfilter:
	  Break function header_preview() into four functions,
	  key_finder_init(), key_finder_track(), key_finder_set_dyn() and
	  key_finder_clean(); the tracking function is called by sign_headers()
	  and no preview is needed. --There's still to do cte.

2022-02-23 15:11  ale

	* [r408] zdkimfilter:
	  Define a struct key_choice,
	  move key, selector and domain of per_message_parm in it.

2022-02-22 12:22  ale

	* [r407] dim-util:
	  Fix a couple of warnings.
	  
	  dkim.[ch]:
	  Remove parameters key, selector and domain from dkim_sign(),
	  new function dkim_signkeys() to add those parameters.
	  
	  tests/t-*.c (57 signing tests):
	  Split the call to dkim_sign into two parts, the second part,
	  dkim_signkeys(), moved just before the call to dkim_eoh() in most
	  cases, or right after dkim_sign() when in doubt.
	  
	  zdkimfilter:
	  Remove the call to dkim_eoh() from sign_headers(),
	  in sign_message(), call dkim_signkeys() after sign_headers(),
	  log "signing for %s with domain %s, selector %s, algo" after that.
	  
	  testsuite:
	  In "Quoted-printable conversion to base64" the two log lines
	  (re-encode and signing for) are swapped.

2022-02-22 10:03  ale

	* [r406] transform:
	  Function add_candidate() accepts an extra parameter "first".
	  
	  zdkimfilter:
	  Select first or last address of a mailbox.

2022-02-21 18:47  ale

	* [r405] transform:
	  Remove obsolete code #if'd out by NAIVE_DKIM_TRANSFORM,
	  add an original_index to candidate_from structure.
	  
	  zdkimfilter:
	  Remove obsolete code #if'd out by NAIVE_DKIM_TRANSFORM,
	  add Author: as first choice candidate_from,
	  set_dmarc() to send reports if Author: was candidate.

2022-02-21 13:18  ale

	* [r404] transform:
	  Add flag is_author to original_header,
	  define an original_h_flag to manage flags while signing,
	  and pass such flag to add_to_original_signed().
	  
	  zdkimfilter:
	  Set an Author: field (RFC 9057) instead of Original-From:,
	  split my_dkim_header() into my_add_to_original_signed(),
	  use original_h_flag instead of setting oh_base.

2022-02-21 11:08  ale

	* [r403] zdkimfilter.c:
	  fix find_footers_multipart() tracking decoded length.

2022-02-18 11:09  ale

	* [r402] configure.ac:
	  Add arpa/nameser.h in required headers.
	  
	  src/Makefile.am:
	  Introduce new flag NO_IDN2, to link myvbr with util without more
	  libraries.
	  
	  myvbr.c:
	  Use skip_fws() as defined in util.c,
	  use my_get16() from util.c as well.
	  
	  util.[ch]:
	  Move my_get16() here from myadsp.c,
	  macro NO_IDN2 to exclude extra links.
	  
	  myadsp.c:
	  Remove my_get16().
	  
	  myreputation.c:
	  Replace ns_get16() with my_get16().
	  
	  transform.c:
	  Fix decode_base64(), an extra byte was added at the end for value == 64.
	  
	  zdkimfilter.c:
	  Comments...

2022-02-17 11:49  ale

	* [r401] myadsp.c:
	  New function my_get16(), replacing ns_get16() which was apparently
	  deprecated in 2008.

2022-02-15 18:43  ale

	* [r400] zdkimfilter.spec:
	  New version to build rpm, updated by Zenon. See:
	  https://sourceforge.net/p/courier/mailman/message/37610745/
	  This file is now versioned directly (no *.in generation).
	  
	  Makefile.am:
	  Add zdkimfilter.spec to EXTRA_DIST.

2022-02-09 18:46  ale

	* [r399] debian/postinst:
	  add options for relaxed header_canon and no_signlen.
	  
	  zdkimfilter.pod:
	  mention NOADDRREWRITE
	  
	  tentative-psddmarc-list:
	  add gov.in and police.uk

2021-12-02 08:06  ale

	* [r398] debian/changelog:
	  setting v.3.8, leftover since release.
	  
	  zdkimfilter:
	  have a dummy_authserv_id to verify by zdkimverify even if no Courier Received: was found.

2021-11-20 16:24  ale

	* [r397] tag v.3.8 again.

2021-11-20 16:23  ale

	* [r396] remove tag v.3.8.

2021-11-17 12:48  ale

	* [r395] zdkimfilter: the rest of logging with tcpremoteip instead of id.

2021-11-17 11:49  ale

	* [r394] tag v.3.8.

2021-11-17 11:25  ale

	* [r393] Ready to release 3.8.

2021-11-15 12:07  ale

	* [r392] configure.ac:
	  Add ZDKIM_LIB and CRYPTO_LIB subst variables.
	  
	  libopendkim/dkim-mailparse.c:
	  Add MY_MAILPARSE_ERR_EMPTY_ADDR error,
	  shorten isascii && isspace to just isspace,
	  bug fix, reset seen_at on angle bracket,
	  add a few tests.
	  
	  dkim.c:
	  Report which parameter is missing, in case.
	  
	  filterlib.c:
	  Read TCPREMOTEIP from ctlfile.
	  
	  src/util.c:
	  Rework mailto_domain() considering IDN and urlencoding,
	  TESTmailto: new check program for mailto_domain().
	  
	  zdkimfilter.c:
	  Modify verification logging by s/id/ip/.
	  
	  release-notes-3.8: describe logging change.
	  
	  testsuite:
	  modify test data according to different logging,
	  add a test for mailto_domain().

2021-10-20 10:59  ale

	* [r391] zdkimsign:
	  proper error message if tmp directory doesn't exist.

2021-10-20 10:17  ale

	* [r390] zdkimfilter:
	  tweak the debug log so that it always says " retrieved ".

2021-10-14 09:45  ale

	* [r389] configure:
	  bump version to v3.8beta.
	  
	  libopendkim/dkim-tables:
	  descriptions for DKIM_STAT_OK_NOTUSED and DKIM_STAT_BADKEY.
	  
	  libopendkim/dkim-types:
	  add (*dkiml_key_retrieved)() callback to dkim_lib.
	  
	  dkim.c:
	  insert calls to dkiml_key_retrieved() in dkim_sig_process(),
	  don't call EVP_PKEY_size() and RSA_size(), but 256 and RSA_bits(),
	  new function dkim_set_key_retrieved().
	  
	  zdkimfilter:
	  new function dkim_key_retrieved().

2021-10-14 09:13  ale

	* [r388] configure:
	  set version to 3.7.
	  
	  etc docs:
	  added zdkimgenkey(8) page.
	  
	  debian/changelog:
	  v3.7.

2021-10-11 11:24  ale

	* [r387] tag v3.7.

2021-10-11 10:40  ale

	* [r386] libopendkim/tests:
	  Removed t-signperf-relaxed-relaxed, t-signperf-simple-simple, and
	  t-signperf-sha1, added t-{sign,verify}perf-all,
	  modify t-{sign,verify}perf.c to use dkim-tables.
	  
	  zdkimfilter:
	  Tweak configuration filename using -f_,
	  documented in its .pod.in.
	  
	  Release notes for 3.7.

2021-10-11 08:08  ale

	* [r385] tag v3.6.

2021-10-11 07:59  ale

	* [r384] remove beta release v1.0b.

2021-10-11 07:58  ale

	* [r383] remove pre-release v3.2pre.

2021-10-09 10:37  ale

	* [r382] libopendkim/base64:
	  turn dkim_base64_decode() input to const char*,
	  stay strict when checking the size of the output.
	  
	  dkim.c:
	  in dkim_get_key(), if ed25519 key is given without prefix, as it
	  should, insert the prefix in the DER version. Note that this way the
	  verifier works also when keys are erroneously given with prefix.
	  
	  libopendkim/tests/t-testdata.h, tests/testsuite.at:
	  remove the prefix from public keys.
	  
	  zdkimgenkey:
	  fix case -h,
	  remove the prefix from public key.

2021-10-08 16:48  ale

	* [r381] testsuite.at:
	  remove Check mailbox parsing, TESTmailparse run in libopendkim.

2021-10-08 16:37  ale

	* [r380] configure: define OPENDKIM_LIB using -lzdkim.

2021-10-08 16:27  ale

	* [r379] Makefiles:
	  rename libopendkim to libzdkim, to avoid conflicts.

2021-10-08 15:47  ale

	* [r378] zdkimfilter.pod:
	  s/opendkim-genkey/zdkimgenkey/.
	  
	  debian/postinst:
	  s/opendkim-genkey/zdkimgenkey/,
	  don't remove existing keys/$org_domain.

2021-10-08 12:04  ale

	* [r377] tentative-psddmarc-list.txt:
	  Add .gov

2021-10-07 18:48  ale

	* [r376] filterlib:
	  accept argv0_slash earlier.
	  
	  zdkimfilter:
	  set argv0_slash and prog_name.
	  
	  zaggregate:
	  Oops.

2021-10-07 18:13  ale

	* [r375] configure, etc/Makefile, zdkimgenkey.pod.in:
	  add zdkimgenkey(8) man page.
	  
	  zdkimfilter.conf.pod:
	  expand parameter split_verify,
	  remove link to spamhauswhitelist.com.
	  
	  zdkimfilter.pod:
	  move key linking examples to zdkimgenkey(8),
	  add section MULTIPLE FILTERS.
	  
	  filterlib:
	  define a static variable argv0_slash,
	  remove almost all occurrences of THE_FILTER,
	  in Makefile change its definition to zfilterlib.
	  
	  zaggregate:
	  don't log error when a cached DMARC record is deleted in DNS.
	  
	  zdkimfilter:
	  find a config_filename embedded in the program name.
	  
	  zdkimgenkey:
	  remove useless options -t and -S,
	  don't overwrite files,
	  add option -a.

2021-10-04 19:02  ale

	* [r374] zdkimfilter:
	  log the signing algorithm at log level 6.
	  
	  dkim:
	  new function dkim_getsignalg(),
	  further anticipate call to dkim_privkey_load(), in dkim_sign(),
	  eliminate unused DER decoding of secretkey in dkim_sign().
	  
	  testsuite:
	  all tests checking "signing for %s with domain %s, selector %s" now
	  have the signing algorithm appended.
	  
	  zdkimfilter.conf.pod:
	  update descr for sign_rsa_sha1 and min_key_bits.

2021-10-04 11:40  ale

	* [r373] zdkimfilter:
	  fix dkim_result (permerror for anything but BADSIG, BODYHASH,
	  KEYTOOSMALL and KEYFAIL). Some sig errors don't set
	  DKIM_SIGFLAG_PROCESSED.

2021-10-04 09:46  ale

	* [r372] dkim-mailparse:
	  move src/dkim-mailparse.[ch] to libopendkim.
	  
	  Makefiles:
	  replace dependencies on dkim-mailparse with @OPENDKIM_LIB@,
	  add TESTmailparse as a lone test in libopendkim.
	  
	  zdkimfilter, zdkimsign, transform, util:
	  replace include "dkim-mailparse.h" with <libopendkim/dkim-mailparse.h>.
	  
	  configure:
	  bump version to 3.7beta3 (not yet installed).

2021-10-03 16:36  ale

	* [r371] bind Ed25519 tests to configured value of HAVE_ED25519.

2021-10-01 16:39  ale

	* [r370] Reintegrate merge of branches/ed25519.

2021-10-01 16:34  ale

	* [r369] commit a sync merge (zaggregate and cstring).

2021-10-01 16:25  ale

	* [r368] dkim-canon, dkim-keys, dkim-types:
	  further de-u_charization.
	  
	  dkim.c:
	  accept DKIM_SIGN_DEFAULT in dkim_eoh_sign(),
	  anticipate call to dkim_privkey_load() in that case,
	  force wrapping of b= on signing,
	  further de-u_charization.
	  
	  t-test20{3,7}.c:
	  new tests, sign and verify with simple/simple.
	  
	  zdkimfilter:
	  on signing, use DKIM_SIGN_DEFAULT unless configured sign_rsa_sha1.
	  
	  testsuite:
	  new test to sign and verify with Ed25519.

2021-09-23 10:40  ale

	* [r367] libopendkim:
	  got rid of most u_char's in dkim.[ch], so it compiles clean,
	  dkim-mailparse.[ch] replaced with my version,
	  dkim-{canon,keys,report}.[ch] remover u_char from prototypes only,
	  some functions converted also in util and dkkim-util.
	  
	  libopendkim/tests:
	  removed unused argc, argv from most t-test*.c,
	  removed unsignedness from some local variables.
	  
	  parm.h:
	  remove constness from {sign,skip}_hfields.
	  
	  zdkimfilter.c:
	  remove unsignedness from local result of dkim_getuser().

2021-09-22 15:31  ale

	* [r366] configure: version bump to 3.7beta2.
	  
	  zaggregate:
	  urldecode email addresses read from DMARC mailto URIs,
	  add options --only-domain and -%,
	  new function double_percent(),
	  man page updated.
	  
	  cstring:
	  new function cstr_insch().

2021-09-17 17:54  ale

	* [r365] Modified signed vs unsigned in various files in libopendkim:
	  libopendkim/dkim-types.h, libopendkim/dkim-util.c,
	  libopendkim/dkim-util.h, libopendkim/dkim.c, libopendkim/dkim.h,
	  libopendkim/util.c, libopendkim/util.h
	  
	  All tests still pass.

2021-09-16 18:12  ale

	* [r364] libopendkim/dkim-types.h:
	  in structs dkim_plist and dkim_set u_char* members changed to char*.
	  
	  libopendkim/dkim.c:
	  various changes from u_char* to char*,
	  a couple of int c to unsigned int c.
	  
	  Still compiles and checks ok.

2021-09-16 17:06  ale

	* [r363] libopendkim/dkim{-internal.h,-test.c,.c}:
	  changed u_char* to char* in function dkim_process_set().

2021-09-16 16:50  ale

	* [r362] libopendkim/dkim-tables:
	  remove const qualifier from dkim_name_to_code() return type.
	  
	  libopendkim/dkim.c:
	  change u_char* to char* in type and parameter of dkim_param_get().
	  
	  zdkimfilter:
	  remove u_char cast in call to dkim_options().

2021-09-16 16:26  ale

	* [r361] libopendkim/dkim.c:
	  For OpenSSL, skip call to EVP_PKEY_new_raw_public_key() and stick to
	  d2i_PUBKEY_bio() even for DKIM_SIGN_ED25519SHA256.

2021-09-16 14:44  ale

	* [r360] libopendkim/dkim.c:
	  rewrite gnutls code for dkim_eom_sign() and dkim_sig_process() setting
	  algorithm and function for each of the three supported crypto's.
	  
	  libopendkim/tests:
	  fixed tests 68, 102, and 138 mismatched strlen() arguments,
	  define Ed25519 EDKEY and PUBLICKEYED in t-testdata.h,
	  write PUBLICKEYED in t-setup.c,
	  add tests 200 and 204 (from 00 and 04 resp.) to sign/verify Ed25519,
	  Makefile.am updated accordingly.

2021-09-15 17:25  ale

	* [r359] libopendkim/dkim.[ch]:
	  modified various functions in order to do ed25519,
	  (more or less following branches/development),
	  changed a couple of u_char to char (signhdrs).
	  
	  configure.ac:
	  define HAVE_ED25519.
	  
	  No tests for ed25519 run yet.

2021-09-14 10:42  ale

	* [r358] zdkimgenkey.in:
	  Source of zdkimgenkey, bash script to generate DKIM keys using
	  certtool or openssl.
	  
	  configure:
	  define USE_CERTTOOL,
	  fail if neither certtool nor openssl commands are available,
	  generate zdkimgenkey,
	  bump version to 3.7beta2.
	  
	  Makefile:
	  install zdkimgenkey.
	  
	  libopendkim/dkim.h:
	  define DKIM_SIGN_ED25519SHA256,
	  define DKIM_FEATURE_ED25519,
	  declare dkim_sig_getalgorithm().
	  
	  libopendkim/dkim-internal.h:
	  define DKIM_KEYTYPE_ED25519.
	  
	  debian/postinst:
	  Add comment on key sizes mandated or recommended by rfc8301.

2021-09-13 09:04  ale

	* [r357] libopendkim/dkim-types.c:
	  renamed struct dkim_rsa dkim_crypto, following Murray's development.
	  
	  libopendkim/dkim{,-test}.c:
	  s/rsa/crypto/ so as to compile.

2021-09-13 08:30  ale

	* [r356] Try again to make that branch.

2021-09-13 08:28  ale

	* [r355] Oops.

2021-09-13 08:25  ale

	* [r354] Create branch for added crypto.

2021-09-13 08:04  ale

	* [r353] zdkimfilter:
	  Change "header too long" to "bad header" something.

2021-09-13 08:01  ale

	* [r352] vb_fgets.h:
	  Allow fp == NULL in order to check buffer space without reading;
	  nothing changes when fp is given.

2021-07-16 10:44  ale

	* [r351] configure: bump to 3.7beta.
	  
	  add release-notes-3.7.

2021-07-16 10:35  ale

	* [r350] zdkimsign:
	  lengthen overall alarm(30) to alarm(300).
	  
	  zdkimfilter:
	  for multipart, include the last empty attachment (if any) in the MLM
	  added stuff.

2021-06-21 15:31  ale

	* [r349] debian/compat: removed: debhelper compat level must be specified once.

2021-06-21 15:11  ale

	* [r348] configure, changelog, release-notes: version 3.6.

2021-06-21 14:59  ale

	* [r347] zdkimfilter:
	  check in is not NULL before calling ff_is_boundary(),
	  add some comments and assertions.

2021-06-15 10:54  ale

	* [r346] dkim: check sig_bodycanon is set (sigsegv).
	  
	  transform:
	  new function is_any_original_signed(),
	  new field could_pass if an original was signed.
	  
	  zdkimfilter:
	  in post_eoh_process() check if original fields are signed,
	  in dkim_sig_final() can_redo_header only if could_pass.
	  
	  testsuite:
	  add a test for retry header,
	  add a test for retry header not signed, hence not retried.

2021-06-10 07:16  ale

	* [r345] zdkimfilter.conf.pod: better document whitelisted_pass.

2021-06-09 11:34  ale

	* [r344] publicsuffix and zdkimfilter: compiler happy.

2021-06-09 11:22  ale

	* [r343] configure: bump to 3.6beta2.
	  
	  release-notes: prepare 3.6, also add 3.5 to svn.
	  
	  zdkimfilter: change is_whitelisted behavior:
	  on Review, remove is_whitelisted if not auth or below whitelisted_pass,
	  note that this is somewhat not backward compatible.
	  
	  testsuite:
	  in "Whitelisted domain reported" and "Whitelisted + vouched domain",
	  increase the database value from 2 to 3, to meet new requirement.

2021-06-08 12:23  ale

	* [r342] configure: v3.6beta.
	  
	  zdkimsign.pod: fix syntax.

2021-06-08 11:55  ale

	* [r341] debian/changelog: leftover

2021-06-08 11:27  ale

	* [r340] debian/source/format: (quilt).
	  
	  zdkimfilter: recognize base64-encoded footers:
	  check_footer() adjunsted and renamed ff_check_footer(),
	  find_footers() split into _single() and _multipart() funcs,
	  new inline functions ff_is_boundary(), ff_check_header(),
	  adapt set_decode_functions(),
	  remove #iffed out part with find_end_of_body().
	  
	  transform: add comments.
	  
	  testsuite: add (real) test with base64-encoded footer.
	  
	  zdkimsign:
	  document option -o in --help output.
	  
	  zdkimfilter.pod: document --save-files.
	  
	  zdkimsign.pod: document -o and mention zdkimverify.

2021-06-03 12:14  ale

	* [r339] debian/control:
	  Standards-Version: 4.5.1,
	  Build-Depends: debhelper-compat (= 13), autotools-dev.
	  
	  debian/rules:
	  remove references to m4_redist.zip,
	  remove override_dh_autoreconf (runs autoreconf -f -i),
	  remove override_dh_autoreconf_clean.
	  
	  debian/copyright:
	  add more copyright info.

2021-06-01 15:30  ale

	* [r338] tag v3.5

2021-06-01 09:52  ale

	* [r337] bump to version 3.5

2021-05-31 10:50  ale

	* [r336] libopendkim/dkim:
	  new function dkim_borrow_body_verify(),
	  add a hint parameter to dkim_get_samesig().
	  
	  zdkimfilter:
	  add a hint parameter to find_sig2(),
	  remove tinkering with library errors in dkim_sig_final(),
	  consider transformation failure in assert_is_unique(),
	  check vh->dt.cf[1] in write_file() (core dump),
	  call dkim_borrow_body_verify() instead of faking an empty body,
	  fail message verification if dkim_borrow_body_verify() fails,
	  fail just transformation if dkim_eom() fails on vh.dt.dkim,
	  do per-domain dps clearing if transformation failed.
	  
	  zdkimsign:
	  break loop on found in get_executable() (core dump).

2021-05-20 16:15  ale

	* [r335] tag v3.4.

2021-05-20 15:25  ale

	* [r334] configure: bump to v3.4.
	  
	  release-notes: add bugfix.
	  
	  publicsuffix: adjust comments.

2021-05-20 14:45  ale

	* [r333] publicsuffix: revised code to enable backtracking.

2021-05-10 16:48  ale

	* [r332] release-notes: Add a "forced authentication policy".
	  
	  filterlib: compiler happy.
	  
	  myadsp:
	  define FORCED_POLICY_REJECT,
	  define POLICY_IS_FORCED.
	  
	  zdkimfilter:
	  define forced_authentication_policy,
	  set it when dmarc > 1 after db_get_domain_flags(),
	  if set, then set policy |= FORCED_POLICY_REJECT, and then
	  set policy_fail if POLICY_IS_FORCED(policy) && !any_auth_is_ok;
	  Log and smtp_reason mention "authentication policy".

2021-05-10 11:12  ale

	* [r331] testsuite: add checks for forced policy.

2021-05-10 08:04  ale

	* [r330] release-notes-3.4: new file.
	  
	  zdkimfilter: X-Mailman-Original-DKIM-Signature.

2021-04-13 10:04  ale

	* [r329] TODO: new file with alternative query for aggragate report.

2021-04-09 11:19  ale

	* [r328] zdkimfilter:
	  fix bug reported by Benjamin.
	  
	  odbx_example.conf:
	  remove last two spurious lines.

2021-04-03 10:20  ale

	* [r327] tag v3.3

2021-04-03 10:19  ale

	* [r326] Makefile, configure: remove .spec file.
	  
	  debian:
	  new file upgrade_mysql_3.3.sql,
	  adjust rules having removed db_sql_whitelisted,
	  
	  webdoc:
	  new title for the snippet sequence,
	  release-notes-3.3.
	  
	  filterlib: compiler_happy on write().
	  
	  zdkimfilter:
	  move free(parm->dyn.authserv_id) to the end.

2021-04-02 15:24  ale

	* [r325] forgot release-notes

2021-04-02 15:06  ale

	* [r324] tag v3.3

2021-04-02 15:05  ale

	* [r323] Version 3.3

2021-04-02 15:02  ale

	* [r322] database:
	  drop variable org_domain,
	  compute prefix_len looking up org_domain anew.
	  
	  zdkimfilter:
	  free parm->dyn.authserv_id on cleanup.
	  
	  Makefile:
	  set USE_PSL if linking with publicsuffix.

2021-04-01 08:17  ale

	* [r321] filt5erlib.c:
	  added error message in abort_on_sig(); can happen for broken link...

2021-03-11 13:07  ale

	* [r320] zdkimfilter:
	  s/Unable to read config file/Error reading config file/,
	  still call fl_main() if there were loading errors,
	  new function return_432() to play filter function in that case.
	  
	  testsuite:
	  s/Unable to read config file/Error reading config file/.

2021-03-11 11:35  ale

	* [r319] confgure: version bump to 3.3pre.
	  
	  database:
	  removed org_domain from the variables allowed for db_sql_domain_flags,
	  signature of db_get_domain_flags() changed accordingly,
	  mask bit, stored variable, and comments arranged consequently,
	  skip setting org= in zfilter_db.
	  
	  zdkimfilter:
	  adjust call to db_get_domain_flags(),
	  add a debug log line with the relevant values,
	  badly fix setting naddrs when noaddrrewrite is set.
	  
	  odbx_example.conf:
	  simplify db_sql_domain_flags getting a single line.
	  
	  odbx_example.sql:
	  modify procedures recv_from_domain and sent_to_domain
	  so as to not increase whitelisted if it is negative.
	  
	  zfilter_db.pod.in:
	  document database changes.

2021-03-10 09:12  ale

	* [r318] debian/changelog: leftover since 3.2 release.
	  
	  odbx_example.conf:
	  Tweak db_sql_domain_flags so that shot-on-sight works.

2021-03-08 11:53  ale

	* [r317] database:
	  review and fix simulated data, a.k.a. zfilter_db,
	  remove leftover per-message dmarc_{record,rua}, which now is per-domain.
	  
	  zdkimfilter:
	  remove leftover per-message dmarc_record.
	  
	  zfilter_db.pod:
	  add a RATIONALE section,
	  update argument lists,
	  better descriptions.

2021-02-25 10:32  ale

	* [r316] tag v3.2

2021-02-25 10:31  ale

	* [r315] Prepare release 3.2

2021-02-25 09:42  ale

	* [r314] parm: add new parameter noaddrrewrite.
	  
	  zdkimfilter:
	  if noaddrrewrite is set, don't call replace_courier_wrap(),
	  if invoked by zdkimsign, set noaddrrewrite.
	  
	  zdkimfilter.pod: document noaddrrewrite.
	  
	  testsuite: update parameter list.

2021-02-18 08:04  ale

	* [r313] tag v3.2pre

2021-02-18 08:02  ale

	* [r312] dkim-canon:
	  reapply April 2015 patch for header value starting with newline.
	  
	  Makefile:
	  fix TESTmyrep linking.

2021-02-17 18:47  ale

	* [r311] util:
	  skip_fws() moved here from myadsp.c and myreputation.c.
	  
	  transform:
	  remove whitespace from mailbox, not comments.
	  
	  zdkimfilter:
	  tweak debug log (%d of %d sig(s) by candidate...).

2021-02-16 12:51  ale

	* [r310] zdkimfilter:
	  fix handling of Original-From:.

2021-02-14 17:59  ale

	* [r309] dkim-keys: compiler nearly happy.
	  
	  dkim:
	  set DKIM_SIGERROR_BODYHASH only if there was no previous error.
	  
	  tests:
	  add IDN2_LIB to link test programs (both lib and TESTmailparse).

2021-02-14 09:48  ale

	* [r308] leftover from 4.1

2021-02-14 09:45  ale

	* [r307] configure:
	  version 3.2pre,
	  deFine HAVE_LIBIDN2.
	  
	  dkim_keys: forget idn1.

2021-02-09 11:28  ale

	* [r306] configure: check res_ninit, fail if not found.
	  
	  zdkimfilter:
	  in post_eoh_process(), report early failing signatures,
	  check if the message has reply headers, set is_reply,
	  DKIM_STAT_KEYFAIL moved to permerror.
	  
	  transform:
	  s/column/colon/,
	  discard Thread-Topic: if the message is a reply,
	  prepare saved subjects properly, with header name.

2021-02-02 10:08  ale

	* [r305] tag v3.1

2021-02-02 10:01  ale

	* [r304] zdkimfilter:
	  enable body parse based on seen_list_post,
	  check also for footer lines of "-- ".
	  
	  transform.h: define seen_list_post.
	  
	  testsuite:
	  add a List-Post: header field to some test messages.

2021-01-22 11:57  ale

	* [r303] zdkimsign.pod.in: fix typo.

2021-01-22 09:47  ale

	* [r302] database:
	  possibly return an error from db_set_stats_info().
	  
	  zdkimfilter:
	  if no recipients on outgoing message, abort setting database,
	  if db_set_stats_info() returns an error, don't call db_check_user().

2021-01-18 17:52  ale

	* [r301] odbx_example.sql, etc/odbx_example:
	  add comment about CREATE USER IF NOT EXISTS zfilter;
	  
	  debian/postinst:
	  insert comment about where is database creation.

2021-01-05 11:53  ale

	* [r300] zdkimsign: replace static const int with an enum, so as to compile in
	  older versions of gcc. See:
	  https://stackoverflow.com/questions/54135942/why-initializer-element-is-not-a-constant-is-not-working-anymore

2020-12-13 13:31  ale

	* [r299] configure: choose automatically openssl vs gnutls if one -dev is
	  installed and the other is not. Prefer gnutls if both are available.
	  
	  debian/control: Adjust dependencies as suggested by Àngel.

2020-12-09 10:18  ale

	* [r298] READMEsvn: libtoolize isn't needed any more

2020-11-28 12:34  ale

	* [r297] release-notes-3.0.txt.

2020-11-28 12:03  ale

	* [r296] tag v3.0

2020-11-28 11:39  ale

	* [r295] src/Makefile: fix typo.

2020-11-28 11:25  ale

	* [r294] zdkimfilter: fix typo.

2020-11-28 11:17  ale

	* [r293] debian/Makefile, debian/rules:
	  add upgrade_mysql_3.0.sql.
	  
	  upgrade_mysql_3.0.sql: new file.
	  
	  debian/control:
	  drop libopendkim dependence,
	  add libgnutls28-dev | libssl1.1,
	  maintaner, descr.
	  
	  debian/postinst: dates, comments.
	  
	  rev2tag.pl: new small utility.
	  
	  database, zdkimfilter, filecopy, filterlib, ip_to_hex, myadsp, parm,
	  urldecode, util, zaggregate, zdkimsign: update Copyright (C) date.

2020-11-27 11:22  ale

	* [r292] zdkimfilter:
	  set dmarc_reason_mailing_list if an MLM trans succeeded.
	  
	  zfilter_db:
	  add dkim_selector,
	  document use of dmarc_reason_mailing_list.
	  
	  dbgraph/dbtemplate:
	  adjust table locations and pointers.

2020-11-26 17:13  ale

	* [r291] transform:
	  allow for alternatives to Original-Subject:,
	  take them into account in check_original_subject().
	  
	  zdkimfilter:
	  save Thread-Topic: and X-ASG-Orig-Subj: as alternatives,
	  always set Original-Subject: on signing.

2020-11-22 12:04  ale

	* [r290] zdkimfilter:
	  fix null pointer access, filter killed by Segmentation fault.

2020-11-20 19:00  ale

	* [r289] filterlib:
	  new getter function fl_is_nofork(),
	  new function fl_clear_msg_info(),
	  remove info_to_free from fl_parm.
	  
	  zdkimfilter:
	  clear parm->dyn.info in some_cleanup(),
	  remove calls to query_done() from verify_message(),
	  add calls to query_done() in some functions,
	  have the children clear stuff allocated by the parent, including dklib.

2020-11-19 12:30  ale

	* [r288] myinstall.sh: deleted.
	  
	  mychg.sh: new shell script called on install hook.
	  
	  configure, Makefiles:
	  Return to standard INSTALL, and use install hooks to run chown and chmod as needed.

2020-11-18 11:24  ale

	* [r287] filterlib:
	  append \n to child log.
	  
	  zaggregate:
	  fix number of fields (11 instead of 10).

2020-11-16 17:39  ale

	* [r286] dkim:
	  report the first error, not the last in dkim_borrow_header_verify() and dkim_eoh_verify().
	  
	  zdkimfilter:
	  fix unused parameter in NDEBUG,

2020-11-16 16:58  ale

	* [r285] merged ^/brances/transform
	  configure: bump version to 3.0

2020-11-16 16:48  ale

	* [r284] filterlib:
	  Have child_reaper() log abnormal exit of children.

2020-11-12 18:34  ale

	* [r283] filterlib:
	  on child, set SIGPIPE, SIGINT, SIGTERM to dump core,
	  add a log line if response is not written, except NO_OUTPUT_RUN_STDIO.

2020-11-10 18:57  ale

	* [r282] zdkimfilter.pod: document the experiment.
	  
	  zdkimfilter: s/temporarily/momentarily/ in 432 message.

2020-11-05 18:56  ale

	* [r281] src/Makefile:
	  rm -f zdkimverify before ln -s, to avoid install error.
	  
	  database:
	  set dkim_trans_mask_bit among domain_variables,
	  set dkim_result_variable as either dk or dk2, on dkim_trans.
	  
	  transform:
	  don't add spurious CRLF at end of skip_one_entity(),
	  change skip_last_entity() to copy the epilogue,
	  turn length into an array of 2 entries in both dt and parm,
	  fix main() for testing.
	  
	  zaggregate:
	  do a minimal field check to avoid nonsensical runs.
	  
	  zdkimfilter:
	  change find_footers() to set both length[2],
	  don't print length in the "transform message" log line.
	  
	  testsuite:
	  remove ", length=NNN" from expected log lines,
	  add a 2nd add-part test, with epilogue.

2020-10-29 12:48  ale

	* [r280] transform: don't add spurious empty lines in limit_size().
	  
	  zdkimfilter:
	  on sign, don't add Original-* if any exist already,
	  set dps of candidate_from [0] and [1] already in domain_flag_from(),
	  in domain_flag() set dps only in not set already,
	  set u.f.is_not_original if From: domain differ,
	  use that flag in domain_is_transform_candidate(),
	  fix assertion about u.f.is_o_from,
	  fix dkim_unrename in verify_headers().
	  
	  testsuite:
	  add 6 test cases for MLM trans. Save the private key as ZF_PRIVATEKEY2
	  (albeit not used).
	  
	  database.h: is_not_original flag.

2020-10-27 18:51  ale

	* [r279] zdkimfilter:
	  collect content_type[] and content_transfer_encoding[],
	  comment default_key_choice(),
	  fix testing rtc in header_preview(),
	  split function strdup_crsp() from replace_courier_wrap(),
	  split fn add_replacement() from sign_headers(),
	  add sentinel if using replacements, to complete header.

2020-10-26 11:31  ale

	* [r278] transform: add flag only_if_signed to original_header,
	  set flag in add_to_original_signed(),
	  add flag nooutcr to encode_base64_parm,
	  if flag, do Unix line ends in encode_base64().
	  
	  zdkimfilter: move dkim into sign_parms,
	  rename copy_body_verifier() as copy_body_to_dkim(),
	  new function field_is_signed(),
	  improve sign_message() and sign_headers().
	  
	  testsuite: set disable_experimental in one test which expected a
	  header whithout Original-* fields.

2020-10-22 12:14  ale

	* [r277] parm, doc, and testsuite: add disable_experimental parameter.
	  
	  libopendkim: have dkim_header() return DKIM_STAT_OK_NOTUSED, in case.
	  
	  t-test44.c: modified to account for DKIM_STAT_OK_NOTUSED.
	  
	  transform: add function parse_content_transfer_encoding_simple(),
	  add function content_type_is_multipart(),
	  add function add_to_original_signed().
	  
	  zdkimfilter: read_key_choice() renamed header_preview() and modified,
	  my_dkim_header() takes oh_base to add if signed,
	  replace_courier_wrap() return number of mailboxes,
	  share a struct sign_parms between sign_{message,headers}(),
	  sign_headers() look for critical transform headers,
	  sign_message() prepare for base64 conversion (unfinished).

2020-10-21 06:47  ale

	* [r276] Mention dkim_trans in odbx_example.conf and in zfilter DB doc.

2020-10-20 18:19  ale

	* [r275] database: dmarc_record, dmarc_rua, dmarc_ri and original_ri moved from
	  the stats_info record to each domain_prescreen, where they are set if
	  is_dmarc. The latter can happen in case Original-From: is given and
	  credible. In that case, it can become an aggregate report target.
	  
	  myadsp: silly attempt at accepting mailo:EAI address. That required
	  util.c and dkim-mailparse.c to be linked together in various TEST
	  programs. Changed TEST_MAIN to avoid multiple definitions of main().
	  
	  zdkimfilter: new function set_dmarc() to prepare database data.

2020-10-19 17:48  ale

	* [r274] top Makefile: add rules for build-config.h.
	  
	  configure.ac: remove AC_CONFIG_COMMANDS_POST, config.h doesn't exist.
	  
	  libopendkim/Makefile.am: fix rule for symbols.map.
	  
	  src/Makefile.am: add transform.h.
	  
	  set svn:ignore in various directories.
	  
	  odbx_example: add dkim_trans column in msg_ref,
	  add field in zaggregate query.
	  
	  database: add dkim_trans.
	  
	  filterlib: avoid sending SIGPIPE log through pipe,
	  adjust fl_reset_signal().
	  
	  transform: reset retry_mode in clear_dkim_transform().
	  
	  util.c: is_ldh() accept also utf-8.
	  
	  zaggregate: set human_result on dkim_trans.
	  
	  zdkimfilter: take simple pointer in find_prescreen(),
	  require non-transform to enable body parse,
	  set dkim_trans on recovered sigs,
	  new function assert_is_unique(),
	  fail on (some) errors,
	  check for failure at various points.
	  
	  testsuite: remove "running for zdkimsign on 1 ctl + 1 mail files",
	  set report_all_sigs + extra dkim=pass for three tests that
	  checked whitelisted/ vouched reporting.

2020-10-16 10:23  ale

	* [r273] filterlib: gather exit codes of a fixed number of children,
	  new function fl_child_info() can retrieve them,
	  if testing, return the last child exit code.
	  
	  transform: rename verifier_call as transform_stack.
	  
	  zdkimfilter: rename as above,
	  add save_file, save_fp to dkim_transform,
	  rename dkim_sig_retry() to post_eoh_retry(),
	  fix reading sig error in dkim_sig_final(),
	  write also the header in save_file,
	  display the right mailbox in log "transformation enabled",
	  shorten log "transform message",
	  remove library version check.
	  
	  zdkimsign: set exit code 3 for aborted verification.

2020-10-14 17:44  ale

	* [r272] dkim: add argument to dkim_ssl_version().
	  
	  database: rename dkim_result dkim, dkim2 as dk, dk2.
	  
	  filterlib: keep signal handlers, and abort on timeout,
	  block SIGUSR[12] while executing filter,
	  on debug built, don't set timeout if DEBUG_FILTER.
	  
	  transform.h: define original_from_is_candidate,
	  original_from_in_header,
	  original_from_remove.
	  
	  zdkimfilter: keep track of the "real" Original-From:,
	  add Original-From: to output, if needed,
	  clear DKIM_SIGERROR_BODYHASH on retry header only,
	  clear DKIM_SIGERROR_TOOLARGE_L as well (earlier),
	  amend usage of verify_all variable,
	  in print_signature_resinfo(), drs is mandatory,
	  wait for SIGUSR1 after passing FILTER-RESPONSE:,
	  remove dkim A-R's for whitelisted/vbr domains,
	  fix options in dkim_init(),
	  print TLS/SSL versions for --version.
	  
	  zdkimsign: send SIGUSR1 to the group after FILTER-RESPONSE:,
	  ignore SIGUSR[12].

2020-10-12 18:41  ale

	* [r271] dkim-tables: added entry for error 77 (body hash mismatch).
	  
	  dkim.c: fix allocations in dkim_borrow_header_verify().
	  
	  filterlib: fix call to fl_alarm() (not alarm()),
	  shorten gdb prompt,
	  gdb enabled also for fl_wrapped.
	  
	  transform.c: check dt->vc in clear_dkim_transform(),
	  skip leading whitespace in add_candidate_from(),
	  
	  zdkimfilter.c: fix memory leak in do_get_prescreen(),
	  add a --save-files debug option,
	  amend check for dyn.info.id = "zdkimverify",
	  save sig2 in dkim_sig_wrapup(),
	  set step and user_context in verify_message().
	  
	  zdkimsign: option -o to trigger --save-files.

2020-10-09 18:32  ale

	* [r270] Imported libopendkim as a project subdir.
	  configure.ac merged with excerpts of opendkim configure.
	  Makefiles arranged to build a non-installed static library.
	  
	  #include <opendkim/dkim.h> replaced with
	  #include <libopendkim/dkim.h>.
	  
	  transform.c: fix NULL pointer in clear_verifier_call().
	  
	  zdkimfilter: don't call post_eoh_process() on any error,
	  clear some conditional compiles,
	  fix header.from=\"%s@%s\" (with quotes).
	  
	  testsuite.at: remove ZF_REQUIRE_22,
	  subst quotes in header.from="user@author.example"

2020-10-08 11:45  ale

	* [r269] transform: in add_candidate_from() remove CFWS from start of line
	  (this should be done in my_mail_parse-C() instead),
	  remove spurious check for add_part, leftover,
	  fix clear_verifier_call(),
	  #define MIN_SUBSTRING_LENGTH 4.
	  
	  util: new function is_ldh(),
	  fix mailto_domain() and remove query string.
	  
	  zdkimfilter: new function post_eoh_process(),
	  move finalization of oh_base in domain_flags(),
	  amend find_footers(),
	  amend dkim_sig_final().
	  
	  zdkimsign: add afflosh(), but still not sync...

2020-10-07 08:59  ale

	* [r268] testsuite: replace "id=@" with "id=", and "header.i=@" with "header.d=".
	  
	  zdkimsign: add extra newline at FILTER-RESPONSE only if there is no
	  SMTP code.
	  
	  zdkimfilter: check for NULL candidate_from elements.

2020-10-06 18:48  ale

	* [r267] database.h: align comments.
	  
	  myadsp.c: "mailto" might be uppercase, use strincmp().
	  
	  transform.c: new function retry_mode_string(),
	  added items to clear_dkim_transform(),
	  new function clear_dkim_transform(),
	  new function add_candidate_from(),
	  start_transform() commented out,
	  new function content_type_is_text_plain(),
	  add oh_remove_it to to enum get_oh_mode,
	  oh_must_exist renamed as oh_dont_add,
	  add column_ndx to account for space before colon,
	  added is_empty and is_replaced flags,
	  new function check_original_subject(),
	  remove special treatment for Subject:,
	  new function peek_original_header().
	  
	  transform.h: new struct candidate_from,
	  new enum transform_retry_mode,
	  store From, {,X-}Original-From, Reply-To, Cc,
	  store sender_domain, list_domain, save_subject.
	  
	  util.c: new function longest_substring(),
	  new function mailto_domain(),
	  test for longest_substring().
	  
	  zdkimfilter.c: new function find_prescreen(),
	  complete rewrite of transform logic,
	  new function compare_candidate_from(),
	  new function find_footers(),
	  new function domain_is_transform_candidate(),
	  new function sigerror2result(),
	  many functions moved as callback roles changed,
	  report header.d if header.i begins with @,
	  fix quotes in Authentication-Results:,
	  new function must_be_quoted().

2020-09-24 09:15  ale

	* [r266] zdkimfilter: if child of zdkimverify, send parent a stop while writing
	  stdout.
	  
	  zdkimsign: sleep 1/4sec when receiving a stop from child.

2020-09-22 14:53  ale

	* [r265] zdkimfilter: tweaked check_dkim_status_sig() to avoid reporting
	  failure under transformation of a signature that verified without.

2020-09-18 10:17  ale

	* [r264] zdkimfilter.conf.pod: document verbosity 3 for signature verification
	  details.
	  
	  zdkimfilter: add a flush verifier_call in copy_body(),
	  adjust verbosity levels,
	  log "recovered by transformation",
	  skip ALLOW_EXCLUSIVE warnings for zdkimverify,
	  fix Content-Transfer-Encoding detection,
	  eliminate push_verifier_call() code,
	  factor new function check_dkim_status_eom(),
	  use new b64 structure to init base64 encoding.
	  
	  transform: add "nocr" parameter to Original-Content-Transfer-Encoding,
	  remove trailing \n from original headers,
	  free allocated stuff in verifier_call functions,
	  use b64 structure for initialization,
	  add CRLF on flushing base64 encoded,
	  optionally remove CR in base64 encoded data,
	  add cleanup call in clear_verifier_call(),
	  define struct base64_encode_parm for b64.

2020-09-14 09:23  ale

	* [r263] transform: fix various bugs in get_original_header() and
	  replace_original_header().
	  
	  zdkimfilter: fix bug detecting Original-* headers.

2020-09-13 19:34  ale

	* [r262] zdkimfilter: added provisional debugging aid (verified_body.debug),
	  added log lines about signature verification,
	  make sure dkim_sig_final() is called after both dkim_eom(),
	  add default Original-Content-Transfer_encoding,
	  add functions find_footer(), find_end_of_body(),
	  reverse push_verifier_call() to append_verifier_call(),
	  rename add_part to mime_wrap, add_part is new.
	  better log status.
	  
	  zdkimsign: add support for debugging.
	  
	  dkim-mailparse: my_mail_matching_paren() takes const char*.
	  
	  transform: detect mime-wrap,
	  in parse_content_type() parse the boundary as well,
	  fix get_original_header() if oh_must_exist,
	  add CRLFs at end of document,
	  function skip_last_entity() for mime-wrap,
	  function rectify_lines() to ease searching,
	  append_verifier_call().
	  
	  util: new functions skip_token() and skip_cfws_sep().
	  
	  

2020-09-12 09:57  ale

	* [r261] zdkimfilter: several changes in order to handle two DKIM contexts for
	  verifying. A copy_body_verifier() function pairs copy_body().
	  An extra structure dkim_transform defined in vh.
	  Proper DKIM* and FILE* in vh (not dkim_or_file).
	  A new domain_flag_from() function called twice.
	  Add preference values for the original domain.
	  Other minor funtions to do repeated error logging.
	  Need a patched OpenDKIM library with dkim_get_samesig().
	  Trace additional header fields (Original-, Content-).
	  Store sig pointers in dps->sig[].
	  Print "reason=" in Authentication-Results on valid transform.
	  Handle transormations.
	  
	  transform: New source file with required transformation function.
	  This is to be linked to zdkimfilter.
	  
	  database: Org domain is not handled by database any more.
	  db_set_org_domain() removed.
	  db_get_domain_flags() has an additional parameter.
	  Add data and flags, e.g. is_o_from, for original domain.
	  
	  dkim-mailparse: Export function my_mail_matching_paren().
	  
	  filterlib: Fix exiting from --batch_test for gdb.
	  
	  util: New is_subdomain() function.
	  
	  

2020-09-01 17:15  ale

	* [r260] merged fixes for zdkimverify.

2020-09-01 17:13  ale

	* [r259] filterlib: redefine the init_complete callback to take just the parameter file;
	  add a wrapped flag and an fl_wrapped testing mode;
	  call init_complete in fl_testing mode too;
	  set wrapped when the name following t starts with zdkim;
	  on debug builds with DEBUG_FILTER set, don't exit parent (SIGPIPE).
	  
	  zdkimfilter: don't check split_verify if fl_wrapped.
	  
	  zdkimsign: don't react to SIGALRM if DEBUG_FILTER in debug built.

2020-09-01 14:24  ale

	* [r258] urldecode: merge fix

2020-09-01 14:20  ale

	* [r257] urldecode: fix uninitialized char.

2020-09-01 11:01  ale

	* [r256] Create transform, attempt to recover transformed email.
	  See https://tools.ietf.org/html/draft-kucherawy-dkim-transform

2020-09-01 08:40  ale

	* [r255] tag v2.2

2020-08-31 17:29  ale

	* [r254] debian/rules: override dh_fixperms in order to --enable-zdkimsign-setuid to be
	  effective.

2020-08-31 16:46  ale

	* [r253] debian/changelog: final version.
	  
	  etc/Makefile: adjust linking zdkimverify.1.
	  
	  myinstall: have it work with fakeroot as well.

2020-08-31 11:09  ale

	* [r252] minor tweaks

2020-08-31 10:22  ale

	* [r251] prepare new release.
	  
	  etc/Makefile: install hook for zdkimverify.1

2020-08-31 07:53  ale

	* [r250] zdkimfilter: fix silly compler warning

2020-08-29 11:12  ale

	* [r249] configure: bump version to 2.2.
	  
	  zdkimfilter: add --no-write option to skip rewriting the mail file on
	  verifying.
	  
	  zdkimsign: add --verify option to have child do a verify instead of
	  sign.
	  
	  src/Makefile: add hooks to link zdkimsign and zdkimverify.

2020-08-28 11:06  ale

	* [r248] zaggregate: add option --config to print debug info and exit.
	  
	  parm: add option db_trace to trace SQL statements and queries.
	  
	  database: expand debug printing in zfilter_db.

2020-08-27 10:59  ale

	* [r247] debian/control: add pkg-config to build dependencies.
	  
	  configure: exit if pkg-config is not found.

2020-08-27 10:32  ale

	* [r246] testsuite: require OpenDBX for tests involving soot-on-sight.

2020-08-27 10:15  ale

	* [r245] filterlib: fix compiler warnings, hint -q option of gdb.
	  
	  zdkimfilter: define MAX_SIGNATURES and enforce it,
	  fix compiler warning (memcpy).

2020-08-27 09:48  ale

	* [r244] myadsp: add conditional line for DNSSEC, whenever lib will upgrade...

2020-08-27 09:47  ale

	* [r243] debian/change/log: set Ángel's text.
	  
	  debian/source/format: set to native, as Ángel suggested.

2020-07-10 17:03  ale

	* [r242] odbx_example.sql: Collate in database creation comment.
	  
	  redact.c: pragma warning pointer sign.
	  
	  util.c: pragma warning pointer size.
	  
	  zaggregate.c: pragma warning implicit through.

2020-05-11 10:07  ale

	* [r241] urldecode: modify so as to decode an entire file.
	  
	  man urldecode: updated.

2020-05-07 13:42  ale

	* [r240] zdkimfilter: check domains given in Received-SPF sender= are not error
	  message, by strchr(sender, ' ').

2020-05-07 11:34  ale

	* [r239] zdkimfilter: careful parsing of the sender= value in Received-SPF, it
	  can be a mailbox, a plain domain, or an error message.
	  get_prescreen() can return NULL if idn2_to_unicode_8z8z() fails, so
	  don't abort verification in that case.
	  Log phrase "please check ALLOW settings" changed to "please check
	  ALLOW_EXCLUSIVE is set".
	  
	  testsuite: changed according to the log phrase change.

2020-05-05 16:17  ale

	* [r238] tag 2.1

2020-05-05 16:16  ale

	* [r237] prepare new release.

2020-05-05 16:09  ale

	* [r236] adjust svn:ignore too.

2020-05-05 15:52  ale

	* [r235] Renamed dkimsign as zdkimsign. That includes changes in the following
	  files: ./release-notes-2.1.txt
	  ./myinstall.sh.in
	  ./etc/zdkimsign.pod.in
	  ./etc/odbx_example.pod.in
	  ./etc/zdkimfilter.conf.pod.in
	  ./etc/mangle_doc.pl
	  ./etc/webdoc.sh
	  ./etc/zdkimfilter.pod.in
	  ./etc/Makefile.am
	  ./src/zdkimsign.c
	  ./src/parm.c
	  ./src/Makefile.am
	  ./zdkimfilter.spec.in
	  ./zaggregate-example.sh
	  ./debian/rules
	  ./tests/testsuite.at
	  ./configure.ac

2020-05-05 09:37  ale

	* [r234] configure: skip EAI test unless --enable-EAI-test.

2020-05-05 09:14  ale

	* [r233] zdkimfilter: change behavior with bad A-R from remove to rename.
	  
	  testsuite: s/removed/renamed/.
	  add test to check header properly renamed.

2020-05-04 17:53  ale

	* [r232] util: correct A-R parsing (no slash before authres-version).
	  
	  zdkimfilter: use a_r_parse() instead of manually trying to determine
	  the authserv-id (which may be quoted, commented, etc.)
	  
	  testsuite: remove the slash before authres-version.

2020-03-25 19:07  ale

	* [r231] zfilter_db doc: remove erroneous X<domain> pod mark.

2020-03-25 18:52  ale

	* [r230] tag v2.0

2020-03-25 18:00  ale

	* [r229] add release notes, ready to release

2020-03-25 16:18  ale

	* [r228] configure: version 2.0,
	  etc/2idn.pod.
	  
	  2idn doc: new short man page (also added in Makefile).
	  
	  zdkimfilter doc: slightly reword for RELAYCLIENT.
	  
	  release-notes-2.0: final?
	  
	  zdkimfilter: review domain_is_valid().
	  
	  testsuite: add a test for mailparse.

2020-03-23 10:05  ale

	* [r227] filterlib: set is_relayclient on finding ORELAYCLIENT=.
	  
	  zdkimfilter: if not signing for RELAYCLIENT, try default_domain,
	  safety check parm->dyn.auth_or_relay (not everywhere).
	  
	  testsuite: add a test for ORELAYCLIENT=,
	  adapt test for leave_relayclient_alone new log message.
	  
	  zdkimfilter.conf DOC: reword reject_on_nxdomain,
	  amend action_header.
	  
	  zdkimfilter DOC: adapt to new whitelisting.

2020-03-19 18:14  ale

	* [r226] database: fix test functions by adding new domainstr() function.
	  
	  dkimsign: require more verbosity to return an error parsing recipients.
	  
	  zdkimfilter: fix is_common_address(),
	  fix logic for the reason of policy_fail.
	  
	  testsuite: add more tests.

2020-03-19 11:45  ale

	* [r225] add .mil to tentative psddmarc list.

2020-03-17 17:33  ale

	* [r224] zdkimfilter.conf doc: upda dnswl_worthiness_pass and whitelisted_pass.
	  
	  zfilter_db doc: updated db_sql_domain_flags.
	  
	  zdkimfilter: internal function is_postmaster() renamed to
	  is_common_address(). Besides postmasters, it now checks
	  other rfc2142 addresses, e.g. abuse, info, sales, ... .
	  
	  dkimsign: removed GCC pragma to suppress -Wpointer-sign for pcont
	  after call to my_mail_parse_c().
	  
	  dkim-mailparse: define more error conditions and rename to MY_*,
	  remove '?' and '=' from SPECIALS,
	  conditional macro renamed to TEST_MAIN,
	  removed function my_mail_first_special(),
	  new function end_token() to find comma,
	  revamped function my_mail_parse_c(),
	  rewrite testsuite and function do_testsuite().

2020-03-12 13:24  ale

	* [r223] database.h: add is_super_org_domain flag.
	  
	  filterlib: add an argument to the init_complete() function; non-zero
	  if called from a batch test.
	  
	  myadsp: fixed get_dmarc() bug; it didn't query PSD on missing org
	  domain.
	  
	  publicsuffix: change debug file to debug_tables.dump,
	  add more output to debugging version,
	  fix bug for TLD exceptions,
	  insert "official" testsuite.
	  
	  zdkimfilter: enable getting domain_flags for PSD,
	  don't write a pid file in batch runs.
	  
	  testsuite: add two tests for PSD.

2020-03-06 19:04  ale

	* [r222] dkim-mailparse: change exported names to not conflicting ones,
	  dkim_mail_*() to my_mail_*(),
	  use assert(),
	  use straight char, not u_char and unsigned char,
	  cast to (unsigned char*) on int promotion,
	  add a bunch of bad test --to be redone.
	  
	  dkimsign: change call to my_mail_parse().
	  
	  Makefile: add TESTmailparse.
	  
	  zdkimfilter: include dkim-mailparse.h,
	  new function domain_is_valid(),
	  use to my_mail_parse() for recipient domain,
	  verify returned domain is valid,
	  new feature shoot on sight if whitelisted < 0,
	  rewrite blocking and block override logic,
	  the result is slightly incompatible.
	  
	  database.h: shoot on sight per domain bit (memory only).
	  
	  
	  configure: bump version to 2.0alpha (because of incompatibility)
	  
	  release-notes-2.0: annotate changes, especially log lines.
	  
	  testsuite: fix tests broken because of log changes,
	  add some tests for shoot on sight --need more.
	  
	  myadsp: minor adjustment of macro definitions.

2020-02-05 18:20  ale

	* [r221] configure: version bump to 1.9alpha.
	  
	  TESTcstring: new check program.
	  
	  testsuite: add a test for cstring_printf().
	  
	  cstring: fix a potential null pointer dereference,
	  better vsnprintf() return code checking,
	  test with a string longer than 80 bytes.
	  
	  zaggregate: fix logging bad limit in check_addr(),
	  fix a bug that aborted sending whenever multiple
	  recipients had different limits, in write_to_header().

2020-01-07 18:20  ale

	* [r220] zfilter_db man page: document --db-sql-domain-flags.
	  
	  odbx_example.conf: add a 4th variable (COUNT(*)) to db_sql_domain_flags.
	  
	  database: implement the 4th variable; that way can determine if a
	  domain was found (because NULLs are translated to 0).
	  The software reads up to 4 variables, modifying
	  zdkimfilter.conf is not actually needed.
	  
	  filterlib: fix some error conditions in init:
	  if opening the socket fails, close(3), and
	  if init_complete() fails, skip the main loop.
	  
	  myadsp: manage res_init() pointer and allocation.
	  
	  zdkimfilter: add a 4th variable (dcount, not used) to db_get_domain_flags(),
	  remove call to query_init() from verify_message(), and
	  add it to init_complete() and reload_config().

2020-01-07 11:46  ale

	* [r219] myadsp: fix multiple errors and inaccuracies.

2020-01-07 09:11  ale

	* [r218] publicsuffix: add format printf for stdalone_reporting().
	  
	  myadsp: query_init() for main().

2019-11-18 09:38  ale

	* [r217] myreputation: fix bug (potential buffer overflow).
	  
	  myvbr: disable unused portion of code which caused warning reported by
	  Hanno.

2019-11-16 11:03  ale

	* [r216] zdkimfilter.c: fix wardning signaled by Hanno Böck

2019-10-15 07:52  ale

	* [r215] tag v1.8

2019-10-15 07:51  ale

	* [r214] add release specific files

2019-10-15 07:13  ale

	* [r213] tag v1.8

2019-10-15 07:13  ale

	* [r212]

2019-10-15 07:09  ale

	* [r211] change debian version

2019-10-15 07:05  ale

	* [r210] tag v1.8

2019-10-15 07:05  ale

	* [r209] v1.8

2019-10-15 07:02  ale

	* [r208] tag v. 1.8

2019-10-14 17:11  ale

	* [r207] zdkimfilter: fix bug in dkim_sig_final()
	  
	  database: no db_backend ==> no DB (even if stmt configured)

2019-10-01 14:15  ale

	* [r206] odbx_example.conf: db_sql_dmarc_agg_record: s/COUNT(*)/COUNT(DISTINCT(.m.id))/
	  otherwise field n will have the number of combinations.
	  
	  zdkimfilter.c: the wrong filename given in reload_config().

2019-09-24 08:37  ale

	* [r205] tag 1.7 corrected

2019-09-24 08:36  ale

	* [r204] debian/upgrade_mysql_1.7.sql: add table dmarc_bounce.

2019-09-24 08:29  ale

	* [r203] version 1.7 of odbx_example*.

2019-09-24 08:25  ale

	* [r202] etc/dbgraph.py: add new table, adjust dots per inch to 96.

2019-09-24 08:23  ale

	* [r201] etc/dbtemplate.svg: adjust key/arrows.

2019-09-24 07:50  ale

	* [r200] etc/dbtemplate.svg: scaled to fit

2019-09-24 06:38  ale

	* [r199] tag v1.7

2019-09-24 06:38  ale

	* [r198] configure: version 1.7
	  
	  tests/funnymail.noparen.eml.b64: this is a test file formatted as b64 for convenience.

2019-09-24 06:33  ale

	* [r197] debian/upgrade_mysql_1.7.sql: new file

2019-09-23 18:13  ale

	* [r196] debian/postinst: add psddmarc
	  add three-way merge option (works)
	  
	  debian/rules: add database upgrade
	  copy tentative psddmarc list
	  
	  debian/control: reorder dependencies a bit,
	  set any (not amd64) arch.
	  
	  debian/Makefile: add database upgrade
	  
	  debian/changelog: 1.7

2019-09-23 09:59  ale

	* [r195] Makefile: add the tentative-psddmarc list to the tarball.
	  
	  configure: vertion 1.7beta2

2019-09-22 16:16  ale

	* [r194] myadsp: added query_init() asn query_done() functions to initialize
	  a static res_state buffer used to call res_nquery(),
	  reviewed return codes of do_txt_query(),
	  in parse_dmarc() recognize tag np=,
	  define a structure to hold all three dmarc domains,
	  changed arguments of get_dmarc() to include a super_org,
	  query super_org as a last resource.
	  
	  parm: added parameter psddmarc.
	  
	  publicsuffix: check argument on entry.
	  
	  zdkimfilter: add a second publicsuffix_trie for psddmarc,
	  mimic org_domain calls for super_org,
	  move dmarc domains inside the new structure,
	  add calls to query_init(), query_done(),
	  insert super_org domain if DMARC record is there.
	  
	  database: rename macro CONST_STRING to CONST_DMARC_STRING.
	  
	  zaggregate: add query_init() and query_done(),
	  adjust arguments of get_dmarc().
	  
	  testsuite: added new parameter psddmarc.
	  
	  release_notes: PSDDMARC section.

2019-09-21 16:22  ale

	* [r193] dkimsign: compiler happy initialization

2019-09-16 17:21  ale

	* [r192] db_conv.sh: example script to convert database names.

2019-09-16 17:17  ale

	* [r191] publicsuffix: fix possible bug,
	  use utf-8 names.
	  
	  zdkimfilter: use utf-8 names for domains.
	  
	  myadsp: convert names to ascii before query.
	  
	  2idn: new ascii to utf-8 utility.
	  
	  testsuite: add a short test for publicsuffix.

2019-09-16 10:48  ale

	* [r190] distribute url{en,de}code.pod.
	  
	  distribute the funny test file in base64 format.

2019-09-13 16:11  ale

	* [r189] 1.7beta, almost installable (except debian/postinst)

2019-09-13 15:37  ale

	* [r188] Summarize changes

2019-09-11 16:36  ale

	* [r187] database.c: remove dkim_order from domain_variables,
	  add dkim stuff in the msg_ref call,
	  make dkim_result a 0/1 variable in domain calls,
	  insert multiple msg_ref's if there are multiple sig's,
	  consider iprev in pre-filter variables assertion.
	  
	  database.h: new structure signature_prescreen for dkim stuff.
	  
	  database_variables: add dkim_selector.
	  
	  myadsp: use PRESULT_* macro def's instead of raw numbers.
	  
	  zaggregate: add dkim_selector to the aggregate report.
	  
	  zdkimfilter: manage new signature_prescreen structure,
	  new_dps_sig() to allocate one,
	  in dkim_sig_final() assign dkim_order after,
	  consider CBREJECT for too many signatures,
	  consider reject_on_nxdomain if no From:,
	  use PRESULT_* macros.
	  
	  zaggregate.1: clarify option -1.
	  
	  zfilter_db.1: document changes in variables/calls.
	  
	  odbx_example.conf: call stored proc on db_sql_select_domain,
	  insert directly in db_sql_insert_msg_ref,
	  add selector in zaggregate query.
	  
	  odbx_example.sql: add selector in msg_ref,
	  shorten recv_from_domain.
	  
	  testsuite: change test 62 to consider selectors,
	  add a test for EAI check (needs patched library).
	  

2019-08-01 09:39  ale

	* [r186] Clean up compiler warnings. This consisted in adding useless
	  parentheses and braces (easy) and deal with signed vs unsigned
	  pointers. The latter was done by hushing up compiler's -Wpointer-sign
	  option by means of:
	  
	  #pragma GCC diagnostic push
	  #pragma GCC diagnostic ignored "-Wpointer-sign"
	  and then
	  #pragma GCC diagnostic pop
	  
	  around the calls. That is more noisy than casts, but by far less
	  dangerous. Since all functions in string.h work with signed char*, it
	  is advisable to avoid defining unsigned char* types. However, many
	  libray function do that, so it is unavoidable to mix.

2019-07-31 15:33  ale

	* [r185] configure: m4_pattern_allow([AC_MSG_ERROR])
	  
	  m4_redist.zip: add ax_compare_version.m4

2019-04-23 10:18  ale

	* [r184] postinst: minor comments

2019-03-13 10:27  ale

	* [r183] configure.ac: fix ax_compare_version mismatch

2019-03-12 18:38  ale

	* [r182] configure.ac: treat courier_version properly.
	  
	  filterlib.c: re-enable checking for FD3.

2019-02-13 18:15  ale

	* [r181] database.c: make iprev variable available whenever ip variable is
	  available.
	  
	  zfilter_db: document iprev in the man page.
	  
	  testsuite: add a test to check the ip address is given also if iprev
	  is missing in the ctlfile.

2019-02-13 17:01  ale

	* [r180] database_variables.h: add iprev.
	  
	  database.c: accept the iprev DNS name along with its IP address.
	  
	  zdkimfilter.c: if the rDNS name of the sender is available in ctlfile,
	  send it along with the remote IP to the database.

2019-02-04 18:16  ale

	* [r179] zaggregate-cancelexample.sh: new example script to cancel undelivered reports.
	  
	  zaggregate-example.sh: modified to make use of new option -1;
	  in addition, From: subdomain.example.com to avoid loops.
	  
	  urlencode, urldecode: new utilities for percent coding; both C and pod files.
	  
	  zaggregate: added option -1, variable URLENCODED_RCPT, query db_sql_check_dmarc_rcpt;
	  function check_addr(): added call to db_check_dmarc_rcpt();
	  reap_child(): new function --was part of domain_select();
	  do_pipe(): new function --was part of domain_select();
	  function domain_select(): add loop to send to each recipient (opt -1).
	  
	  
	  
	  database: new function db_check_dmarc_rcpt, calls the relevant query
	  after setting the corresponding variable.
	  
	  dkim_mailparse: fixed minor defects.
	  
	  odbx_example.sql: added new table dmarc_bounce, and
	  stored procedure block_bounce to insert a new addr.
	  
	  version: 1.7alpha

2018-06-12 15:39  ale

	* [r178] mangle_doc: automate copyright date in html documentation.
	  
	  odbx_example: add spamtrap count as new fields in both
	  domain and messages_in; an example query
	  to collect the count per domain is appended.

2018-05-30 09:17  ale

	* [r177] postinst: allow mixed case organization name

2018-05-16 10:01  ale

	* [r176] Documentation: review of database.html and related code.

2018-05-11 16:57  ale

	* [r175] Documentation:
	  
	  dbgraph.py: import also is_font, for all-upperase words,
	  fix a double-tag (<p><p>) bug in write_html
	  
	  perlpod.py: new function is_font(),
	  fix regex, add import sys, add comments

2018-03-27 18:12  ale

	* [r174] odbx_example: save v1.6 files, exemplify sql to locate a message by id.

2018-03-26 10:25  ale

	* [r173] configure: added --with-courier-config-output=file
	  
	  postinst: run courier-config rather than assuming /etc/courier

2018-02-11 12:24  ale

	* [r172] filterlib: fix the output of "let alone recipient %.*s".

2018-02-07 10:37  ale

	* [r171] Set mailuser, mailgroup as suggested by Viktor.

2018-01-16 16:51  ale

	* [r170] tag v. 1.6

2018-01-16 16:37  ale

	* [r169] debian: add Makefile to repo, which completes addition of debian to tarball.
	  That way, tarball users can call dpkg-buildpackage instead of ./configure
	  in order to build a debian package instead of making a local installation.

2018-01-16 16:33  ale

	* [r168] release-notes: added text for version 1.6.
	  
	  odbx_example: saved version 1.5,
	  set changes for 1.6 (rcpt_max_perday in table user, used in db_sql_check_user).
	  
	  debian/rules: set conditional build based on the presence of m4_redist.zip.
	  
	  debian: added to tarball (partial)

2018-01-11 12:02  ale

	* [r167] merged relayclient

2018-01-11 11:41  ale

	* [r166] Add test "Prevent signing with let_relayclient_alone"

2018-01-11 11:29  ale

	* [r165] Add test "Sign with RELAYCLIENT", without i (AUTHNAME) record.

2018-01-11 09:21  ale

	* [r164] tests/undo_percent_relay.ctlfile.txt: new test file.

2018-01-11 09:19  ale

	* [r163] etc/Makefile: removed resend-with-preheader scripts which were
	  symbolic links.
	  
	  src/Makefile: add TESTundo_percent_relay, to test basic undo functionality.
	  
	  filterlib (fl_undo_percent_relay): fix undoing a recipient on the first line of a ctlfile
	  (without prior \n),
	  check inode numbers are not changed by freopen(),
	  hack verbosity so as not to have logging on regression tests.
	  
	  zdkimfilter: don't pass verbosity when calling fl_undo_percent_relay().
	  
	  testsuite: add new test fo basic undo functionality.
	  
	  test/Makefile: distribute new test file (going to be committed soon).

2017-12-21 12:48  ale

	* [r162] zdkimfilter: set local_part to "postmaster" it it is empty.
	  
	  doc: explain RELAYCLIENT setting and conflict.

2017-12-15 19:29  ale

	* [r161] configure.ac: remove vestigial COURIERSUBMIT_WANTS_UGLY_HACK.
	  
	  filterlib: new exported function: fl_undo_percent_relay();
	  minor modifications to avoid compiler warning.
	  
	  parm: new option let_relayclient_alone.
	  
	  zdkimfilter: new global variable undo_percent_relay;
	  modify dkimfilter() to only use relayclient if not excluded by
	  configuration, starting with '@' and length >= 2.
	  
	  testsuite: adapted for new parameter.

2017-12-09 20:23  ale

	* [r160] filterlib: read RELAYCLIENT environment variable from ctlfile.
	  
	  zdkimfilter: establish a user id, which may be either the relayclient
	  domain or the authenticated user id. So signatures can be done on
	  behalf of relaying hosts.
	  
	  debian/postinst: fix ownership of the private key.
	  
	  man pages: zdkimfilter and zdkimfilter.conf partially updated.

2017-12-09 09:17  ale

	* [r159] bump to version 1.6

2017-12-09 09:13  ale

	* [r158] Create branch for RELAYCLIENT=postmaster@example.com syntax

2017-12-08 18:39  ale

	* [r157] redact: conditional compile for nettle version 3
	  
	  configure: detect nettle version

2017-12-04 09:24  ale

	* [r156] debian/postinst: s/daemon/$mailgroup/ from installed /usr/bin/mailq

2017-09-13 08:57  ale

	* [r155] Add debian directory

2017-08-26 17:40  ale

	* [r154] add a (redacted) mail file used for tests

2017-08-26 16:15  ale

	* [r153] get rid of broken symlink

2017-06-15 07:41  ale

	* [r152] zdkimfilter: propagate fix to other functions using the same idiom (DRY violation)

2017-06-14 16:02  ale

	* [r151] zdkimfilter: BUG FIX: empty header lines (continuation lines having just a space)
	  were treated badly, possibly causing the rest of the header to slip into the body.
	  
	  testsuite: added test case for the above bug.

2017-05-05 07:58  ale

	* [r150] Remove zdkimfilter.spec, erroneously added recently.
	  zdkimfilter.spec.in is versioned, zdkimfilter.spec is in EXTRA_DIST.
	  For the time being, they are equal.

2017-05-03 15:11  ale

	* [r149] Amend documentation after Lintian "allows to" warning.
	  Add Zenon's spec file.

2017-03-29 08:22  ale

	* [r148] Documentation scripts reviewed

2016-12-05 19:49  ale

	* [r147] READMEsvn: a list of commands to build from sources.

2016-12-05 19:44  ale

	* [r146] add config.rpath to the zip. It seems it is not required without added macros...

2016-12-05 19:22  ale

	* [r145] redistribute a few m4 macros in m4_redist.zip

2016-12-05 17:51  ale

	* [r144] Added COPYING, per autotools instructions

2016-06-04 16:17  ale

	* [r143] Published DB doc (database.html). Scripts to produce docs added to svn.

2016-05-30 10:31  ale

	* [r142] configure: change `=true' to `!=false' for opendkim version,
	  add etc/odbx_example.pod.in.
	  
	  testsuite: set default_domain for postmaster@.
	  
	  zdkimfilter: comment about "--domain misconfigured--"
	  
	  etc: stop ignoring doc generator scripts, except conf2man.pl which is not used any more.

2016-03-17 10:29  ale

	* [r141] zdkimfilter: fix strdup(NULL) reported by AndrzejAugustynowicz
	  https://github.com/szepeviktor/zdkimfilter/issues/2
	  
	  zfilter_db: mark tables with X for db documentation

2016-01-17 11:45  ale

	* [r140] dkimsign: fixed passing p rather than "%s", p,
	  checked dup/open return values after fork.
	  zdkimfilter: TODO comment.

2015-07-29 18:03  ale

	* [r139] configure: always use the local copy of libtool.

2015-06-22 15:38  ale

	* [r138] Add rpm .spec by Zenon Panoussis

2015-04-20 11:10  ale

	* [r137] tag v1.5

2015-04-20 11:10  ale

	* [r136] myadsp: more reliable error codes for TXT lookup failures,
	  clearer distinction between DMARC/ADSP policies.
	  
	  database: NULL domain flags yield zeroes.
	  
	  zdkimfilter: log when DMARC or ADSP are enabled (verbose>=8),
	  log DMARC/ADSP lookup (verbose>=7)
	  pretend ADSP policy on NXDOMAIN,
	  log INTERNAL ERROR.

2015-04-18 14:09  ale

	* [r135] tag v1.5

2015-04-18 14:08  ale

	* [r134] old tag was not exact

2015-04-18 13:56  ale

	* [r133]

2015-04-18 13:43  ale

	* [r132] database: move get_dkim_result() from .c to .h,
	  define empty db_set_org_domain() if no OpenDBX.
	  
	  zdkimfilter: #define dkim_policy around dkim.h (also in myreputation),
	  #if-out duplicated code in print_signature_resinfo(),
	  return dkim_none for non-processed signatures,
	  verify all signing domains if trusted vouchers.

2015-04-17 18:05  ale

	* [r131] testsuite: comment out DNS real query.

2015-04-17 17:27  ale

	* [r130] tag v1.5

2015-04-17 17:26  ale

	* [r129] zdkimfilter: make do_{dmarc,adsp} int, not uint8_t.
	  
	  docs: minor changes to zdkimfilter(8)

2015-04-17 17:25  ale

	* [r128] tag v1.5

2015-04-17 14:14  ale

	* [r127] zdkimfilter: have dmarc_dkim=none if no signatures, ditto spf.
	  
	  docs: complete zaggregate man page.
	  
	  examples: remove unneeded escapes.

2015-04-15 16:17  ale

	* [r126] database: fix prefix_len and adsp.
	  
	  zdkimfilter: move BADSIG out of logged permerrors,
	  review use of dmarc reason and disposition,
	  log (verbose>=3) if BOFHSPFFROM is the sole pass.
	  
	  testsuite: account for the aded log line.
	  
	  configure: add --enable-dkimsign-setuid.
	  
	  docs: finish query documentation in zfilter_db,
	  mention unauthorized scope in zdkimfilter.conf,
	  start zaggregate man page.

2015-04-11 07:43  ale

	* [r125] zdkimfilter: set dkim_order according to preference.
	  
	  database: compute prefix_len for non-aligned domains.

2015-04-11 06:54  ale

	* [r124] zdkimfilter: new functions copy_replacement(),
	  replace_received_auth(), and
	  replace_courier_wrap().
	  
	  rfc822: imported Courier sources to parse and rewrite addresses.
	  
	  testsuite: check wrapping long lines on signing.

2015-04-10 08:18  ale

	* [r123] zaggregate: fix limit comparison.
	  
	  zdkimfilter: log_dkim_order_above as warning.
	  
	  example: review, fix table creation.
	  
	  docs: added new z parms, begin zfilter_db.

2015-04-07 11:01  ale

	* [r122] zdkimfilter: clarify use of dkim_permerror vs dkim_fail,
	  better verification failure messages,
	  define default report interval in database.h,
	  change default from 3600 to 86400.
	  
	  database: add original_ri besides adjusted dmarc_ri.
	  
	  zaggregate: fix xml structure, allow adding reason comment,
	  choose what spf scope to report.
	  
	  example: add 'none' defaults, clean up odbx_example.sql and
	  odbx_example.sh, add zaggregate-example.sh.

2015-04-02 16:44  ale

	* [r121] zaggregate: new program to produce DMARC reports.
	  
	  cstring: new source to ease handling C strings.
	  
	  database: new statement db_sql_set_dmarc_agg,
	  new vars period, period_start, and period_end,
	  flag variable bumped to 64 bit,
	  #define CONSOLE_DEBUG to display queries,
	  new function db_zag_wrapup() for dmarc only,
	  modified stmt_run_n() for multiple rows,
	  added 3 public functions for dmarc queries,
	  for zfilter_db, replace comma with slash,
	  run adjust_rua() against test records.
	  
	  zdkimfilter: new params honored_report_interval and log_dkim_order_above,
	  check report interval, aka period, is 24h submultiple,
	  log if number of signing domains exceeds order,
	  adjust rua and ri before passing them to the database.
	  
	  filterlib: define live_children volatile.
	  
	  myadsp: fix dmarc record parsing,
	  new function adjust_ri() to check submultiples,
	  new function adjust_rua() to parse dmarc URI,
	  have write_dmarc_rec() use the new functions,
	  new function verify_dmarc_addr() for external recipients.
	  
	  odbx_example: add DMARC queries,
	  add odbx_example.sh with calls to zfilter.db.
	  
	  configure: back to version 1.5,
	  support silent rules (make V=0),
	  require zlib (lz),
	  check UUID support (for report id's).

2015-03-19 17:18  ale

	* [r120] odbx_example: added some sources, as well as release notes,
	  set up working configuration, except reporting.
	  
	  spf_result_string: separated function into its own header.
	  
	  database: nxdomain variable removed (nx),
	  add variables prefix_len, dmarc_ri, dkim_order,
	  add "org", "dmarc", and "nx" auth_types,
	  always pass dmarc variables, even if "none",
	  macro MAX_DECIMAL_DIG for recurring numeric buffers,
	  fix use of u.f.sig_is_ok,
	  dkim_order tracked on the fly,
	  revamp the TEST_MAIN part so as to store test data.
	  
	  myadsp: NO_DNS_QUERY compile switch to link w/o resolver,
	  append a sentinel do dmarc_rua,
	  exported version of parse_dmarc().
	  
	  zdkimfilter: use best spf result if a domain has many,
	  log if spf "From:" differs from dkim "From:",
	  call srandom() on completing initialization.

2015-03-12 18:03  ale

	* [r119] testsuite: finished most DMARC tests.
	  
	  zdkimfilter: log rejecting with reputation, but don't bother.

2015-03-11 18:42  ale

	* [r118] database: one spf result per domain.
	  
	  zdkimfilter: added a method log for dmarc/adsp (verbose 4),
	  fix domain_flags() (only one is_from),
	  fix reading z.honor_dmarc.
	  
	  myadsp: fix get_dmarc() reading org_domain.

2015-03-09 19:57  ale

	* [r117] myadsp: new function write_dmarc_rec() reassembles part of it,
	  support passing fo= tag,
	  pass found_at_org.
	  
	  database: add variables nxdomain, spf_result, dkim_result,
	  dmarc_record, dmarc_rua, dmarc_dkim, dkim_spf,
	  dmarc_reason, and dmarc_dispo; more than 32 total.
	  pass variables when significant.
	  
	  zdkimfilter: changed 554 to 550 for rejection,
	  sig_is_good() converted to return an enum,
	  write_file() policy args moved to vh,
	  set " (QUARANTINE)" comment to match action,
	  unauthenticated save scope according to presence of publicsuffix,
	  distinguish if dmarc pass is due to dkim and spf.

2015-03-05 19:12  ale

	* [r116] testsuite: added x4 subdomain signature,
	  first DMARC test.
	  
	  docs: started documenting DMARC implementation.
	  
	  parm: added options min_key_bits, publicsuffix, honor_dmarc.
	  
	  database: fixed assertion for org_domain_variable.
	  
	  zdkimfilter: fixed domain_flags(),
	  fixed file_write() of dmarc=,
	  move policy check earlier in verify_message(),
	  treat alignment,
	  log memory failure from get_prescreen().
	  
	  myadsp: fixed fake DNS functions.

2015-03-02 12:38  ale

	* [r115] zdkimfilter: revised verification and struct verify_parms,
	  some code from domain_sort() to new function domain_flags(),
	  get_prescreen() called for spf from verify_headers(),
	  new VBR-Info function mv2tv() avoids memory error bug,
	  new function spf_result_string() to use any spf values,
	  DEFAULT_NO_DB for configuration changes w/o openDBX.
	  
	  redact: included stdio.
	  
	  database: special flag to tweak saving of unauthenticated domains,
	  defined enumeration for SPF and DKIM results,
	  defined domain_val for permanent sort key (was sigval),
	  defined some dmarc flags.
	  
	  myadsp: defined dmarc_rec and functions to do DMARC queries,
	  do_txt_query() works for both queries.
	  
	  parm: added warning for multiple definitions, which cause leaks.
	  
	  testsuite: use AT_CHECK_NOESCAPE to expand $HAVE_NETTLE,
	  avoided multiple definitions,
	  adapted database output, which is slightly changed.
	  
	  configure: use version 1.6, in case 1.5 will have to be released,
	  added --tag=CC in libtool invocations.
	  
	  odbx_example: draft aggregate DMARC query.

2015-02-23 19:00  ale

	* [r114] configure: add tag to libtool args.
	  
	  odbx_example: syntax for aggregate queries.

2015-02-21 10:22  ale

	* [r113] zdkimfilter: fix reload_config so that it works witout opendbx.
	  
	  configure: fix HAVE_NETTLE to be 0/1, and pkg-config opendkim.
	  
	  myadsp: fix parse_adsp for cases where skip_fws returns NULL.

2015-02-21 10:01  ale

	* [r112] No-dmarc branch starts at r108 of trunc

2015-02-21 09:45  ale

	* [r111] Create branches dir

2015-02-12 15:33  ale

	* [r110] publicsuffix: add new C source and header files.
	  
	  database: new function to set organizational domain.
	  
	  zdkimfilter: manage publicsuffix structure init and cleanup,
	  determine organizational domain during verification,
	  reset database if there are only incoming/outgoing queries in split mode.
	  
	  configure: require libidn2 and libunistring.

2015-02-09 17:00  ale

	* [r109] database: added variable org_domain,
	  added query db_sql_domain_flags,
	  added function db_get_domain_flags.
	  
	  zdkimfilter: retrieve do_dmarc and do_adsp flags from dkim_domain.
	  
	  testsuite: verify equivalence of is_whitelisted and domain_flags.
	  
	  Makefile: use wildcard for release-notes.

2015-02-04 19:41  ale

	* [r108] configure: version bump to 1.5,
	  remove tests for dkim_policy (ADSP) that libopendkim no longer has,
	  remove tests for reputation library as libdkimrep no longer exists,
	  explicit tests for libopendkim functions,
	  switch test for 220 from true/false to 1/0.
	  
	  testsuite: test for 220 accordingly.
	  
	  myadsp: add new source files for querying adsp.
	  
	  zdkimfilter: workaround for CNAME in KEYFAIL not needed for libopendkim 2.10.1,
	  log message for permerrors if verbose >= 4,
	  on ADSP temperror, issue a temperror if would reject/drop,
	  use function-specific precompiler conditionals,
	  
	  filterlib: call setlinebuf(stderr) to avoid garbage in log files.

2015-01-15 10:20  ale

	* [r107] zdkimfilter: workaround for OpenDKIM bug 219.

2015-01-15 10:13  ale

	* [r106] zdkimfilter: added log lines for temporary failures.

2015-01-08 15:43  ale

	* [r105] tag v1.4

2015-01-08 15:42  ale

	* [r104] release notes.

2015-01-08 15:30  ale

	* [r103] tag v1.4

2015-01-08 15:30  ale

	* [r102] filterlib: never exit master process on select error, better error log.
	  
	  zdkimfilter: NULL reputation service.
	  
	  testsuite: set reputation_root for reputation tests.
	  
	  configure: version bumped to 1.4.

2014-12-30 12:17  ale

	* [r101] tag v1.3

2014-12-30 12:13  ale

	* [r100] bug fixes, thanks to Viktor Szepe: semicolon in zdkimfilter.c,
	  and some clarification in zdkimfilter.conf

2014-12-23 13:13  ale

	* [r99] myreputation: independent of libopendkim.
	  
	  zdkimfilter: log only basename of saved file
	  
	  md5: derived derived from the RSA Data Security, Inc. MD5 Message-Digest Algorithm

2014-12-20 12:59  ale

	* [r98] parm: added 6 parameters: action_header, header_action_is_reject,
	  dnswl_worthiness_pass, dnswl_invalid_ip, dnswl_octet_index, whitelisted_pass.
	  
	  testsuite: added test for action_header.
	  
	  configure: hack to have dnswl invalid ip as integer, AC_LANG_SOURCE as required.
	  
	  doc: most new parameters are documented.
	  link resend-with-preheader from avfilter.
	  
	  myreputation: new source file.
	  
	  zdkimfilter: move reputation in its source, call it in dkim_sig_final, read policy.ip,
	  save_file() and strcpy_normalize()

2014-12-18 10:28  ale

	* [r97] database: new variable complaint_flag
	  
	  zdkimfilter: set complaint_flag on empty sender and From: postmaster
	  
	  docs: better zfilter_db man page

2014-12-16 12:30  ale

	* [r96] zdkimfilter: fix pid file name, add split_verify option
	  
	  parm: split_verify to set single function (verify/sign).

2014-12-13 10:06  ale

	* [r95] testsuite: drop message change
	  
	  zdkimfilter: new function reload_config.
	  
	  testsuite: test reload_config.
	  
	  param: structure aligned to 64bit boundary.

2014-12-12 09:57  ale

	* [r94] filterlib: merge fixes from avfilter

2014-12-11 12:14  ale

	* [r93] zdkimfilter: add two parameters, verify_one_domain and add_ztags.
	  
	  zdkimfilter: check db_ flags after signature verification.
	  
	  zfilter_db: list variables more clearly in the man page.
	  
	  filterlib: try and avoid some useless output.

2014-12-03 17:24  ale

	* [r92] configure: added myinstall.sh for perms and owner. Version bump to 1.3.
	  
	  conf.dist: removed non-essential options and separate pod from conf,
	  simplified installation by not copying conf.dist to conf,
	  better man page, independently of the conf file.
	  
	  conf2pod: removed, not needed any more.

2014-11-23 11:36  ale

	* [r91] fix bug reported by Ilmar Kruis

2014-10-27 19:33  ale

	* [r90] old stats stuff removed.
	  
	  zfilter_db.pod: not double insertions.
	  
	  filterlib: use pselect if available,
	  name listen socket after argv0,
	  better logging.

2014-10-23 16:07  ale

	* [r89] filterlib: check read works even on 1st call.
	  
	  odbx_example: unique index by_dom on table domain.

2013-06-24 14:44  ale

	* [r88] odbx_example: add a query to find authenticated
	  messages from a given domain.
	  
	  dkimsign.c: better bad-permission error message
	  
	  zdkimfilter.conf man page: fix typo.

2013-03-30 14:40  ale

	* [r87] correct tag for v1.2

2013-03-30 14:39  ale

	* [r86] documentation: correct misspelled add_auth_pass.
	  
	  parm: move it right after redact_received_auth.
	  
	  testsuite: amend for the move.

2013-03-30 14:17  ale

	* [r85] tag v1.2

2013-03-30 14:14  ale

	* [r84] testsuite: expand signature verification to check unrename.
	  
	  doc: updated, release-notes added to tarball.

2013-03-20 17:42  ale

	* [r83] release notes for v 1.2.

2013-03-20 17:01  ale

	* [r82] testsuite: modified test to also check signing added A-R auth=pass.

2013-03-20 16:23  ale

	* [r81] new parameter add_auth_pass to add an A-R field to outgoing messages.
	  
	  zdkimfilter: short inline functions my_dkim_header() and chomp_cr()
	  to avoid duplicating code.

2013-03-20 10:33  ale

	* [r80] testsuite: check dnswl whitelisting.
	  check dnswl logging to the db.
	  configured: version bumped to 1.2.

2013-03-18 19:10  ale

	* [r79] database: skip unverified signatures in in_stmt_run.
	  That caused entries in msg_ref with no flags set in auth if report_all_sigs is false.

2013-03-18 19:03  ale

	* [r78] zdkimfilter: added dnswl whitelisting for adsp; modified callback so as to whitelist
	  based on count.
	  added dnswl_dps, and dnswl_count in verify_parms.
	  modified domain_sort() so as to insert the dnswl domain.
	  added logging for adsp whitelisting due to dnswl.
	  
	  database: added dnswl flag to auth_type_variable.

2013-03-18 10:45  ale

	* [r77] util: Fix a_r_parse(): authserv-id's version and "@".

2013-03-08 13:18  ale

	* [r76] util: test out of bound array
	  conf: completed documentation

2013-03-08 12:13  ale

	* [r75] Parameter dont_trust_a_r flipped to trust_a_r to avoid surprises.
	  
	  Added new parameter trusted_dnswl, defaulting to list.dnswl.org.
	  
	  util: modified a_r_parse so as always issue a last call.
	  
	  zdkimfilter: added function a_r_reader, used as a_r_parse callback.
	  
	  conf: documented new parameters.

2013-03-07 16:42  ale

	* [r74] util: added function a_r_parse() to read ASCII a-r.
	  updated copyright notices and svn:ignore.

2013-03-06 10:23  ale

	* [r73] Collect some utility functions in util.{c,h}.

2013-03-06 09:56  ale

	* [r72] New parameter dont_trust_a_r, keep removing A-R as before.

2012-12-18 18:15  ale

	* [r71] dkimsign:
	  Add a --sender option to allow specifying an envelope sender,
	  for db logging purposes. Documentation updated too.

2012-12-06 16:57  ale

	* [r70] fix dkimsign man page format.

2012-12-05 16:44  ale

	* [r69] tag for version 1.1

2012-12-05 16:43  ale

	* [r68] Added release notes for changes 1.0 - 1.1.
	  
	  configure: try to work even without opendkim.pc.
	  
	  zdkimfilter: redact-non-full warning only if verbose >= 4.

2012-12-05 13:00  ale

	* [r67] testsuite:
	  tests for blocked user and some corner cases.
	  
	  dkimsign:
	  temporary ctlfile is not removed when testing.
	  
	  filterlib:
	  new function free_on_exit() to delay freeing filter-response.
	  
	  zdkimfilter:
	  new function some_dwa_cleanup() to cleanup dwa separately.
	  parse message header to collect data also if not signing.
	  fixed check in block_user().
	  syslog line on altering block list raised to LOG_CRIT.

2012-12-04 11:53  ale

	* [r66] Jumbo commit, updated copyright notices on most files.
	  
	  dkim-mailparse: imported and modified to read multiple mailboxes.
	  
	  dkimsign:
	  new function copy_recipients(), using mailparse.
	  create_tmpfiles() modified to call it, and also read versobse.
	  modified argument processing in main().
	  added option --db-filter, builds a better ctlfile.
	  added option -t to get a tmp directory on the command line.
	  
	  zdkimfilter:
	  handled case of NULL dyn.domain.
	  fix parm_z_reputation_root, reported by Matthias Wimmer.
	  
	  redact:
	  fixed parm.h inclusion and nettleless redacted(), both reported by Matthias Wimmer.
	  
	  documentation, testsuite, examples updated too.

2012-11-29 15:08  ale

	* [r65] version bump to 1.1.
	  
	  zdkimfilter: finished addition of blocked_user_list.
	  new function block_user() to update that file.
	  new function update_blocked_user_list() is the
	  core of check_blocked_user_list(), called internally.
	  added call to set client ip even for outgoing message.
	  check REMOTE_ADDR if no frommta info.
	  
	  database: arranged to retrieve two values from a query, so that
	  db_sql_select_user can return user_ref and message_ref.
	  ip_variable moved to common_variables.
	  added query db_sql_check_user.
	  
	  minor changes to suit.

2012-11-24 12:05  ale

	* [r64] database: added new field rcpt_count for outgoing messages.
	  
	  filterlib: added new callback "on_fork".
	  added utility function fl_whence().
	  added function free_on_exit() for allocated responses.
	  split the read_fname() function into two parts, a new
	  process_read_fname() that parses one char at a time,
	  while the old block can read multiple bytes on entry.
	  
	  zdkimfilter: added new parameter blocked_user_list, a filename.
	  added code to reject posts from blocked authenticated
	  users, unless the only recipient is the postmaster of
	  the signing domain.
	  added support for rcpt_count.
	  
	  odbx_example: added query to select sent messages.

2012-11-22 13:55  ale

	* [r63] filecopy: added file with filecopy() function.
	  
	  database: undefine the macro after use
	  
	  zdkimfilter: leave dyn allocated area as-is.
	  
	  filterlib: free some allocations before terminating.
	  don't close stdin.
	  check result of filecopy.
	  
	  dkimsign: hack to ease auto test.
	  bug fixes (alter malloced pointer, extra newline).
	  
	  testsuite: add tests for dkimsign.

2012-11-21 17:06  ale

	* [r62] dkimsign: added option --filter to accept a msgfile on stdin.
	  function create_ctlfile() split into two new functions, my_mkstemp() and
	  create_tempfiles().
	  temporary msgfile created if stdin is not a regular file.
	  
	  filterlib: added option --no-fork to simplify signing a message somewhat.
	  part of function fl_runchild() split into a new function do_the_real_work().
	  added flags in fl, no_fork and write_file.
	  new function fl_runstdio() sets up ctlfiles, stdin, stdout, and calls do_the_real_work()
	  without forking. called instead of fl_runtest(), it also copies stdin to stdout in case
	  the message is not filtered (using the write_file flag).
	  
	  zdkimfilter: function filecopy() moved to its own header file, included.
	  removed unused hack not_sig_but_spf.
	  
	  Documentation updated.
	  

2012-11-20 08:42  ale

	* [r61] dkimsign: if the domain is actually an address, just use the domain part.
	  
	  odbx_example: add some queries.

2012-10-28 19:10  ale

	* [r60] tag for v1.0

2012-10-28 19:09  ale

	* [r59] version 1.0 ready
	  testsuite tweaks

2012-10-28 16:24  ale

	* [r58] check compilation without OpenDBX

2012-10-28 14:41  ale

	* [r57] database: add variables envelope_sender, from, and subject.
	  
	  zdkimfilter: no_reputation flipped to do_reputation.
	  
	  added zfilter_db documentation.
	  
	  zfilter_db: clean up options and test environment.
	  
	  added dkimsign and redact documentation
	  
	  database: added dummy function to compile without OpenDBX

2012-10-22 07:40  ale

	* [r56] Fix passing bogus data after not signing an outgoing message.
	  
	  Tweaks for building man pages.

2012-10-21 09:08  ale

	* [r55] Fixed passing IP address to the database.
	  
	  Tweaked distribution cleanup, and man page.

2012-10-20 16:37  ale

	* [r54] tag v1.0b

2012-10-20 16:35  ale

	* [r53] updated libopendkim, and added libdkimrep.
	  worked out database layout.
	  ready for beta testing...

2012-10-18 18:02  ale

	* [r52] zfilter_db: Removed useless source.

2012-10-18 18:01  ale

	* [r51] database: improved error messages and argument for instantiating queries.
	  
	  zfilter_db: This will be the amended debugging in database.c.

2012-10-17 18:18  ale

	* [r50] dkimsign: Use configured tmp directory and default domain.
	  
	  parm: allow retrieving more than a single parameter (read_single_values()).
	  
	  testsuite: added cases for header.b and retrieving outgoing domains.
	  
	  zdkimfilter: Use database after signing. Add --no-db option for not using database at all.

2012-10-17 10:53  ale

	* [r49] zdkimfilter: Database calls for outgoing, signed messages. Some refactoring.
	  
	  database: added separate functions for in and out. Create database_statements.h.
	  
	  database_variables: added adsp_flags, message_status, vbr_mv, and vbr_response.

2012-10-16 10:09  ale

	* [r48] zdkimfilter: add some cleanup and smooth corners. Bugfixes.
	  
	  database: Dump variables during tests. IP address.
	  
	  testsuite: add variable to invoke valgrind.
	  
	  conf2pod: derived from conf2man, easier and allows to get html too.

2012-10-13 09:25  ale

	* [r47] zdkimfilter: removed domain_whitelist, which replaced spf and dkim whitelists. This
	  must dynamically use db_sql_whitelisted.

2012-10-13 08:55  ale

	* [r46] parm: new source file, separated from zdkimfilter.
	  
	  database: new source file for OpenDBX-driven db I/O.
	  
	  zfilter_db: standalone utility for checking db settings.
	  
	  ip_to_hex: short function to properly insert IP numbers.
	  
	  conf2man: Perl utility to format parameter explanations.
	  
	  zdkimfilter.conf: removed stats_file and stats_wait. NOTE: no_author_domain replaced with
	  two parameters hono_author_domain and reject_on_nxdomain. Added max_signatures.
	  
	  redact: short function to redact a string, used to obfuscate user's login-ID in Received:
	  header field.
	  
	  zdkimfilter: verify_message function changed to work based on domains, where each domain
	  can have multiple signatures.

2012-09-22 17:03  ale

	* [r45] zdkimfilter: vb_fgets moved to its own header file. Added new parameter
	  redact_received_auth. Added new function to redact the user id.
	  
	  vb_fgets: new header file; it looks pretty usable that way.
	  
	  parm: new header file.
	  
	  redact: new C source and header files, function redacted() uses nettle.
	  
	  configure: added detection of libnettle.
	  
	  testsuite: check redaction.

2012-09-19 08:51  ale

	* [r44] version: 1.0
	  
	  zdkimfilter: Removed parameter no_dwl. Added parameter report_all_sigs. Printing A-R moved
	  to a new function. Corrected bug in verify_header that prevented collecting VBR info.
	  
	  myvbr: added debug function to read DNS.
	  
	  testsuite: added tests for multiple signatures reporting.

2012-09-17 16:16  ale

	* [r43] dkimsign: added new command to sign locally generated mail
	  
	  zdkimfilter: spf_whitelist and dkim_whitelist merged into domain_whitelist. DKIM takes
	  precedence.
	  
	  myvbr: add functions for handling of VBR-Info; lookup according to specification.
	  
	  zdkimfilter: A-R for vbr according to spec. New parameter trusted_vouchers.
	  
	  testsuite: changed according to different log formats.

2010-10-05 14:35  ale

	* [r42] tag v0.5

2010-10-05 13:53  ale

	* [r41] Set text plain for etc/logrotate.example

2010-10-04 17:39  ale

	* [r40] etc: added a logrotate.example to the dist, along with a patch to opendkim-genstats

2010-10-04 14:50  ale

	* [r39] zdkimfilter: added parameter no_dwl to skim querying dwl.spamhaus.org. Added code to
	  do the query otherwise.
	  
	  testsuite: inserted version check to skip tests that would fail with older libopendkim
	  versions.
	  
	  myvbr: new .c and .h sources for minimal vbr lookup, without checking.
	  
	  conf.dist: added stanzas for no_dwl and also stats_* parameters
	  
	  configure: added test for resolver lib.

2010-10-01 14:28  ale

	* [r38] zdkimfilter: set header.from in dkim-adsp's A-R entry, if libopendkim is v2.2 or
	  better.
	  
	  testsuite: set header.from as expected in results. This way the test suite can only run
	  when compiled against libopendkim 2.2 or better.

2010-09-22 08:54  ale

	* [r37] zdkimfilter: log most of the frommta string, not just the IP address.
	  
	  zdkimstats: convert to OpenDKIM log format, by dropping extra fields in frommta (helo-name
	  and looked-up reverse name.)
	  
	  testsuite: adjusted accordingly

2010-09-11 16:32  ale

	* [r36] testsuite: modified some tests to also check stats writing.
	  
	  filterlib: fix bug that prevented "frommta" to be retrieved.

2010-09-11 10:10  ale

	* [r35] Oops, version changed now.

2010-09-11 09:58  ale

	* [r34] zdkimstats: added two standalone programs, -wait and -anon. A new header,
	  OpenDKIMstats.h has also been added.
	  
	  filterlib: fl_init_signal changed to operate in two different ways, according to an arg.
	  Signal handling has been adjusted to allow file locking interoperable with rotating the
	  stats file.
	  
	  zdkimfilter: completed the stats writing function.
	  
	  zdkimfilter: added pid creation to allow signalling. Modify after_filter_stats to reopen
	  the stats file if interrupted by SIGUSR1.
	  
	  zdkimfilter: slightly modified verification so as to collect data useful for stats, e.g.
	  checking for a "Precedence: list" header field.
	  
	  version: set to 0.5

2010-09-07 10:05  ale

	* [r33] filterlib: added function fl_set_after_filter so that a filter can set a function to
	  be called
	  after the response has been given to Courier; somewhat similar to atexit.
	  
	  filterlib: add frommta field ('f') to msg_info reat from ctlfile; it includes the sender's
	  IP
	  address.
	  
	  zdkimfilter: added functions and parameters to support writing a stats log; this includes:
	  * allocating a stats_info structure
	  * clean_stats and clean_stats_info_content
	  * stats_file and stats_wait
	  * count Received header fields
	  * keep C-T and C-T-E header fields
	  * set_client_ip
	  * after_filter_stats
	  * empty write_stats
	  
	  zdkimfilter: fixed bug that would cause erroneous calls to isalnum() in case of 8bit
	  header
	  fields.

2010-09-06 15:51  ale

	* [r32] testsuite: added some tests to check key_choice_header, and minor changes to
	  increase the
	  percentage of code covered.
	  
	  conf.dist: added comments for key_choice_header; default_domain stanza moved to improve
	  readability.
	  
	  conf.dist: removed 8k limit.
	  
	  zdkimfilter: rewritten parameter reading (parm_config()) to use vb_fgets. That removes the
	  8k
	  limit of logical lines. Buggy behavior when no newline ends the parameter file has also
	  been
	  fixed.
	  
	  zdkimfilter: various small improvements:
	  * fix description of no_author_domain
	  * smaller initial buffer for debug builts
	  * check eof in vb_what
	  * check for malformed bodyless message (sign and verify)
	  * add possibility to ignore login id using dash ("-")
	  * several fixes for key_choice
	  * improve code readability for A-R discard (maybe_attack)

2010-09-04 18:34  ale

	* [r31] zdkimfilter: functions sign_headers and verify_headers converted to use vb_fgets;
	  fixed empty
	  header behavior.

2010-09-04 15:37  ale

	* [r30] testsuite: fixed existing tests for new parameter key_choice_header
	  
	  zdkimfilter: fixed compile time warnings

2010-09-04 13:00  ale

	* [r29] zdkimfilter: added var_buf for reading header
	  
	  zdkimfilter: added choice headers for determining signing domain
	  
	  testuite: adjusted tests for 554 reply code

2010-07-26 15:15  ale

	* [r28] zdkimfilter: Changed reply code for rejection: 550 to 554

2010-07-16 17:11  ale

	* [r27] tag v0.4

2010-07-16 16:51  ale

	* [r26] conf.dist: change description of parameter no_author_domain
	  
	  conf.dist: set no_author_domain for new installation
	  
	  version: 0.4

2010-07-16 15:35  ale

	* [r25] filterlib: fix bug for empty ctl lines
	  
	  testsuite: add explicit comparison of A-R field to show nxdomain where test3 is not used
	  
	  testsuite: add plain case test, and mark recipient test

2010-07-16 13:49  ale

	* [r24] filterlib: re-enable possibility to drop messages
	  
	  zdkimfilter: fix ADSP behavior to be either disabled or
	  * nxdomain => reject
	  * failed "all" => reject
	  * failed "discardable" => drop
	  
	  zdkimfilter: change meaning of no_author_domain parameter
	  
	  filterlib: add an "exit+" command to batch-test mode
	  
	  testsuite: adjust tests that need no_author_domain
	  
	  testsuite: add one test for adsp=all
	  
	  testsuite: adjust for differences in remaining tests

2010-07-05 11:53  ale

	* [r23] Forgot to tag v0.3 at rev. 20

2010-07-05 11:43  ale

	* [r22] mime-type property to read conf online

2010-04-30 09:40  ale

	* [r21] zdkimfilter: add a dkim_whitelist parameter for not rejecting messages having a good
	  signature from specified domains
	  
	  testsuite: add some tests to check the above
	  
	  zdkimfilter.conf.dist: added the comment for dkim_whitelist

2010-04-28 08:31  ale

	* [r20] zdkimfilter: check spf_whitelist also for adsp:discard=fail
	  
	  testsuite: added a test to check spf_whitelisting for adsp:discard=fail
	  
	  zdkimfilter: changed log line for adsp, from "adsp: type/result" to "adsp:type=result"
	  
	  zdkimfilter: in Authentication-Results, changed "x-dkim-adsp" to "dkim-adsp" according to
	  RFC 5617
	  
	  testsuite: updated to reflect the above changes
	  
	  zdkimfilter.conf.dist: updated comments only, to reflect the above changes
	  
	  version: 0.3

2010-03-23 17:23  ale

	* [r19] Version 0.2

2010-03-23 17:22  ale

	* [r18] Forgot to tag at version 0.1

2010-03-23 17:22  ale

	* [r17] Tags for tarballs

2010-03-23 11:20  ale

	* [r16] testsuite: added two test cases of accepted non-existent From: domain:
	  no_author_domain and spf_whitelist
	  
	  zdkimfilter: amended logging for whitelisted senders

2010-03-22 18:53  ale

	* [r15] zdkimfilter: added parameter spf_whitelist, accept invalid author domain for them
	  
	  version: 0.2

2010-03-03 16:55  ale

	* [r14] testsuite: added tests for adsp
	  
	  zdkimfilter: clarified log when dkim=pass, adsp=fail; log reject at 3
	  
	  zdkimfilter: support for policy batch-test
	  
	  conf.dist: log reject at verbose=3

2010-03-02 19:57  ale

	* [r13] zdkimfilter: write relevant info at verbosity 3

2010-03-01 19:14  ale

	* [r12] attempt to rationalize verbosity levels

2010-03-01 13:57  ale

	* [r11] zdkimfilter: workaround for dkim_sig_getidentity bug
	  
	  zdkimfilter: removal of A-R fields on 2nd pass only (if they are signed may have
	  misbehavior)
	  generic package cleanup for release

2010-02-28 17:14  ale

	* [r10] testsuite: added signing tests
	  
	  configure: check LDFLAGS for statically linked libopendkim
	  
	  zdkimfilter: tweak verbosity for non-linked keys

2010-02-26 18:20  ale

	* [r9] zdkimfilter: smoothed output for batch tests, added KEYFILE
	  
	  filterlib: write 0 for pid if running batch tests
	  
	  testsuite: added tests to check author/sender signatures ordering

2010-02-24 19:06  ale

	* [r8] added skeleton testsuite

2010-02-24 18:12  ale

	* [r7] zdkimfilter: configuration parameters additions and tweaking
	  
	  zdkimfilter: allow extensions (.private .pem) in key files
	  
	  zdkimfilter: verify domain policy/author domain when no sig.
	  
	  zdkimfilter: better log messages
	  
	  conf.dist: documented better
	  
	  filterlib: allow tests in batchtest

2010-02-22 18:30  ale

	* [r6] zdkimfilter: config file: flags no_author_domain and no_reputation reversed

2010-02-22 18:11  ale

	* [r5] changes to ease alpha testing
	  
	  filterlib: allow passing ctlfiles and mailfiles (mixed)
	  
	  zdkimfilter: completed configuration parsing
	  miscellaneous fixes for message verification

2010-02-17 17:36  ale

	* [r4] first draft, never tested
	  
	  filterlib: added code to handle write_fname
	  
	  etc: added configuration file skeleton
	  
	  zdkimfilter: more or less minimal verify or sign once development

2010-02-10 18:26  ale

	* [r3] configure.ac: adapted from avfilter
	  
	  filterlib.c: modified to get authenticated sender
	  
	  zdkimfilter.c: 1-liner to include opendkim

2010-02-10 12:39  ale

	* [r2] select latest filterlib source

2010-02-03 16:23  ale

	* [r1] start repository

