Releases: grommunio/gromox
Releases · grommunio/gromox
Gromox 3.1
Enhancements:
- http: support for SPNEGO authentication (Kerberos-in-SPNEGO or NTLMSSP-in-SPNEGO)
with the HTTP "Authorization: Negotiate" header. - dscli: try all oxdisco URLs until one succeeds
- exmdb: support repeated import of permission data (e.g. from kdb2mt)
- ews: create calendar item after accepting a MR with MacMail
Fixes:
- emsmdb: the total mail count in a contents view was not updated
- emsmdb,zcore: Send-As mail now correctly has the delegator in Envelope-From
- email_lib: deal with MIME parts with zero header lines
- tools: reinstate submit.php for delayed sending
- nsp: avoid buffer overruns in
nsp_interface_fetch_property - emsmdb: Partial message change tracking was bug-ridden and deleted. Standard transfers are now used instead. (E.g. an IPM.Task object where only the percentage-completed field was changed would be mis-synchronized to another Cached Mode client as "delete start/end dates".)
- exmdb: Public folders were missing timeindex queries and their content tables might have shown fewer messages.
- http: A workaround was added for OpenSSL 3.0 so that connections from Outlook 2010 once again succeed.
- mysql_adaptor: Improve the time needed to compute the composite mailbox permission for user in a case of a mailbox with 100K ACL entries.
Changes:
- exmdb: deactivate movecopy/deletemessages event storm compaction
- emsmdb: outgoing lzxpress compression in the EMSMDB protocol is now disabled as it does not compress well for the time invested.
- http: the
ntlm_program_helperconfig directive was removed; yourgss_programsimply needs to handle both GSS and NTLM. - event: support for reading the old event_acl.txt was deleted. The replacement is the
event_hosts_allowconfig directive. - timer: support for reading the old timer_acl.txt was deleted. The replacement is the
timer_hosts_allowconfig directive.
Gromox 3.0
Enhancements:
- eml2mt now transmits the RFC5322 representation into the message store so that IMAP clients can serve that instead of representation synthesized from MAPI data. / Messages imported via eml2mt no longer "lose" their original structure and headers when viewed in IMAP.
- midb now transmits the RFC5322 representations of messages created via IMAP into the message store. (Previously: just into the midb cache.) / Messages which have been client-side copied in IMAP, i.e. with FETCH+STORE rather than COPY, no longer "lose" their structure and headers.
- oxcical: implement support for VTODO and VJOURNAL
- mbop: add "freeze" and "thaw" commands
- mbop: support UTC/zone suffixes for getfreebusy -a/-b arguments
- mbop: using the -v option will now additionaly report the mailbox and subcommand in error messages
- exmdb: new config directive
exmdb_eph_prefixto put ephmeral files like tables.sqlite3 on a local disk (in case a mailbox is regularly on NFS). - exmdb: add a time index over messages to speed up common cases of grommunio-web GetContentsTable requests.
- exmdb: the derivation for the PR_MESSAGE_*_ME property value, upon delivery, now includes PR_EMAIL_ADDRESS as a fallback if PR_SMTP_ADDRESS is unset.
- oxdisco: the AutoConfig mechanism now emits an EWS server information block
- ews: include ParentFolderId in FindFolder/GetFolder response
- ews: implemented GetDelegate, CreateAttachment, FindPeople (GAL lookup), PushSubscriptionRequest request handlers
- ews: implemented oofReply responses like EX/365
- ews: Direct Meeting Response related serialization was added
- ews: referenced calendar items are now updated when a CreateItem request contains AcceptItem or DeclineItem tags.
- ews: support GetUserAvailabilityRequest request TimeZoneContext tag.
- zcore: Out of Office configuration reading and writing is now performed over the network rather than through direct filesystem access.
Fixes:
- fnevObjectCreate event notifications were not created when a mail was processed through TWOSTEP Rule Processor, now fixed.
- fnevObjectCreated event notifications were not created when a mail was processed by ONESTEP Rule Processor when that executed a OP_COPY operation.
- oxcical: iCal events with a date in DTSTART & DTEND but without X-MICROSOFT-CDO-ALLDAYEVENT are now transformed into Allday events even if the event is longer than one day.
- delivery: emit MDN-RRT messages even with
lda_twostep_ruleprocis set. - oxdisco: config-v1.1.xml now contains the homeservers as it should.
- oxdisco: AutoConfig XML now features the incomingServer type parameter in the right place.
- oxdisco: AutoConfig now emits outgoing server port 587 as type
smtp. - ruleproc: auto-enter MRs into target calender even if the sender is not going to get a response.
- ews: Avoid sending multiple
<?xml ?>lines into the notification stream HTTP response body. - ews: trim "duplicate" recipients when a newly-created item has recipients in both
<mimeContent>and<To>/<Cc>. - ews: prevent FAI messages from polluting the Normal Message Set during ICS
- ews: when the FindItem requests finds no objects, an empty RootFolder tag is now still returned.
- ews: delete excess NUL byte from tCalendarItem:UID tags
Changes:
- kdb2mt no longer imports LocalFreebusy control messages, since dangling references in those can make delegate permission editing via OL nonfunctional.
- emsmdb: outgoing lzxpress compression in the EMSMDB protocol is now disabled as it does not compress well for the time invested.
Gromox 2.48
Enhancements:
- gromox.cfg now has a
ruleproc_debugdirective (applies to the TWOSTEP Processor only)
Fixes:
- ews: repair a nullptr dereference from the OOF XML change
- exmdb: make EXRPC write_message_v2 fill in return MID/CN values
- ab_tree: restore filtering of objects with AB_HIDE_FROM_GAL for NSP (this was lost in a Global Address Book provider rewrite in 2.40)
Gromox 2.47
Enhancements:
- oxdisco: support RFC 6764 well-known endpoints for CalDAV/CardDAV (if not running grommunio nginx config in front)
- oxcical: try to handle ICS files with missing VTIMEZONE blocks
- oxcical: support YEARLY recurrences with BYDAY without BYSETPOS
- imap: offer $Forwarded keyword for APPEND/STORE commands
- gromox.cfg now has a
ruleproc_debugdirective (applies to the TWOSTEP Processor only) - edb2mt, eml2mt, kdb2mt, oxm2mt, pff2mt, exm2eml: add
--logleveloption
Fixes:
- nsp: remove meaningless session_check directive; no longer erroneously reject requests after daemon received SIGHUP
- oxcical: avoid setting out-of-spec MAPI recurnum for FREQ=MONTHLY,BYDAY= recurrences
- oxcical: fix wrong BYMONTH calculation for MONTHNTH recurrences being exported to iCal
- midb, imap: make EXPUNGE synchronous so that old UIDs don't reappear in a subsequent FETCH
- midb: respect setting \Deleted, \Answered, \Flagged during APPEND
- exmdb: resolve a case of "INSERT INTO t... UNIQUE constraint failed" log message appearing when the Twostep Rule Processor and a Move rule is encountered and a MAPI client has a Content Table with Sort Order open.
- exmdb: stop losing RFC5322 representation when a message is copied
- HTML-to-Text conversion using w3m suffered from an encoding mismatch, which was fixed.
Changes:
- oxcmail: upon ingestion, the
Precedenceheader (RFC 2076) is now transformed to the MAPI propertyPR_INTERNET_PRECEDENCE. - exmdb_local: Out-of-office autoreply logic now recognizes PR_INTERNET_PRECEDENCE values
bulkandlistto inhibit certain and all responses, respectively. - oxcmail: upon ingestion, the
Auto-Submittedheader (RFC 3834) andList-Help,List-SubscribeandList-Unsubscribeare now transformed into the MAPI propertyPR_AUTO_RESPONSE_SUPPRESS. - ews: unconditionally emit all OOF XML tags upon GetUserOofSettingsRequest to workaround OL crash when modifying Out-of-office settings.
Gromox 2.46
Enhancements:
- cgkrepair: detect Change Keys with impossibly high values
- cgkrepair: retain a PCL's foreign XIDs
- ical2mapi: support FREQ=MONTHLY recurrences using BYDAY= but no BYSETPOS=
- mt2exm: the -B option now supports numeric identifiers
- ical2mapi: expand E-2718 error into new codes E-28xx with extended reason
- imap: allow '%' '*' and '?' in folder names
Behavioral changes:
- daemons: the default log destination is now "automatic" (stderr/syslog autodetect) rather than "stderr"
- mapi2ical: deal with strange allday events that do not start/end on midnight
- htmltotext: w3m is now instructed on charsets and does not need to guess anymore
- exch: value for the PR_MAX_SUBMIT_MESSAGE_SIZE property was off by a factor of 1024, which has been fixed
- mkprivate/mkpublic: generate a PR_MAPPING_SIGNATURE value distinct from PR_STORE_RECORD_KEY for newly-initialized stores
- ical2mt, vcf2mt: messages are no longer emitted with an anchor, which now allows free placement with mt2exm -B
- ical2mapi: ignore unreasonable requests like BYMONTHDAY=32
Gromox 2.45
Fixes:
- emsmdb: avoid emissions of PR_MESSAGE_SIZE in fastdownctx streams (this makes PST export possible)
- email_lib: fix a lost space in IMAP BODYSTRUCTURE response
Enhancements:
- mysql_adaptor: add support for nesting mlists in permission checks
- Recognize the IANA Character Set names
utf-16le,utf-16be(and 32) when converting from RFC5322 to MAPI.
Behavioral changes:
- MAPI tables now always offer a valid PR_ROW_TYPE value
- emsmdb: the set of default properties (on blank message objects) has changed to be closer to what EXC2019 does
Gromox 2.44
Fixes:
- mysql_adaptor: do not fail organization-level GAL population when a domain belonging to the org has zero members
- gab: resolve assertion when traversing GAL [new implementation from Gromox 2.42]
- mysql_adaptor: fix OOB when reading PT_DOUBLE entries from user_properties
- emsmdb: fix OOB write when computing PR_MAILBOX_OWNER_NAME_A
- zcore: PR_EMS_AB_DISPLAY_NAME_PRINTABLE of an address book object was filled with the email address even if the user's common name was umlaut-free
- ews: PR_LAST_MODIFIER_NAME was filled with the email address even if the user's common name was umlaut-free
- mbop: make clear-profile nuke all profile parts again
- The documented default value
outgoing_smtp_url=sendmail://localhostis now in effect
Behavioral changes:
- Recognition for the
smtp_server_ipconfig directive has been removed. Users must upgrade tooutgoing_smtp_url(added in Gromox 2.21).
Gromox 2.43
Fixes:
- imap: reduce memory footprint when FETCHing messages
- imap: resolve shutdown ordering crash
- exmdb: upgrade 0-length PR_ENTRYIDs to fake 1 byte to soothe Outlook Cached Mode syncer
- ews: heed MAPI proptype semantics and interpret 0xffffffff as a signed int when serializing to XML (-1 rather than 4294967295)
- gab: resolve out-of-bounds access in dntomid
Enhancements:
- oxm2mt: support embedded messages
- oxm2mt: add option to extract just an attachment embedded message
- eml2mt: add option to extract just an attachment embedded message
- mysql_adaptor: add TLS connection config directives
Behavioral changes:
- exmdb: launch threads in more rapid succession when there is job queue contention
Gromox 2.42
Fixes:
- exmdb_local: plug memory leak resulting from RPC execution
- alias_resolve: plug memory leak resulting from GAB refreshes
- alias_resolve: avoid unnecessary GAB refresh on shutdown
Enhancements:
- nsp: a few more RPCs now emit log messages under config setting nsp_trace=2
- mh_nsp: support transfer of additional undocumented property types
- oxdisco: recognize
/mail/config-v1.1.xmlURI
Behavioral changes:
- New internal addressbook implementation backing the NSPI-provided and Zcore-provided AB functionality.
Packaging changes:
- dscli, dnsbl_filter: DNS resolution via LDNS/libldns (desirable for linux-musl and BSDs) was replaced by c-ares/libcares.
Gromox 2.41
Fixes:
- ldap_adaptor: plug two memory leaks
- exmdb: plug a memory leak related to subscription destruction
- oxcical: do process TRIGGER duration value type for reminders
- midb: resolve flakey update of flagged/replied/forwarded status
- midb: when a MAPI message has changed and requires a new IMAPUID, convey the expunge of the old IMAPUID much sooner to IMAP clients
- pop3: resolve a NULL deref/crash during RETR command
- imap: restore SEARCH command looking at right portion of a QP-encoded message
Enhancements:
- ews: send flag status to clients
- imap: include username for IMAP actions when imap_cmd_debug logging is activated
- midb, imap: print asynchronous notification events when imap_cmd_debug>=2
- oxcical: invalid iCal timezone inputs are now logged when _log_level=6 (debug)
Behavioral changes:
- mkprivate: new message stores now have
frightsVisibleset on the calendar folder, because grommunio-web is picky about the existence of the calendar folder even if obtaining just freebusy blocks.