Gromox Versions Save

Groupware server backend for the grommunio Distribution, supporting MAPI/HTTP, RPC/HTTP, EWS, IMAP, POP3 protocols, PHP-MAPI bindings, and import from PST/OST/MSG/CDFV2/TNEF, EML/ICAL/VCF, Kopano, Zarafa

gromox-2.28

2 weeks ago

Fixes:

  • imap: repair messages not getting added to midb during 64K+ append
  • imap: cure client session hang when midb failed to add a mail during 64K-append
  • mysql_adaptor: gracefully handle attempts to use Unicode in usernames (treat as non-existing user rather than failing the user lookup altogether)
  • zcore: a crash on shutdown was addressed

Enhancements:

  • mysql_adaptor: allow Unicode in alternate usernames (altnames)
  • Populate PR_DELETED_ON property for softdeleted items
  • exmdb: exmdb_rpc_debug will now emit execution time for EXRPCs
  • zcore: zrpc_debug logging now includes the session GUID to help correlate which ZRPCs are executed by which user
  • imap: imap_cmd_debug logging now includes the client IP address to help correlate which actions are executed by which user
  • pop3: pop3_cmd_debug logging now includes the client IP address to help correlate which actions are executed by which user

Changes:

  • remote_delivery.cfg is obsolete. If you need an SMTP relay for outgoing mail (and you do not have a local postfix to take care of that), you should set gromox.cfg:outgoing_smtp_url.

gromox-2.27

1 month ago

Fixes:

  • email_lib: avoid splitting UTF-8 code units across lines
  • imap: avoid emitting NIL for body-fld-lines

Enhancements:

  • php_mapi: expose default+anonymous ACEs to PHP programs
  • zcore: expose new PR_EC_ENABLED_FEATURES_L property
  • ews: implement updating folder permissions
  • eml2mt: emit a hint if an Outlook .msg file is erroneously passed to eml2mt

Changes:

  • exch: start ICS Change Numbers at 0 rather than 2^47 (new mailboxes only)
  • PR_MAILBOX_OWNER_ENTRYID is generated for public stores
  • exmdb database layer remodeled to support concurrent reads per mailbox in the future

gromox-2.26

2 months ago

Fixes:

  • exmdb: Fix restriction mismatching on PR_PARENT_SVREID & PR_PARENT_ENTRYID, which had caused reminders to go off even after appointments were moved to the wastebasket.
  • exmdb_local: rectify wrong/empty From: lines in bounce messages
  • ews: fix segfault when loading public folder item
  • zcore: repaired thumbnail retrieval, which used the wrong directory

Enhancements:

  • mbop: add subcommands for manipulating websettings_persistent

Changes:

  • zcore: store websettings_persistent directly in the store rather than the zcore shadow store object (automatic migration is in place)
  • kdb2mt: avoid importing PR_EC_WEBAPP_PERSISTENT_SETTINGS_JSON

gromox-2.25

2 months ago

Fixes:

  • mkpublic: newly created public stores lacked a replguidmap table
  • exmdb: repair initialization of PR_ATTACH_NUM when instances are opened
  • oxcmail: strip leftover right angled bracket from Content-ID on oxcmail_import
  • http: do not terminate if an illegal outgoing_smtp_url is used
  • http: avoid garbage From line in non-delivery reports generated by OP_BOUNCE rules

Changes:

  • oxcmail: export no longer generates a MIME epilogue, which should workaround Outlook's broken S/MIME validator which fails to include epilogues in the signature verification.
  • http: recognition for the http_old_php_hanlder directive has been removed
  • zcore: g-web settings are now stored in a named property rather than the shadow store object (automatic migration is in place)

Enhancements:

  • mt2exm: the -B option can be used with all folder names
  • mbop: new commands get-photo, set-photo, get-websettings, set-websettings

gromox-2.24

3 months ago

Fixes:

  • email_lib: the last byte of a MIME part was erroneously deleted
  • emsmdb: repair garbage memory read when creating a stream on a PT_STRING8 property
  • ews: repair a potential lack of results with the ResolveNames operation when searching by email address

Enhancements:

  • ews: add t:AlternateIdType attribute

gromox-2.23

3 months ago

Fixes:

  • snapshot: on btrfs, fallback to rm when encountering reflink-based snapshots
  • oxcmail: make PR_REPLY_RECIPIENT_NAMES be consistent with _ENTRYIDS
  • oxcmail: deal with semicolons in Reply-To
  • oxcmail: do not ignore IDN addresses when reading headers
  • oxcmail: resolve a case with trashed body bytes when a line began with dot

