Skip to content

Releases: grommunio/gromox

Gromox 2.9

10 May 09:39

Choose a tag to compare

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

15 Apr 11:02

Choose a tag to compare

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

24 Mar 01:12

Choose a tag to compare

Fixes:

  • mbop: support folder strings for delmsg -f as 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_*=0 as 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_imtoinet operate on message instances, not messages

Gromox 2.6

10 Mar 00:16

Choose a tag to compare

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

06 Mar 00:17

Choose a tag to compare

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

26 Feb 18:08

Choose a tag to compare

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

03 Feb 16:16

Choose a tag to compare

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

16 Jan 19:18

Choose a tag to compare

Behavioral changes:

  • The /usr/libexec/gromox/rebuild utility has been removed in favor of using SQLite's own .clone / .recover commands.
  • 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 --integrity option for mkprivate, mkpublic, mkmidb

Gromox 2.1

12 Jan 11:52

Choose a tag to compare

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

03 Jan 03:11

Choose a tag to compare

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:n misparsed
  • midb, imap: recognize * in sequence sets (alias for *:*)
  • nsp: resolve a wrong allocation size that led to a crash