Releases: grommunio/gromox
Releases · grommunio/gromox
Gromox 2.9
Fixes:
- zcore: plug memory leak when address book data structure reloads
- zcore: fix inverted evaluation of RES_CONTENT::comparable
- zcore: moving messages from one store to another obtained CNs from the wrong store and could fail the operation
- oxcical: add TZID for allday events
- imap: consistently show EXISTS status before RECENT
- imap: move EXISTS/RECENT response after SEARCH result
- imap: skip reporting EXISTS/RECENT if folder is unchanged
- imap: make FETCH RFC822 report FLAGS as well
- imap: SEARCH by size used the wrong column
- imap: avoid double status reporting when one message is changed multiple times
- imap: add and populate a per-context seqid list
- midb: unbreak search matching based on dates and sizes
- imap: cease emitting extraneous FETCH FLAGS responses (works around a shortcoming in the KDE kmail client)
- imap: resolve E-1995 erroneously showing when memory use is fine
- emsmdb: avoid hitting an assertion when sort-reloading a table of a deleted folder
Enhancements:
- emsmdb: support forwarding meeting requests from organizers that are not local to the installation
- imap: broadcast changes to mailbox from EXPUNGE commands
- midb: auto-regenerate ext/ digests when missing
- Log the filename of the SQLite database when a query fails
- emsmdb: add log messages for notification queue limits
Gromox 2.8
Fixes:
- exmdb_provider: repair a 4-byte cutoff when reading PR_BODY, PR_TRANSPORT_MESSAGE_HEADERS if they are compressed on disk
- emsmdb: setting multiple mails as read/unread was repaired
- php_mapi: fix a case where proptag arrays had bogus keys
- midb: resolve a crash when a P-SRHL HEADER search has not enough arguments
- zcore: do not lose folder for OP_MOVE rules when that folder is in a public store
- mda: the DATA command in LMTP mode did not emit one status line for every RCPT
- nsp: fix janky addressbook navigation when the GAL has hidden entries
- authmgr: resolve altnames before searching them in the LDAP backend
- php_mapi: reduce memory block retention scopes so that requests with a large response (~128MB+) won't die from Out Of Memory
- midb: fix E-1903 error appearing on shutdown
Enhancements:
- The "Hide from addresbook" functionality has gained another bit, so that name resolution ("Check names" button in OL/g-web) is no longer tied to visibility in the GAL.
- Support for non-default stores in the IMAP and POP3 protocols; use "actualusername!sharedmbox" as the username for login.
- imap: allow setting \Recent flag with STORE command
- imap: send TRYCREATE on failed SELECT
- imap: output \Junk alongside \Spam for the junk folder
- imap: emit special-use flags with plain LIST when so requested in the command
- imap: add LIST response to SELECT/EXAMINE
- pff2mt: add --with-assoc, --without-assoc
Changes:
- daemons: the files /etc/gromox/exmdb_acl.txt, midb_acl.txt, event_acl.txt, timer_acl.txt were made obsolete and replaced by the new (exmdb_provider.cfg) "exmdb_hosts_allow", (midb.cfg) "midb_hosts_allow, (event.cfg) "event_hosts_allow", (timer.cfg) "timer_hosts_allow" directives.
- http: adjust the built-in PHP-FPM socket paths to reflect changes in g-web and g-sync (this impacts test setups that run gromox-http without an nginx in front)
- mda: update "Received" headers in messages to look more like Postfix's
- pff2mt: --without-assoc is now the default
(This is only a concern with .ost files, as .pst does not have FAI messages.)
Gromox 2.7
Fixes:
- mbop: support folder strings for
delmsg -fas was documented - oxcmail: do not fail exporting DSNs with unresolvable addresses
- oxcical: do not fail exporting calendar objects with unresolvable addresses
- oxvcard: repair NULL deref when exporting
PR_CHILDRENS_NAMES - exmdb_provider: support
mbox_contention_*=0as was documented - gromox-snapshot: safer parsing of snapshot.cfg
- emsmdb: resolve infinite loop when counting property value size of invalid UTF-8 strings
Behavioral changes:
- exmdb_provider: default to
mbox_contention_reject=0 - exch: support absent values with RES_PROPERTY, RES_BITMASK and RES_CONTENT comparisons
- zcore: make
mapi_message_imtoinetoperate on message instances, not messages
Gromox 2.6
Fixes:
- exmdb_provider: filter duplicate propids when they occur in the mailbox, resolving a failure to export (broken) recipients to MSG, and resolving one instance of OL sync error 80070057.
- oxvcard: PidLidBusinessCardDisplayDefinition named property was not assigned the right namespace (PSETID_ADDRESS)
- oxcmail: do not abort export routine if SMIME message is lacking an SMIME body (just treat it as empty instead)
- oxcical: do not abort export routine if IPM..Resp. has no attendee
- exmdb_local: perform online lookup of named properties, resolving vcarduid being erroneously assigned propid 0
- exmdb_provider: do not write propid 0 properties to database
- midb, imap: FETCHing some mails did not function due to a misparse of the compat format of the "mimes" structure in mjson_parse_array
- mapi_lib: rectify emission of \cf code in htmltortf
- delivery: reduce number of default worker threads to number of client connections to temporarily address "too many connections"
- delivery: retain queue messages on processing errors
- mlist_expand: resolve null dereference during mlist_expand
Behavioral changes:
- delivery: rename delivery_log_file -> lda_log_file (+ log_level)
- Errors from sqlite3_step() will now be logged.
- exch: consistently accept PT_STRING8 & PT_BINARY for RES_CONTENT evaluations
Gromox 2.5
Fixes:
- Repair a null deref during HTML-to-text conversion
- Inbox rules had RES_OR conditions wrongly evaluated
- Synchronization of embedded messages now works, resolving OL sync reports with error 80040301.
- Saving a draft in grommunio-web would erroneously strip the Re: subject prefix
- exmdb_provider: PR_NULL is now excluded from get_all_proptags's results, resolving one instance of OL sync error 80070057.
- EWS: Detailed FreeBusy requests did not return detailed info
Enhancements:
- authmgr: Alternate username support
- mt2exm: add --skip-notif, --skip-rules options
Behavioral changes:
- Treat standard and extended inbox rules equal per PR_RULE_SEQUENCE, instead of "(by sequence number) all standard rules first, then all (by sequence number) extended rules".
- The build no longer depends on the gumbo-parser library (a HTML parser); instead, it now uses libxml2 to do the same.
- daemons: disable client-side TLS renegotiation in OpenSSL 1.x and LibreSSL
(OpenSSL 3.x defaults to this behavior already) - php_mapi: block opcache from being present in the same process
Gromox 2.4
Enhancements:
- php_mapi: add mapi_strerror function
- mbop: emptyfld/delmsg support folder names now
- dscli: added an --eas option
- oxdisco: support autodiscover.json requests
- exmdb_provider: report overquota events with MAPI_E_STORE_FULL rather than MAPI_E_DISK_FULL
- php_mapi: add function "nsp_essdn_to_username"
Fixes:
- php_mapi: fix stack corruption in zif_mapi_createfolder
- exmdb_provider: resolved possible use-after-free in OP_DELEGATE rule handling
- emsmdb: fix stream_object::commit evaluating wrong member for open flags
- Parse Windows timezone list better and support multiple IANA timezone names per territory
Behavioral changes:
- exmdb_provider: enable CID file compression by default
- php_mapi: add mapi_strerror function (requires new version of mapi-header-php)
- exch: remove old PHP-OXDISCO and PHP-OAB implementation
Gromox 2.3
Enhancements:
- pff2mt: support non-Unicode PFF files
- ldap_adaptor: read ldap_start_tls, ldap_mail_attr from orgparam table
- Support Emojis in HTML-to-RTF conversion code
- exmdb_provider: implement message store softdelete count properties
- dbop_sqlite: guard schema upgrades with transaction
Fixes:
- Do not fail entire HTML-to-RTF conversion or calls like getpropvals(PR_RTF_COMPRESSED) when encountering garbage bytes.
- exmdb_provider: have folder message count properties respect softdelete
- zcore: mapi_copyto had inverted meaning of MAPI_NOREPLACE
Implementation changes:
- Replace custom SMTP sending code with vmime's
- emsmdb: temporarily deactivate ROP chaining for OL2013,2016 to work around a case where OL corrupts larger attachments (2 MB+)
Gromox 2.2
Behavioral changes:
- The
/usr/libexec/gromox/rebuildutility has been removed in favor of using SQLite's own.clone/.recovercommands. - dbop_sqlite: perform integrity check ahead of sqlite database upgrades
Fixes:
- emsmdb: sending mail could have yielded success even if there was an outgoing SMTP server outage
- exmdb_provider: repair SQL logic errors showing up when a folder's contents are requested in Conversation mode
- exmdb_provider: only delete links, not messages, from search folders
Enhancements:
- tools: add
--integrityoption for mkprivate, mkpublic, mkmidb
Gromox 2.1
Behavioral changes:
- exmdb_provider: the "exmdb_schema_upgrade" config directive is now enabled by default
- midb: the "midb_schema_upgrade" config directive is now enabled by default
- exmdb_provider: increase default value for the "max_store_message_count" directive from 200k to infinity
- mkmidb: removed the no-op -T command-line option
- dscli: XML dumps are now only shown with the (newly added) -v option
Enhancements:
- exmdb_provider: support for private store message and folder softdelete (and thus the Recover Deleted Items feature in OL)
- http: print HTTP responses in full, not just until the first \0
- mapi_lib: parse "Received" headers into PR_MESSAGE_DELIVERY_TIME for the sake of EML imports
- oxm2mt: named property translation
- oxdisco: homeserver support for EAS block
- zcore: allow opening oneoff entryids with openabentry RPC
Fixes:
- emsmdb: work around OL crash with Recover Deleted Items dialog
- emsmdb: rework interpretation of PR_SENT_REPRESENTING on IPM.Schedule objects (relates to the organizer of a meeting when such meeting is forwarded)
- Deletion of a folder from a public store did trash the store size counter and reduce it by an arbitrary amount towards 0, reporting the store to be smaller than it really was.
- zcore: perform texttohtml conversion in UTF-8 not Windows-1252
- nsp: attempt to fix infinite function recursion when trying to resolve ESSDN which are present in the GAB forest but out-of-organization
- oxcmail: recognize RFC822/5322 dates without a day-of-week part
- mt2exm: avoid running into PF-1123 error when -D option is used
- dscli: repair the warning that the tool was not built with DNS SRV support
- oxdisco: avoid read beyond end of buffer when request_logging is on
- exmdb_provider: fix an out of bounds write when PR_HTML_U is requested
Gromox 2.0
Changes:
- oxdisco: new module providing the AutoDiscover endpoints, replacing the PHP-based implementation
(To go back to the old implementation, set http.cfg:http_old_php_handler=1) - oab: new module providing the OAB endpoint
- ews: new module providing the EWS endpoint, replacing the PHP-based implementation
- delmsg: program has been merged into gromox-mbop as a subcommand
Enhancements:
- gromox-mbop: added an "emptyfld" command
- gromox-oxm2mt: new utility to read .msg files
Fixes:
- midb: IMAP SEARCH commands had numeric sequence ranges
m:nmisparsed - midb, imap: recognize
*in sequence sets (alias for*:*) - nsp: resolve a wrong allocation size that led to a crash