Enhancements:

  • exmdb: add config directive exmdb_contention_reject_time for configuring contention timeout
  • exmdb: have DB_ITEM instances track which function holds them, and report this upon reaching contention timeouts
  • exmdb: make dbg_synth_content config directive work with the read_message RPC
  • new command: gromox-exm2mt

gromox-2.21

4 months ago

Fixes:

  • exch: fix nonsensical compare operation in function check_message_owner
  • lib: guard against an integer overflow when inserting last element in range_set
  • imap: do not flag zero-length usernames/passwords as a syntax error
  • exmdb: avoid showing E-5310/5311 for absent files

Enhancements:

  • Support for outgoing message submission via postdrop. Use the new config directive outgoing_smtp_url=sendmail://localhost in gromox.cfg.
  • gromox-snapshot: Support snapshots on XFS
  • zcore: log REMOTE_ADDR on authentication failure for fail2ban
  • ews: improve contact item and task item support
  • php-mapi: add mapi_getuserfreebusyical function
  • exmdb: add ICS request dumper (config directive gromox.cfg:exmdb_ics_log_file)

Behavioral changes:

  • kdb2mt: remove option aliases that have been deprecated for a year

gromox-2.20

5 months ago

Fixes:

  • oxdisco: allow autodiscover for room/equipment stores
  • oxcical: allday events are now emitted (pursuant to the oxcical_allday_ymd config directive) as "floating time" per the OXCICAL spec recommendations
  • oxcical: resolve integer underflow that botched weekorder computation in weekly-recurring events
  • oxcical: resolve out-of-bounds access during generation of iCal RDATE lines
  • ews: avoid a heap-use-after-free during freebusy retrieval
  • zcore: zs_getuserfreebusy had failed to resolve usernames and display freebusy status in the scheduling matrix view
  • ldap_adaptor: resolve data race with double-free when per-organization LDAP settings were used

Enhancements:

  • ews: improve calendar item coverage for mac calendar app
  • all daemons: add various config directives to set file descriptor table limits
  • zcore: add new error code and string for when the MAPI object handles have been exhausted by a user (as will normally happen when importing a multi-vCard/multi-iCal file with 400+ contacts/events, due to config directive zcore_max_obh_per_session)

Behavioral changes:

  • http: the file descriptor table limit is by default set to the environment hard limit (instead of 2256 fds, one will have 512K in Linux-systemd environments now)
  • php_mapi: do not convert freebusy_event_details fields which are not available

gromox-2.19

5 months ago

Fixes:

  • exmdb: send "object created" notifications as search folders re-populate
  • oxcmail: ignore zero-length From fields, which should help sending from Windows Mail
  • Thunderbird/IMAP now picks up deletion events done by other clients
  • imap: the IMAP STATUS command did not cause any immediate response
  • imap: announce EXPUNGE events on all typical commands
  • imap: avoid double-reporting EXPUNGE events on EXPUNGE command
  • http: resolve altnames and update user context after authentication success with krb
  • ews: resolve crash during CreateItem RPC

Enhancements:

  • gromox-mbop emptyfld now recognizes a -t option to limit deletion to messages of certain age.
  • gromox-mbop emptyfld now recognizes a --nuke-folders option
  • gromox-eml2mt now recognizes a --mbox option to support RFC4155 Unix mboxes
  • exmdb: search pacing is now time-based, which should give more predictable interactivity during background searches
  • emsmdb: do not treat the absence of the PR_LAST_MODIFICATION_TIME message property during ICS downloads as an error any longer

Behavioral changes:

  • oxcmail: zero-length headers are ignored altogether (inspired by Alpine's behavior in that regard)
  • daemons: repeal the allocation limiter function from source code; all The buffer pool %s is full messages should be gone now

gromox-2.18

5 months ago

Fixes:

  • exmdb: synthesized PR_RTF_COMPRESSED properties (in relation to the dbg_synthesize_content config directive) had an incomplete header
  • oxcmail: repair inadvertent propid/proptag swap causing TNEF export to fail
  • mbop/purge-softdelete: make pathspec SENT/2022 actually work
  • imap: messages delete events from OL/g-web now make it to IMAP clients

Enhancements:

  • midb: propagate folder change events; IMAP clients now recognize when a message was deleted in g-web/Outlook
  • http: RFC 7617 support for the Basic authentication header line
  • nsp: allow connections from Windows with UTF-8 locale
  • midb: removal of seqid renumbering, which speeds up IMAP SELECT/LIST/FETCH commands.
  • authmgr: PAM is now offered as an authentication backend