CHANGELOG 
Unreleased 
v5.5.3 (2025-09-22) 
Use lossy string conversion when converting rich error message 
Fix private dislist support in ab lookups 
 
v5.5.2 (2025-09-22) 
Do not replace the sender display name if it is the same as the SMTP address. 
Set delivery properties consistently for mail rules 
Fix PIDTAG_MESSAGE_RECIPIENT_ME property setting for rules 
Fix setting free/busy permission bits via zcore api 
 
v5.5.1 (2025-09-11) 
Add panic check for mismatched recurrence exception arrays 
Add d1 import support for PT_MV_I2 property type values 
Avoid using emtpy sender display name when it is passed as an empty 
 
v5.5.0 (2025-08-11) 
Add conditional bearer ADFS authentication for MacOutlook clients 
Prevent proxy buffering of MAPI over HTTP chunked responses 
 
v5.4.0 (2025-08-07) 
Prevent auto event and auto reply processing for spam messages 
Implement comprehensive configuration system for auto_event plugin 
Improve EWS streaming subscription timeout handling 
Update EWSRPC proto stub from proto files 
Fix missing parent folder ID in EWS notifications 
Implement proper streaming for EWS subscription events 
Fix EWS subscription paraent folder mapping 
Improve text wrapping in plain-to-HTML conversion 
Fix bounds check in plain_to_html conversion 
 
v5.3.0 (2025-07-28) 
Map additional EWS fields for Outlook compatibility 
Add message class property to all EWS operations 
Add field URI value to unknown field parsing errors 
Track actual event count in EWS streaming logs 
Make EWS stream collection more predictive 
Add automated cleanup for expired EWS subscriptions 
Fix heap buffer overflow in cfg file parser when writing to empty file 
 
v5.2.0 (2025-07-17) 
Add body support to ewsrpc item related operations 
Expose mapi rtf functions to Rust 
Expose zcore utf-8 encoding/decoding to Rust 
Make zcore Rust error api more flexible 
Fix off by two bytes plain to html converter 
Map unknown item message class values to message for ewsrpc item operations 
Verify traversal attribute in ewsrpc FindItem operation 
Fix EWS GetFolder operation for Thunderbird 
 
v5.1.0 (2025-07-04) 
Cleanup and fix remaining ewsrpc clippy warnings 
Disable ewsrpc gRPC error response logging to default logger 
Implement ewsrpc FindItem operation 
Add restriction wrappers to mapi-sys crate 
Rebuild ewsrpc bindings 
Implement the fields filter for FTS backend 
Add conflict test 
Add update event to the list of test files 
Add extra asserts to tests 
Add exception test 
Add AcceptAndAdd test 
Assert bool result from auto event 
Implement ewsrpc SyncFolderItems and GetItem operations 
Use MAPI API to update propids of session 
Add PidLidExceptionReplaceTime to excep responses 
Use high lvl API in AutoEvent's freebusy 
Implement ewsrcp request logging and tracing support 
Implement ewsrpc SyncFolderHierachy operation 
Fix misleading zcore ics down ctx not found debug message 
Add missing mapi-sys ext_pull api 
Fix exception search in AutoEvent response update 
Only subtract if we are sure it won't overflow 
Don't convert CStr to str when not needed 
Fix a potential invalid access bug 
Rename timezone functions for better clarity 
Use High level MAPI API in timezone calculations 
Set transition dates to UTC when checking dst 
Enhance ews subscriptions to support resurrection 
Set ewsprc thread stacksize to 8 MiB 
Expose more mapi and zcore low level api to rust 
Fix missing initialize to 0 in zcore ics 
Fix out of bounds memory read in zcore ics 
Fix duplicate define in object tree 
Export the RECURRENCE ID from the UTC time. 
Implement ewsrpc subscriptions 
Add zcore object tree related types and funcs to Rust bindings 
Auto detect asan in the unit test runner 
Bump CI to build with Go 1.24 
Bump CI to build with gcc 12 
Remove exmdb notification subscription from auto event 
Adapt auto event implementation to new exmdb client API 
Unify exmdb protocol defines into exmdb client library 
Refactor Rust exmdb client shared library API 
Add a bunch of GUID consistency unit tests 
Expose rop provider ui in rust mapi crate 
Update notification implementation consistency for eas module 
Expose more entry id related functions in mapi-sys 
Implement clone and copy for PROPERTY_NAME in mapi rust 
Fix Rust rop api gc_array byte size from 8 to 6 
Fix use after free in mapi unit test runner 
Increate test runner Rust default min stack size to 4 MB 
Set resp status when attendees reply to MRs 
Rename creator to handler 
Add traits to support re-use for new handler 
Pass X-Real-Ip as REMOTE_ADDR for EAS FastCGI client 
Export and import ORIGINALSTART/END MS ical props 
Remove the ASCII check of the email address in the MIME parser function. 
Do not use the GAB display name as the sender 
Change PT_BOOLEAN type from the C type to bool 
Read only 1 byte for BOOLEAN types 
Treat "byte" type as boolean in comparisons 
Change struct name to follow MS' term 
Choose which props to add instead of which not to 
Adapt with flaged multivalue property 
Remove the default permission setting of the IPM subtree folder 
Implement amidb async sync queue 
Update amidb default limits to match new implementation specifics 
Add midb server sync start and and failed logging 
Directly unload exmdb db even if there are dynamic nodes 
Add Rust implementation of amidb 
Automatically convert sanitizer build flags to Rust link flags 
Use high level mapi API in AutoEvent 
Split write event function 
Add missing properties to response 
Free allocated store folder when user is deleted 
Add alloc_context fuzzer unit test 
Add distinct amidb timeout and error logging 
Add midb M-SYNC check sync support 
Align memory of buffer allocator and hash tables using it to 8 bytes 
Add address sanitize test runner helper 
Fix adddress sanizer errors in unit tests 
Fix Clang and sanitizer build 
Update ewsproc protocol to use bidirectional streaming 
Disable ewsrpc experimental operations by default 
Implement ewsrpc GetFolder operation 
Make Rust zcore service and session directly usable 
Make a bunch of mapi Rust crate types sortable 
Update ewsrpc proto files and rebuild bindings 
Fix invalid null ptr check at zcore startup 
Fix invalid Rust zcore MAPI object type mappings 
Add ewsrpc error handling to rpc status 
Implement ewsrpc user availability operation 
Add more services to Rust zcore crate 
Add prop set support to zcore crate 
Add Rust zcore crate and implement ewsrpc oof 
Add initial stub of ewsrpc service plugin 
Fix Rust tagged propval make double reference types 
Add API helpers to Rust freebusy-sys crate 
Exctend Rust mapi high level API round 3 
Add ordered service plugin loading to zcore 
Add error handling and setter API to mapi rust 
Add Rust mapi filetime from chrono conversion 
Extend mapi crate API further 
Make Rust common BOOL type comparable with bool 
Bump rust toolchain to 1.85.0 
Add initial implementation of a high level API to the mapi crate 
Autogenerate mapi-sys PidLid constants for named props 
Add extended GUID Rust common-sys api 
Enumerate mapi-sys named property ides for unit tests 
Extend mapi-sys api for attachment content 
Expose u32 converter for proptags in mapi-sys 
Add more unit test capability to mapi-sys crate 
Add static proptag types to mapi-sys 
Rust more mapi-sys api overhaul and add integration testing 
Further simplify Rust mapi-sys propval API 
Expose mail and mime api to Rust via email-sys 
Refactor mapi-sys propval creation, definition and debug 
Refactor mapi-sys interfaces for arrays and safety 
Ensure to create symlink for generated Rust soname libraries 
Derive copy trait treewide for all rust bindgen types 
Pass CMAKE_BINARY_DIR to cargo targets 
Move zcore defines from c files to h files 
Allow rust mapi tag static defines 
Ensure that a thread local stack guard cannot be passed to other threads 
 
v4.4.4 (2025-06-16) 
v4.4.3 (2025-06-16) 
Add missing properties to response 
Don't convert CStr to str when not needed 
 
v5.0.1 (2025-06-05) 
Only subtract if we are sure it won't overflow 
 
v5.0.0 (2025-06-04) 
Don't convert CStr to str when not needed 
Fix a potential invalid access bug 
Rename timezone functions for better clarity 
Use High level MAPI API in timezone calculations 
Set transition dates to UTC when checking dst 
Enhance ews subscriptions to support resurrection 
Set ewsprc thread stacksize to 8 MiB 
Expose more mapi and zcore low level api to rust 
Fix missing initialize to 0 in zcore ics 
Fix out of bounds memory read in zcore ics 
Fix duplicate define in object tree 
Export the RECURRENCE ID from the UTC time. 
Implement ewsrpc subscriptions 
Add zcore object tree related types and funcs to Rust bindings 
Auto detect asan in the unit test runner 
Bump CI to build with Go 1.24 
Bump CI to build with gcc 12 
Remove exmdb notification subscription from auto event 
Adapt auto event implementation to new exmdb client API 
Unify exmdb protocol defines into exmdb client library 
Refactor Rust exmdb client shared library API 
Add a bunch of GUID consistency unit tests 
Expose rop provider ui in rust mapi crate 
Update notification implementation consistency for eas module 
Expose more entry id related functions in mapi-sys 
Implement clone and copy for PROPERTY_NAME in mapi rust 
Fix Rust rop api gc_array byte size from 8 to 6 
Fix use after free in mapi unit test runner 
Increate test runner Rust default min stack size to 4 MB 
Set resp status when attendees reply to MRs 
Rename creator to handler 
Add traits to support re-use for new handler 
Pass X-Real-Ip as REMOTE_ADDR for EAS FastCGI client 
Export and import ORIGINALSTART/END MS ical props 
Remove the ASCII check of the email address in the MIME parser function. 
Do not use the GAB display name as the sender 
Change PT_BOOLEAN type from the C type to bool 
Read only 1 byte for BOOLEAN types 
Treat "byte" type as boolean in comparisons 
Change struct name to follow MS' term 
Choose which props to add instead of which not to 
Adapt with flaged multivalue property 
Remove the default permission setting of the IPM subtree folder 
Implement amidb async sync queue 
Update amidb default limits to match new implementation specifics 
Add midb server sync start and and failed logging 
Directly unload exmdb db even if there are dynamic nodes 
Add Rust implementation of amidb 
Automatically convert sanitizer build flags to Rust link flags 
Use high level mapi API in AutoEvent 
Split write event function 
Add missing properties to response 
Free allocated store folder when user is deleted 
Add alloc_context fuzzer unit test 
Add distinct amidb timeout and error logging 
Add midb M-SYNC check sync support 
Align memory of buffer allocator and hash tables using it to 8 bytes 
Add address sanitize test runner helper 
Fix adddress sanizer errors in unit tests 
Fix Clang and sanitizer build 
Update ewsproc protocol to use bidirectional streaming 
Disable ewsrpc experimental operations by default 
Implement ewsrpc GetFolder operation 
Make Rust zcore service and session directly usable 
Make a bunch of mapi Rust crate types sortable 
Update ewsrpc proto files and rebuild bindings 
Fix invalid null ptr check at zcore startup 
Fix invalid Rust zcore MAPI object type mappings 
Add ewsrpc error handling to rpc status 
Implement ewsrpc user availability operation 
Add more services to Rust zcore crate 
Add prop set support to zcore crate 
Add Rust zcore crate and implement ewsrpc oof 
Add initial stub of ewsrpc service plugin 
Fix Rust tagged propval make double reference types 
Add API helpers to Rust freebusy-sys crate 
Exctend Rust mapi high level API round 3 
Add ordered service plugin loading to zcore 
Add error handling and setter API to mapi rust 
Add Rust mapi filetime from chrono conversion 
Extend mapi crate API further 
Make Rust common BOOL type comparable with bool 
Bump rust toolchain to 1.85.0 
Add initial implementation of a high level API to the mapi crate 
Autogenerate mapi-sys PidLid constants for named props 
Add extended GUID Rust common-sys api 
Enumerate mapi-sys named property ides for unit tests 
Extend mapi-sys api for attachment content 
Expose u32 converter for proptags in mapi-sys 
Add more unit test capability to mapi-sys crate 
Add static proptag types to mapi-sys 
Rust more mapi-sys api overhaul and add integration testing 
Further simplify Rust mapi-sys propval API 
Expose mail and mime api to Rust via email-sys 
Refactor mapi-sys propval creation, definition and debug 
Refactor mapi-sys interfaces for arrays and safety 
Ensure to create symlink for generated Rust soname libraries 
Derive copy trait treewide for all rust bindgen types 
Pass CMAKE_BINARY_DIR to cargo targets 
Move zcore defines from c files to h files 
Allow rust mapi tag static defines 
Ensure that a thread local stack guard cannot be passed to other threads 
 
v4.4.2 (2025-06-04) 
Don't convert CStr to str when not needed 
 
v4.4.1 (2025-04-22) 
Increase midb command thread stack size 
Fix heap buffer overlow when loading msg rcpts 
Increase context allocator offset maximum size 
Add dev access token help instructions 
Set CMake policy version minimum to 3.14 
 
v4.4.0 (2025-03-17) 
Add domaininfo utility similar to userinfo 
Add detail mode to userinfo command 
Fix all day event exception ics timezone handling 
Fix ical import recurrence id timezone handling 
Allow Outlook ICS to sync items with missing PROP_TAG_MESSAGESTATUS 
Fix CMake build dependency support for Rust only crates 
Update icon index when forwarding mail 
Fix auth_cache_lib dependency cycle 
Pin CI rustup installation to 1.27.1 
Fix build when nothing was built before 
Run CI unit test with debug logging 
Fix ext buffer TZRULE pull year 
Use mapi_propnames.txt in exmdb_local instead of own variant 
Fix emmdb_local named property memory size 
Keep PR_BODY property present in the response data of the ICS download 
Fix force check in exmdb function 
Set the default value of the Message Class property to 'IPM.Note' for newly created messages 
Add missing properties to mr response 
Don't save properties if empty proplist 
Support EX addresses in the exmdb_client_lib 
Pass query_service fn to exmdb_client_lib 
Get MIME parsing function adapted with SMIME mail that contains inline attachments 
Mark meeting request email as processed 
Add environment variable to disable recurring MRs 
Add support for recurring exceptions in AutoEvent 
Add recurrence helper code 
Rename SimplifiedAction 
Properties Manager refactor round 6 
Properties Manager refactor round 5 
Properties Manager refactor round 4 
Properties Manager refactor round 3 
Properties Manager refactor round 2 
Properties Manager refactor round 1 
Fix typo 
 
v4.3.2 (2025-03-17) 
Allow Outlook ICS to sync items with missing PROP_TAG_MESSAGESTATUS 
Fix CMake build dependency support for Rust only crates 
Fix auth_cache_lib dependency cycle 
Pin CI rustup installation to 1.27.1 
Fix build when nothing was built before 
Fix ext buffer TZRULE pull year 
 
v4.3.1 (2025-01-16) 
Add log-only mode to session rate limiter service 
Add log-only mode to ip filter service 
Allow session rate limiting to be disabled 
 
v4.3.0 (2024-12-19) 
Fix string buffer bug when retrieving free-busy data from multiple users 
Add unit tests for freebusy recurrence 
Fix freebusy recurrence check 
Fix CI pipeline tool installation 
Support multiple socket listeners for policyd 
Check OOF state to apply OOF rules 
 
v4.2.0 (2024-12-03) 
Make sure the original received name is a valid alias name 
Make sure the representing name is a valid email address 
Add charset header to WWW-Authenticate: Basic responses 
Update 3rd-party diesel and tonic crates 
Implement oidc service plugin rust variant 
Add dedicated session scope for api access 
Support bearer tokens without sid claim in reauth 
Add new auth_user system service 
Make zcore token logon sid claim optional 
Fix extra data after http error responses 
Add dedicated service error for token validation 
Improve rust service plugin mem copy performance 
Add support to read bool to rust config file parser 
Use dedicated error code for session scope insufficient error 
Add oidc authentication for mapi and reauth endpoints 
Add system service to get oidc iss 
Setting the PidLidIsException property when importing exception ics files 
Use target store to compute change number in message_copy_by_account 
Use target store to compute change num in message remote copy 
Don't generate PropertyRow of external addresses in the ResolveName response 
Filter email exceptions 
Use unicode replacement character when import d1 invalid utf8 
Skip RRULE Property for Exception Event ICS Export 
 
v4.1.3 (2024-11-18) 
Fix auto event ffi link dependency 
Fix token session periodic refresh 
Return curr time if last mod prop not present 
 
v4.1.2 (2024-11-13) 
Add LastModifier properties 
The entryid format in the ResolveNames response should be in Permernent EntryID, so the b_ephid parameter of the nsp_interface_fetch_row function should be false. 
 
v4.1.1 (2024-11-04) 
Fix hpm processor scheduling refactoring state error 
 
v4.1.0 (2024-10-23) 
Don't auto accept or auto add any recurring MRs 
Fix read flag setting issue with Outlook Online mode 
Auto reject recurring MRs 
Pass real client user agent to eas reauth 
Re-check freebusy when editing event 
Add support for make_ical_uid in freebusy-sys 
 
v4.0.2 (2024-10-08) 
Add processed flag so WebApp doesn't process it 
 
v4.0.1 (2024-10-08) 
Add support for DecideBasedOnFreebusy 
Remove line break for imap info log message 
Set status to busy, if auto accepted 
Make use of proxy protocol TLS information for IMAP and POP3 
 
v4.0.0 (2024-10-02) 
Remove obsolete auth cache hash cache interval config 
Improve adminrpc logging when user has no maildir set 
Create auto event configuration when creating rooms or equipment 
Auto add received calendar invites to recipient calendar 
Refactor freebusy library so it works multi-threaded 
Add Rust Cargo dependencies to CMake dependencies 
Add Rust bindings for freebusy lib 
Refactor auth cache password cache interface 
Switch prost-wkt back from fork to offical repo 
Move system entitlement check after auth for pop3 and imap 
Implement longer session expiration for oidc token sessions 
Implement reauth OPTIONS request to sign in without sesssion 
Remove obsolete C variant of timer_agent plugin 
Remove obsolete C variant of timer tool 
Remove obsolete C variant of userinfo tool 
Update Go global and mod change detection logic 
Update e4a-entitlement library 
Update e4a-go-e4a library 
Implement reauth endpoint session revoke via DELETE 
Include reauth scope in HTTP login audit data 
Remove login audit from zcore 
Log server license issue reject scope 
Add support for query parmeters when parsing reauth URL scope 
Make oidc sid claim mandatory for zcore logon with token 
Use a single zcore session per user 
Remove internal zcore logon server password 
Use blocking threads for eas connection subscribe 
Make rpc allocator new and free available as http service 
Use error level filter for reqwest by default 
Use blocking threads for eas subscribe and unsubscribe actions 
Ensure to always set session expiry on session save 
Use new user session sub system for EAS connections 
Disable tower sessions core logging by default 
Add support for client defined session cookie session 
Allow reauth endpoint to skip license ensuring when oidc scope 
Implement selective session creation based on context 
Disable internal http service HTTP/1.1 keep alive support 
Move session refresh log message to trace level 
Remove http server auth times counter and check 
Deduplicate various http server related memory data 
Disable support for Outlook Anywhere at build time 
Make HTTP request headers available to hpm handlers again 
Use real client IP for http ip block and limit checks 
Remove obsolete http rewrite implementation 
Remove obsolete active sync proxy implementation 
Allow session scope selection via http request 
Enrich session data with user agent and source ip 
Migrate in-memory session store to redis based session library 
Move rust redis client implementation to use fred 
Add action configuration 
Add support for auto accept and auto reject 
Rename module 
Refactor auto event to generate properties seperately 
Update submit function to use aliases to reply message 
Don't check mlist for "default permissions" 
Skip instance cycle check when copying between different stores 
Create auto_event library 
Add PCL to mapi_sys 
Create exmdb_client library 
Add new const do defines 
Improve rest of Cmake file change detection logic 
Further improve CMake Go dependency change detection 
Fix memcpy compile time warning 
Treat mlist default as not found 
Further refactor CMake Rust and Go dependency change detection logic 
Set explicit CXX compiler when building 
Use common randstring helper to create nspi session context 
Remove unused mail approving mpc plugin 
Remove unused "long hash" implementation 
Refactor CMake Rust crate dependency change detection logic 
Refactor scheduled thread pool and async runtime config 
Improve rust cbindgen syntax error handling 
Implement seek and read for mem_file rust binding 
Filter rust tracing log messages by default 
Use default async runtime by default 
 
v3.8.3 (2024-09-19) 
Skip instance cycle check when copying between different stores 
 
v3.8.2 (2024-09-12) 
Replace p-tag with pre-tag in plain_to_html function to keep original format 
ActiveSync calls the message_object_clear function to clear all message properties before uploading modifications.  The Predecessor-Changelist property must be retained to work with Outlook cache mode. 
 
v3.8.1 (2024-08-22) 
Reduce memory allocation for zcore query rows 
Log warnings for memory allocation errors and large allocs 
 
v3.8.0 (2024-08-09) 
Avoid to add http plugin services twice when registering 
The Priority header should map to the Importance property, not the Sensitive property. 
Fix clippy warnings treewide after rust toolchain update 
Align adminrcp stack allocator allocations to 8 bytes 
Fix CXX compile flag warning 
Fix compatibility with new http crate update 
Update 3rd-party chrono crate 
Update 3rd-party hyper crates 
Update 3rd-party tokio crates 
Update 3rd-party tonic and prost crates 
Update 3rd-party diesel and related crates 
Bump rust toolchain to 1.79.0 
Update 3rd-party metrics crates 
Initialize first http context propertly 
Further improve rust cbindgen header generators 
Fix rust vs cmake vs build.rs change detection 
Improve adac propval not found error conditions 
 
v3.7.1 (2024-07-18) 
Add additional exmdb property set error logging 
Correct the RTFInSync value for sticky note messages 
Correct the RTFINSYNC value for contact messages 
Fix use after free in adac error case error code handling 
 
v3.7.0 (2024-07-10) 
Fix alloc success check in zcore set_permissions 
Fix zcore debug log message confusion 
Add a force parameter to the mail_engine_sync_mailbox function to implement midb force sync 
Fix admin rpc plugin unload lock order 
While importing only import used named properties 
Log when exmdb has too many named properties for store 
Display aliases in proxy address tag in outlook 
Add alias suport to adac ab_tree 
Display aliases in proxy address tag in zcore 
Add alias vector to user type 
Add minimal personal store permission table to admin RPC 
Log zcore permission check permissions on failure 
Add debug logging to admin RPC parser 
Add backtrace library 
Use sub_type when generating ab tree 
Use correct "type" field name in internal admin RPC API for users 
 
v3.6.0 (2024-06-18) 
Add ad_connect flag to enable/disable sync of user aliases 
Implement user aliases sync via AD connect 
Ensure user alias API calls can only create aliases for normal users 
Allow i18n email (RFC 6531) for username and aliasname API calls 
Add support for provider_id when creating user aliases 
Add Rust implementation of admin management plugin round (3) 
Add check for domain alias when receiving as group 
Add check for domain alias when sending as a group 
Add get_alias to traits 
Add support for mlist inside mlist when receiving emails 
Add support for mlist inside mlist for outgoing check 
Fix admin RPC api user update for users which have aliases 
Check account type before doing messages copy 
Change add and log function to define 
Add logging to oxcical_import 
Fix ical categories typo 
Change message class whitelist to a blacklist 
 
v3.5.5 (2024-06-05) 
Return mlist members and permissions sorted by username 
 
v3.5.4 (2024-05-21) 
Add a properties blacklist for importer messages and folders 
Use auth cache in imap login 
Write data len as le 
 
v3.5.3 (2024-05-15) 
Calculate Finder folder entryId in zcore for creating search folder 
Fix export of S/MIME signed mail 
Add logging for user quota exceeded error conditions 
Move emsmdb interface async wait item exist debug message to verbose 
Improve zcore rpc error logging by logging the call id 
 
v3.5.2 (2024-05-08) 
Add support to read unaligned pointers for user_table C/Rust interop 
Ensure importer store finalizer is allocated in its own scope 
Fix typo in debug message 
Cleanup eas plugin logging 
 
v3.5.1 (2024-05-03) 
Set associated messages size while importing 
Set individual message sizes in database on import 
Set store message size after import 
Add filename and extension to smime attachments 
 
v3.5.0 (2024-04-29) 
Add support to import distlists 
Add support for IPM and IPM.OLE.CLASS messages 
Move attachment data to cid location 
Add support to import attachments 
Add support for import of microsoft msg classes 
Update README wording and typos 
Generate 3rd-party licenses on dist 
Simplify Rust dependency chain 
Fix 3rd-party license list for Go dependencies 
Include rich-errors in 3rd-party license list 
 
v3.4.1 (2024-04-19) 
Fix exported prometheus metrics types for compatibility 
 
v3.4.0 (2024-04-19) 
Avoid endless Ping loop in eas change detection logic 
Spawn dedicated task for eas change event procs 
Remove -Dwarnings from CI Rust clippy stage 
Fix use after free while initializing zcore LOGIN_SCRIPT_PATH 
Enable Tokio runtime metrics treewide 
Add support to collect Tokio runtime metrics 
Ensure to initialize global metrics recorder for Rust only apps 
Build Rust tokio with unstable flag to support metrics 
Unify Rust tokio runtime bootstrap implementations 
Add metrics collector support to all Rust MySQL db pools 
Simplify management_pan build order and inter dependency chain 
Add metrics collector support for management_pan 
Improve memory management for registered metrics collectors 
Improve metrics collectable interface 
Initialize metrics sub system and add metrics listener support treewide 
Enhance metrics system to be usable from Rust only code 
Expose exmdb console info through the metrics exporter 
Extend metrics system with collectable callbacks 
Make Rust logger library name helper public 
Add process metrics collector 
Add prometheus metrics sub system to all plugins 
Fix Rust library recursive change detection scope 
Add prometheus metrics exporter shared library framework 
Implicitly add directory level CMake link libraries as Rust dependencies 
Make e4a project version available to Cargo via CMake 
Handle all eas cmd variants diretly in mod-activesync 
Remove query ? requirement for mod-activesync routing 
Enable mod-activesync routing for OPTIONS requests 
Skip building eas service plugin as test 
Ensure mime field parser produces null terminated values 
Ensure to include debug symbols for Rust code by default 
Avoid loosing eas events in between Sync 
Avoid loosing eas events when the client relies on Ping 
Implement eas core service plugin 
Implement copy for GUID types in Rust bindings 
Allow core system services to query for all registered services 
Expose additional types and defines in mapi-sys crate 
Remove unused http mod_fastcgi implementation 
Update fastcgi and rewrite rules to only configure eas routing 
Remove unused http cache implementation 
Remove obsolete C implementation of hpm proxy plugin 
Remove obsolete C implementation of hpm force_https plugin 
Remove obsolete C implementation of pan management plugin 
Remove obsolete C implementation of fcgi_rpc service plugin 
Remove native TLS support from http server implementation 
Remove http TLS SNI plugin from http service 
Extend http reauth endpoint return values 
Ensure to compare whole sql cursor when checking window exit condition 
Ensure to exit importer sequencer loop scrolling window 
Add a bit more debug logging to importer progress 
Fix importer included and excluded organization stores configuration 
Ensure importer d1 meta is loaded before upn retrieval 
Decrease importer no mapped parent log level to trace 
Promote importer unsupported message class log message to warning level 
Add importer support for import SMIME message classes 
Log message type when importer is unable to find a mapped parent 
Ensure import in dry run skips reindex 
Add support for E4A_LOG_FILTER env variable 
Skip the mlist address for the getuseravailability function to avoid returning an error code. 
Add support for import meeting request messages 
Add support to import notes 
Add support to import tasks 
Add support to import calendar events 
Map the d1 named properties ids with the e4a ids 
Import named properties and create map ids 
Add http e4a.internal.v1.reauth endpoint 
Skip checking user settings on zcore logon with interal srv passwd 
Skip all search folders 
Add additional logging for easier debug 
Set read flag in messages 
Add support for GUID types on import 
Avoid panic when streaming d1 import hierarchy and the sender ends prematurely 
Add null byte to the end of importer generated cid files as required 
Add explicit trace logger for distlist hierarchy on import to avoid log spam 
Add support for I2 property type on import 
Don't use yoda conditions on rust 
Add contacts to importer import white list 
Add support to queue imported users for full text indexing 
Write len to cid files for certain properties 
Add NULL term to each string in the MV_STRING prop 
Add length to each entry in MV_BINARY property 
Ignore emtpy cid properties when importing d1 message properties 
Skip import of outbox hierarchy if it is present in d1 hierarchy stream 
Generate normalized subject for messages while importing 
Move importer cid persist logging to trace level 
Add importer message class filter to only import IPM.Note for now 
Improve importer logging further 
Avoid cloning message properties for no reason in importer 
Improve and reduce importer logging verbosity 
Compute importer imported message size correctly 
Implement import cid file commit and rollback 
Import Recipients 
Import messages 
Add maildir to private service 
Add allocate cid module 
Resize folder eid range when needed on allocation 
Fix typos 
Fix the bug of missing READ flag of folder access tag 
Dump db_engine info connection table to csv file instead of log 
Port exmdb_provider plugin console implementation to Rust 
Initialize Rust logger in codepage_lang plugin 
Expose str_hash implementation in Rust common-sys module 
Improve double list API to make it usable from Rust 
Implement the IMAP MOVE command 
Add imap support for double quotes and space in folder names 
Add zero to the end of the unicode slash char pointer 
Further split out d1 propval conversion to avoid duplication 
Support ad_connect basic auth username with domain 
Bump e4a-rust-e4a to 0.6.0 
Move d1 to store propval conversion to own trait to allow easy reuse 
Change proptag column to BigInt 
Add more bitwise comparison operators to service RPC users request 
Check mlist outgoing privilege when sending through zcore or emsmdb 
Replace Ascii slash  with Unicode slash in folder names to display correct hierarchy in IMAP 
Handle text search of binary type property in restriction evaluation functions 
Improve d1 importer early exit client behavior 
Fix potential eid collision for new messages 
Don't reallocate after range is full 
Include offset when storing d1 importer global current eid value 
Implement d1 import folder mapping amd eid allocator 
Add an option to allow d1 imports to enabled stores 
Refactor d1 importer global eid allocation 
Simplify d1 import folder id and eid setters 
Simplify sqlite get set configuration traits 
Avoid to increment initial change number twice while importing d1 
Rename and reorganize sqlite database adaptors for consistency 
Validate d1 import user store 
Install and enable d1 importer pan plugin by default 
Add trusted proxy and client IP white list to d1 importer endpoint 
Remove left over debug logging 
Add new URL route for d1 importer to prepare for public exposure 
Remove usage of async-trait in importer as far as possible 
Rename importer traits for clearer names 
Refactor importer stream handling into multiple files 
Refactor importer conversions and change number handling 
Even more importer cleanup 
Refactor importer into more files 
Some more importer cleanup 
Fix importer folder import property loop 
Report import config including dry run to client 
Add importer support for incoming attachment data in d1 stream 
Small importer cleanups 
Allow to set importer dry_run flag via importer settings 
Identify special folders 
Import folder properties 
Get Change Number from database and Save it in the end 
Allocate eid before creating folder 
Fix typos 
Fix importer hierarchy stream sequencer to actually include prop vals 
Use eid and time store database columns as BigInt 
Update timer database models to latest concepts and style 
Simplify and streamline timer code 
Implement importer target exmdb writing basics 
Refactor importer to use streaming operation 
Add mysql adaptor to importer server store implementation 
Implement d1 importer filter settings 
Add note about scheduled worker threadpool size 
Generate private store sqlite database models for Rust 
Move exmdb tool into dedicated library and add cli 
Fix socket parameter for async db pool configuration 
Bump d1 importer to require version 2 manifest 
Check d1 manifest version after parse of import manifest 
Check importer vs d1 file concurrency after parsing manifest 
Send full importer error to client 
Add propert shutdown and 100-continue support to d1 importer 
Add d1 import json stream response while importing 
Use d1 store meta data while importing 
Implement d1 importer pan plugin stub 
Use cli git for Cargo fetch to support private crates 
Add one more CRLF in the keep-alive response 
Update zcore ICS function to accommodate large number of state changes 
Fix accidental cookie header truncation 
Fix password cache expiration check 
Use case-insensitive query to query DAC text 
Fix out of bounds bug in DAC 
Implement privilege checks for MAPI and EAS HTTP auth 
Ensure to initialzie the Rust logger also in static libs 
Improve auth cache system and add privilege_bits to it 
Add definitions for new user privilege bits for MAPI, AS and WEB 
Remove obsolete C mysql adaptor implementations 
Fix overflow check while parsing HTTP session cookie 
Update bincode to version 2.0.0-rc3 
Bump Rust toolchain to 1.76.0 
Fix Rust linter warnings after Rust 1.75 update 
Bump Rust toolchain to 1.75.0 
 
v2.1.14 (2024-04-18) 
Fix use after free while initializing zcore LOGIN_SCRIPT_PATH 
Ensure mime field parser produces null terminated values 
Check mlist outgoing privilege when sending through zcore or emsmdb 
Handle text search of binary type property in restriction evaluation functions 
Fix accidental cookie header truncation 
Fix overflow check while parsing HTTP session cookie 
 
v3.3.1 (2024-04-15) 
Handle all eas cmd variants diretly in mod-activesync 
Remove query ? requirement for mod-activesync routing 
Enable mod-activesync routing for OPTIONS requests 
Skip building eas service plugin as test 
 
v3.3.0 (2024-04-11) 
Ensure mime field parser produces null terminated values 
Ensure to include debug symbols for Rust code by default 
Avoid loosing eas events in between Sync 
Avoid loosing eas events when the client relies on Ping 
Implement eas core service plugin 
Implement copy for GUID types in Rust bindings 
Allow core system services to query for all registered services 
Expose additional types and defines in mapi-sys crate 
Remove unused http mod_fastcgi implementation 
Update fastcgi and rewrite rules to only configure eas routing 
Remove unused http cache implementation 
Remove obsolete C implementation of hpm proxy plugin 
Remove obsolete C implementation of hpm force_https plugin 
Remove obsolete C implementation of pan management plugin 
Remove obsolete C implementation of fcgi_rpc service plugin 
Remove native TLS support from http server implementation 
Remove http TLS SNI plugin from http service 
Extend http reauth endpoint return values 
Ensure to compare whole sql cursor when checking window exit condition 
Ensure to exit importer sequencer loop scrolling window 
Add a bit more debug logging to importer progress 
Fix importer included and excluded organization stores configuration 
Ensure importer d1 meta is loaded before upn retrieval 
Decrease importer no mapped parent log level to trace 
Promote importer unsupported message class log message to warning level 
Add importer support for import SMIME message classes 
Log message type when importer is unable to find a mapped parent 
Ensure import in dry run skips reindex 
Add support for E4A_LOG_FILTER env variable 
Skip the mlist address for the getuseravailability function to avoid returning an error code. 
Add support for import meeting request messages 
Add support to import notes 
Add support to import tasks 
Add support to import calendar events 
Map the d1 named properties ids with the e4a ids 
Import named properties and create map ids 
Add http e4a.internal.v1.reauth endpoint 
Skip checking user settings on zcore logon with interal srv passwd 
Skip all search folders 
Add additional logging for easier debug 
Set read flag in messages 
Add support for GUID types on import 
Avoid panic when streaming d1 import hierarchy and the sender ends prematurely 
Add null byte to the end of importer generated cid files as required 
Add explicit trace logger for distlist hierarchy on import to avoid log spam 
Add support for I2 property type on import 
Don't use yoda conditions on rust 
Add contacts to importer import white list 
Add support to queue imported users for full text indexing 
Write len to cid files for certain properties 
Add NULL term to each string in the MV_STRING prop 
Add length to each entry in MV_BINARY property 
Ignore emtpy cid properties when importing d1 message properties 
Skip import of outbox hierarchy if it is present in d1 hierarchy stream 
Generate normalized subject for messages while importing 
Move importer cid persist logging to trace level 
Add importer message class filter to only import IPM.Note for now 
Improve importer logging further 
Avoid cloning message properties for no reason in importer 
Improve and reduce importer logging verbosity 
Compute importer imported message size correctly 
Implement import cid file commit and rollback 
Import Recipients 
Import messages 
Add maildir to private service 
Add allocate cid module 
Resize folder eid range when needed on allocation 
Fix typos 
Fix the bug of missing READ flag of folder access tag 
Dump db_engine info connection table to csv file instead of log 
Port exmdb_provider plugin console implementation to Rust 
Initialize Rust logger in codepage_lang plugin 
Expose str_hash implementation in Rust common-sys module 
Improve double list API to make it usable from Rust 
Implement the IMAP MOVE command 
Add imap support for double quotes and space in folder names 
Add zero to the end of the unicode slash char pointer 
Further split out d1 propval conversion to avoid duplication 
Support ad_connect basic auth username with domain 
Bump e4a-rust-e4a to 0.6.0 
Move d1 to store propval conversion to own trait to allow easy reuse 
Change proptag column to BigInt 
Add more bitwise comparison operators to service RPC users request 
Check mlist outgoing privilege when sending through zcore or emsmdb 
Replace Ascii slash  with Unicode slash in folder names to display correct hierarchy in IMAP 
Handle text search of binary type property in restriction evaluation functions 
Improve d1 importer early exit client behavior 
Fix potential eid collision for new messages 
Don't reallocate after range is full 
Include offset when storing d1 importer global current eid value 
Implement d1 import folder mapping amd eid allocator 
Add an option to allow d1 imports to enabled stores 
Refactor d1 importer global eid allocation 
Simplify d1 import folder id and eid setters 
Simplify sqlite get set configuration traits 
Avoid to increment initial change number twice while importing d1 
Rename and reorganize sqlite database adaptors for consistency 
Validate d1 import user store 
Install and enable d1 importer pan plugin by default 
Add trusted proxy and client IP white list to d1 importer endpoint 
Remove left over debug logging 
Add new URL route for d1 importer to prepare for public exposure 
Remove usage of async-trait in importer as far as possible 
Rename importer traits for clearer names 
Refactor importer stream handling into multiple files 
Refactor importer conversions and change number handling 
Even more importer cleanup 
Refactor importer into more files 
Some more importer cleanup 
Fix importer folder import property loop 
Report import config including dry run to client 
Add importer support for incoming attachment data in d1 stream 
Small importer cleanups 
Allow to set importer dry_run flag via importer settings 
Identify special folders 
Import folder properties 
Get Change Number from database and Save it in the end 
Allocate eid before creating folder 
Fix typos 
Fix importer hierarchy stream sequencer to actually include prop vals 
Use eid and time store database columns as BigInt 
Update timer database models to latest concepts and style 
Simplify and streamline timer code 
Implement importer target exmdb writing basics 
Refactor importer to use streaming operation 
Add mysql adaptor to importer server store implementation 
Implement d1 importer filter settings 
Add note about scheduled worker threadpool size 
Generate private store sqlite database models for Rust 
Move exmdb tool into dedicated library and add cli 
Fix socket parameter for async db pool configuration 
Bump d1 importer to require version 2 manifest 
Check d1 manifest version after parse of import manifest 
Check importer vs d1 file concurrency after parsing manifest 
Send full importer error to client 
Add propert shutdown and 100-continue support to d1 importer 
Add d1 import json stream response while importing 
Use d1 store meta data while importing 
Implement d1 importer pan plugin stub 
Use cli git for Cargo fetch to support private crates 
Add one more CRLF in the keep-alive response 
Update zcore ICS function to accommodate large number of state changes 
Fix accidental cookie header truncation 
Fix password cache expiration check 
Use case-insensitive query to query DAC text 
Fix out of bounds bug in DAC 
Implement privilege checks for MAPI and EAS HTTP auth 
Ensure to initialzie the Rust logger also in static libs 
Improve auth cache system and add privilege_bits to it 
Add definitions for new user privilege bits for MAPI, AS and WEB 
Remove obsolete C mysql adaptor implementations 
Fix overflow check while parsing HTTP session cookie 
Update bincode to version 2.0.0-rc3 
Bump Rust toolchain to 1.76.0 
Fix Rust linter warnings after Rust 1.75 update 
Bump Rust toolchain to 1.75.0 
 
v2.1.13 (2024-04-11) 
Ensure mime field parser produces null terminated values 
Check mlist outgoing privilege when sending through zcore or emsmdb 
Handle text search of binary type property in restriction evaluation functions 
Fix accidental cookie header truncation 
Fix overflow check while parsing HTTP session cookie 
 
v3.2.0 (2024-03-27) 
Add http e4a.internal.v1.reauth endpoint 
Skip checking user settings on zcore logon with interal srv passwd 
Skip all search folders 
Add additional logging for easier debug 
 
v3.1.1 (2024-03-22) 
Set read flag in messages 
Add support for GUID types on import 
Avoid panic when streaming d1 import hierarchy and the sender ends prematurely 
 
v3.1.0 (2024-03-21) 
Add null byte to the end of importer generated cid files as required 
Add explicit trace logger for distlist hierarchy on import to avoid log spam 
Add support for I2 property type on import 
Don't use yoda conditions on rust 
Add contacts to importer import white list 
Add support to queue imported users for full text indexing 
Write len to cid files for certain properties 
Add NULL term to each string in the MV_STRING prop 
Add length to each entry in MV_BINARY property 
Ignore emtpy cid properties when importing d1 message properties 
Skip import of outbox hierarchy if it is present in d1 hierarchy stream 
Generate normalized subject for messages while importing 
Move importer cid persist logging to trace level 
Add importer message class filter to only import IPM.Note for now 
Improve importer logging further 
Avoid cloning message properties for no reason in importer 
Improve and reduce importer logging verbosity 
Compute importer imported message size correctly 
Implement import cid file commit and rollback 
Import Recipients 
Import messages 
Add maildir to private service 
Add allocate cid module 
Resize folder eid range when needed on allocation 
Fix typos 
Fix the bug of missing READ flag of folder access tag 
Dump db_engine info connection table to csv file instead of log 
Port exmdb_provider plugin console implementation to Rust 
Initialize Rust logger in codepage_lang plugin 
Expose str_hash implementation in Rust common-sys module 
Improve double list API to make it usable from Rust 
Implement the IMAP MOVE command 
Add imap support for double quotes and space in folder names 
Add zero to the end of the unicode slash char pointer 
 
v3.0.2 (2024-03-14) 
Further split out d1 propval conversion to avoid duplication 
Support ad_connect basic auth username with domain 
Bump e4a-rust-e4a to 0.6.0 
Move d1 to store propval conversion to own trait to allow easy reuse 
Change proptag column to BigInt 
 
v3.0.1 (2024-03-12) 
Add more bitwise comparison operators to service RPC users request 
Check mlist outgoing privilege when sending through zcore or emsmdb 
Replace Ascii slash  with Unicode slash in folder names to display correct hierarchy in IMAP 
Handle text search of binary type property in restriction evaluation functions 
Improve d1 importer early exit client behavior 
Fix potential eid collision for new messages 
Don't reallocate after range is full 
Include offset when storing d1 importer global current eid value 
Implement d1 import folder mapping amd eid allocator 
Add an option to allow d1 imports to enabled stores 
Refactor d1 importer global eid allocation 
Simplify d1 import folder id and eid setters 
Simplify sqlite get set configuration traits 
Avoid to increment initial change number twice while importing d1 
Rename and reorganize sqlite database adaptors for consistency 
Validate d1 import user store 
Install and enable d1 importer pan plugin by default 
Add trusted proxy and client IP white list to d1 importer endpoint 
Remove left over debug logging 
Add new URL route for d1 importer to prepare for public exposure 
Remove usage of async-trait in importer as far as possible 
Rename importer traits for clearer names 
Refactor importer stream handling into multiple files 
Refactor importer conversions and change number handling 
Even more importer cleanup 
Refactor importer into more files 
Some more importer cleanup 
Fix importer folder import property loop 
Report import config including dry run to client 
Add importer support for incoming attachment data in d1 stream 
Small importer cleanups 
Allow to set importer dry_run flag via importer settings 
Identify special folders 
Import folder properties 
Get Change Number from database and Save it in the end 
Allocate eid before creating folder 
Fix typos 
Fix importer hierarchy stream sequencer to actually include prop vals 
Use eid and time store database columns as BigInt 
Update timer database models to latest concepts and style 
Simplify and streamline timer code 
Implement importer target exmdb writing basics 
Refactor importer to use streaming operation 
Add mysql adaptor to importer server store implementation 
Implement d1 importer filter settings 
Add note about scheduled worker threadpool size 
Generate private store sqlite database models for Rust 
Move exmdb tool into dedicated library and add cli 
Fix socket parameter for async db pool configuration 
Bump d1 importer to require version 2 manifest 
Check d1 manifest version after parse of import manifest 
Check importer vs d1 file concurrency after parsing manifest 
Send full importer error to client 
Add propert shutdown and 100-continue support to d1 importer 
Add d1 import json stream response while importing 
Use d1 store meta data while importing 
Implement d1 importer pan plugin stub 
Use cli git for Cargo fetch to support private crates 
Add one more CRLF in the keep-alive response 
Update zcore ICS function to accommodate large number of state changes 
Fix accidental cookie header truncation 
Fix password cache expiration check 
Use case-insensitive query to query DAC text 
Fix out of bounds bug in DAC 
Implement privilege checks for MAPI and EAS HTTP auth 
Ensure to initialzie the Rust logger also in static libs 
Improve auth cache system and add privilege_bits to it 
Add definitions for new user privilege bits for MAPI, AS and WEB 
Remove obsolete C mysql adaptor implementations 
Fix overflow check while parsing HTTP session cookie 
Update bincode to version 2.0.0-rc3 
Bump Rust toolchain to 1.76.0 
Fix Rust linter warnings after Rust 1.75 update 
Bump Rust toolchain to 1.75.0 
 
v2.1.12 (2024-03-07) 
Check mlist outgoing privilege when sending through zcore or emsmdb 
 
v2.1.11 (2024-03-06) 
Handle text search of binary type property in restriction evaluation functions 
Fix accidental cookie header truncation 
Fix overflow check while parsing HTTP session cookie 
 
v3.0.0 (2024-02-29) 
Implement d1 import folder mapping amd eid allocator 
Add an option to allow d1 imports to enabled stores 
Refactor d1 importer global eid allocation 
Simplify d1 import folder id and eid setters 
Simplify sqlite get set configuration traits 
Avoid to increment initial change number twice while importing d1 
Rename and reorganize sqlite database adaptors for consistency 
Validate d1 import user store 
Install and enable d1 importer pan plugin by default 
Add trusted proxy and client IP white list to d1 importer endpoint 
Remove left over debug logging 
Add new URL route for d1 importer to prepare for public exposure 
Remove usage of async-trait in importer as far as possible 
Rename importer traits for clearer names 
Refactor importer stream handling into multiple files 
Refactor importer conversions and change number handling 
Even more importer cleanup 
Refactor importer into more files 
Some more importer cleanup 
Fix importer folder import property loop 
Report import config including dry run to client 
Add importer support for incoming attachment data in d1 stream 
Small importer cleanups 
Allow to set importer dry_run flag via importer settings 
Identify special folders 
Import folder properties 
Get Change Number from database and Save it in the end 
Allocate eid before creating folder 
Fix typos 
Fix importer hierarchy stream sequencer to actually include prop vals 
Use eid and time store database columns as BigInt 
Update timer database models to latest concepts and style 
Simplify and streamline timer code 
Implement importer target exmdb writing basics 
Refactor importer to use streaming operation 
Add mysql adaptor to importer server store implementation 
Implement d1 importer filter settings 
Add note about scheduled worker threadpool size 
Generate private store sqlite database models for Rust 
Move exmdb tool into dedicated library and add cli 
Fix socket parameter for async db pool configuration 
Bump d1 importer to require version 2 manifest 
Check d1 manifest version after parse of import manifest 
Check importer vs d1 file concurrency after parsing manifest 
Send full importer error to client 
Add propert shutdown and 100-continue support to d1 importer 
Add d1 import json stream response while importing 
Use d1 store meta data while importing 
Implement d1 importer pan plugin stub 
Use cli git for Cargo fetch to support private crates 
Add one more CRLF in the keep-alive response 
Update zcore ICS function to accommodate large number of state changes 
Fix accidental cookie header truncation 
Fix password cache expiration check 
Use case-insensitive query to query DAC text 
Fix out of bounds bug in DAC 
Implement privilege checks for MAPI and EAS HTTP auth 
Ensure to initialzie the Rust logger also in static libs 
Improve auth cache system and add privilege_bits to it 
Add definitions for new user privilege bits for MAPI, AS and WEB 
Remove obsolete C mysql adaptor implementations 
Fix overflow check while parsing HTTP session cookie 
Update bincode to version 2.0.0-rc3 
Bump Rust toolchain to 1.76.0 
Fix Rust linter warnings after Rust 1.75 update 
Bump Rust toolchain to 1.75.0 
 
v2.1.10 (2024-02-26) 
Fix accidental cookie header truncation 
 
v2.1.9 (2024-02-16) 
Fix overflow check while parsing HTTP session cookie 
 
v2.1.8 (2024-02-02) 
Avoid setting timezone property values when there is no timezone 
 
v2.1.7 (2024-01-31) 
Correct IDSET range list order when removing an eid 
 
v2.1.6 (2024-01-25) 
Fix eid end range check 
Use RichErrors with check_mlist_include function 
Fix memory leak bug in rop_processor 
 
v2.1.5 (2023-12-19) 
Add functions in oxcical to remove expired timezone information 
Fix permission check bug in zarafa_server_copyfolder function 
 
v2.1.4 (2023-12-15) 
Fix the problem with inline attachments in Apple Mail 
Correct the max mail length value in exchange emsmdb 
 
v2.1.3 (2023-12-12) 
Support different vcard TEL versions 
Support different vcard EMAIL versions 
Use correct the path when creating ftstream parser 
Use Sqlite ON CONFLICT Clause feature to resolve folder name conflict 
Updated midb Insert message function to generate eml file if it doesn't exist. 
 
v2.1.2 (2023-11-24) 
Ensure auth result is set to OK when auth cache is hit 
Avoid to log Rust logger init multiple times 
Improve session cache hit/miss logging 
 
v2.1.1 (2023-11-22) 
Use EX address for internal users in meeting request 
Add public store migration 
Tame store migration internal logging 
Initialize store migration system version at database create 
Make the store migration system more flexible 
Add private store none to blob migration 
Vacuum migrated store databases after migration 
Ensure to rebuild store-migrations tool if sql files have changed 
 
v2.1.0 (2023-11-17) 
Add initial store migration system 
 
v2.0.0 (2023-11-17) 
Add missing link libraries to fix build 
Generate the iCalendar UID if it is not present in the MIME 
Attempt to reconnect on IO and EOF redis errors 
Determine the timezone if vtimezone not present 
Move export function upwards 
Add tzparser rust library to timezone_lib 
Add missing subval when exporting vtimezone 
Export mail message in RFC format file in MTA service 
Return RichError in get_user_ids mysql calls 
Add rich-error-sys to library 
Add rich errors thirdparty library 
Add logging of error response to rpc parsers 
Bump Rust toolchain to 1.73.0 
Improve AD connect sync logging when anchor attribute is not found 
Implement domain and org validation for gRPC providers 
Add error logging to providers gRPC service 
Update Rust database models so update is compareable 
Implement internal providers gRPC service 
Remove session-lib from cargo file 
Fix issues with connnecting to a shared mailbox in Outlook cache mode 
Use password caching in adac 
Don't panic if logger already initialized 
Use password caching in pop3 
Use password caching in imap 
Rename session lib to auth cache lib 
Rename SessionManager to AuthManager 
Add password caching to session manager 
Update the mail_engine_mcopy function 
Disable permission inheritance for IPM folders 
Remove O1 flag from timezone_lib 
Create all MariaDB database tables with InnoDB engine instead of Aria 
 
v1.8.3 (2023-11-10) 
Update inline attachment verification logic during mail import 
 
v1.8.2 (2023-10-27) 
Fix problem generating Reply-To header 
 
v1.8.1 (2023-10-25) 
Install certain data files as world readable 
Add cargo_vendor dependency to cmake function 
Use add_rust_header in the defines library 
Add cmake function to generate C headers from rust 
 
v1.8.0 (2023-10-17) 
Add logging to oxcmail export 
Bump Go to 1.21 in Docker build 
Replace RTF converter with librtfpiper 
Fix midb_agent code style as needed 
Avoid midb_agent endless loop in psiml command 
Avoid midb_agent endless loop in mlist command 
Add midb_agent EOF error checks 
Fix midb_agent write error checks 
Fix midb signed read and write data type to allow negative checks to work 
Move some too verbose debug logging into verbose mode 
Use more useful midb agent connection settings for IMAP example config 
Add logging for event service and its plugins 
Fix invalid uid copy reply 
 
v1.7.5 (2023-10-09) 
Ensure that Rust addrows create user does never use empty maildir 
Disable example gRPC greeters when not compiled in debug mode 
Replace IMAP SSL_Write with imap_parser_safe_write 
 
v1.7.4 (2023-10-06) 
Always display the VALUE field for all day app 
Filter aliases from user authentication 
 
v1.7.3 (2023-10-05) 
Add password hashing to rust updaterow 
 
v1.7.2 (2023-09-27) 
Fix incorrect len written to imap stream 
 
v1.7.1 (2023-09-22) 
Fix rtfkit stdin buffer offset read 
 
v1.7.0 (2023-09-20) 
Use session library in http parser 
Bootstrap session library 
Use entitle client in e4a-go-e4a 
Update e4a-go-e4a version 
Avoid allocating storage when syncing users in dru-run 
Implement ad_connect user sync endpoints and database transaction 
Add external user auth system and library 
Define ad_connect internal API and move protos to common location 
Avoid to build Rust only library as dynamic library 
Fix clippy deprecation warnings 
Make Rust config file implementation cloneable 
Install ad_connect pan plugin if it was built 
Implement initial ad_connect plugin 
Improve Rust CMake rules to include version in SONAME for libraries 
Refactor Rust management plugin into plugin and library 
Build all Rust code dynamically link to Rust std library 
Remove user table implementation from shared library 
Copy mails sent by the delegated user to the represented user's store 
 
v1.6.0 (2023-09-15) 
Bump to Go 1.21 in CI 
Add health checks on checkout to pooled conns 
Write data as it comes to avoid buffer overflow 
Fix typo in sequence 
Fix wrong formatting character in dac_server_allocdir 
Correct the charset conversion of mail body content 
 
v1.5.0 (2023-09-05) 
Fix the ical parsing bug in yearly recurrence 
Check for NULL pointer after using lib_buffer_get 
Fix potential overflow with P-SUBL command 
Fix potential overflow with M-ENUM command 
Fix Rust timer_agent build target file name 
Add migration from legacy timer data to sqlite 
Add rust version of the timer_agent plugin 
Make the plugin config optional 
Add rust version of the timer service 
Correct unit of max_space when creating a mailbox 
Check user permission in the zarafa_server_modifypermissions function 
Force the row count to zero for the recoverable table query 
Update the SQLite column type from NONE to BLOB 
Rebuild Rust database schema models with Diesel 2.1.0 
Bump 3rd-party Rust dependencies to latest version 
Bump build CI pipeline to use Ubuntu 22.04 
Fix Rust test module definition order to make linter happy 
Bump Rust toolchain to 1.17.0 
Ignore generated rs files in rustfmt CI 
Add Rust implementation of admin management plugin round (2) 
Switch Rust database model generation to dsync 
Fix Rust adminrpc management table column name null termination 
Add logging to midb agent 
Fix typo 
Use the mysql defines in the mysql rust code 
Standardize the mysql defines' names 
Move ab tree database defines to a rust library 
Add fallback to domain and group display name 
Remove MEM FILE from exchange_nsp's ab_tree 
Remove MEM FILE from adac's ab_tree 
Remove MEM FILE from zcore's ab_tree 
Re-structure get domain and get domain info 
Add Builder pattern to C structs 
Add free_member function pointer to ResultWrapper 
Seperate c types into different files 
Remove C code for adaptor core, service, adac 
Rename write_ to get_  for mod, fn and traits 
Replace MEM_FILE in write users 
Replace MEM_FILE in write hierarchy 
Replace MEM_FILE in write groups 
Replace MEM_FILE in write domains 
Fix typos 
Correct minEntryID value in NSPI service 
Fix mlist delegate and permission checks 
Fix potential overflow crash 
 
v1.4.3 (2023-08-15) 
Check user permission in the zarafa_server_modifypermissions function 
 
v1.4.2 (2023-07-14) 
Handle invalid UTF-8 encoded parameters when transition from C to Rust 
Further improve IMAP change behavior 
Set IMAP context newmail flag when the current folder was touched 
Bring back folder touch broadcast on new mail 
Fix incorrect field name in debug log message 
 
v1.4.1 (2023-07-12) 
Correct the daylight bias value in  the oxcical_parse_tzdefinition function 
 
v1.4.0 (2023-07-06) 
Change sprintf to snprintf 
Add logging to mail engine 
Fix the IMAP EXPUNGE command problem 
Update midb SQL statament 
Implement the full features of IMAP sync 
Install pop3_code data file into correct sub folder 
 
v1.3.3 (2023-07-03) 
Replace strcpy for snprintf 
Fix off by one total user ensurer check 
Use 5.1.90 as sending quota SMTP policy error code 
Move event config to sub folder for consistency 
Remove obsolete unused rsyncd and rsyncer 
Use dedicated config files for timer and amidb services 
Implement Postfix SMTP access policy daemon 
Avoid building Protocol Buffers well known types 
Cleanup servicerpc Rust build script 
Refactor servicerpc Rust source tree layout 
Improve Rust binary CMake build change detection 
Revert "Implement the full features of IMAP sync" 
Addition to the !453 
Fix bugs in the rop_getpropertiesall function 
Set pcolumns parameter's value if it is NULL 
Set correct BYMONTH value in the oxcical_export_rrule function 
check MIME header to inhibit autoreplies are sent to mail lists 
Implement the full features of IMAP sync 
Add a null check for a parameter before using it 
Add zcore object tree overflow logging 
Differentiate between error and not finding folder 
Fix the bug in rrule parsing in oxcical 
Fix bug in midb todo flag sync 
Fix the wrong property bind bug in exmdb_server_query_folder_messages 
Fix potential bug in operating null pointers 
Skip empty second and third email addresses 
Fix SQL error check 
Add servicerpc associations service 
Add servicerpc mlists service 
Fix folder name type in German language 
Fix the sorting bug in the user table query 
Remove debug stderr output from adminrpc management Rust implementation 
Use explicit use paths in Rust admin macros 
Improve mapi property type definitions for Rust 
Add admin table specific api to Rust admin library 
Add more trait helpers to Rust admin library 
Add From and Not traits to BOOL Rust implementation  
Make mapi prop tags constants available for Rust 
Add support for dependent CMake options 
Add support to set Rust build features through cmake 
Make more mapi data types available for Rust 
Ensure correct link path and name for non-Rust management-pan target 
Add error to connection lost errors 
Change fcgi start and stop logs to trace 
Inheriting permissions from a shared folder to subfolders 
Add Rust implementation of admin management plugin round (1) 
Add Rust admin library implementation 
Export EC_ constants in mapi-sys interface 
Improve Rust config file reusability 
Remove obsolete clippy config 
 
v0.26.2 (2023-06-21) 
Fix off by one total user ensurer check 
 
v1.3.2 (2023-06-21) 
Fix off by one total user ensurer check 
 
v1.3.1 (2023-06-19) 
Use 5.1.90 as sending quota SMTP policy error code 
 
v1.3.0 (2023-06-16) 
Move event config to sub folder for consistency 
Remove obsolete unused rsyncd and rsyncer 
Use dedicated config files for timer and amidb services 
Implement Postfix SMTP access policy daemon 
Avoid building Protocol Buffers well known types 
Cleanup servicerpc Rust build script 
Refactor servicerpc Rust source tree layout 
Improve Rust binary CMake build change detection 
 
v1.2.1 (2023-06-12) 
Revert "Implement the full features of IMAP sync" 
Addition to the !453 
Fix bugs in the rop_getpropertiesall function 
 
v1.2.0 (2023-06-02) 
Set pcolumns parameter's value if it is NULL 
Set correct BYMONTH value in the oxcical_export_rrule function 
check MIME header to inhibit autoreplies are sent to mail lists 
Implement the full features of IMAP sync 
 
v1.1.0 (2023-05-24) 
Add a null check for a parameter before using it 
Add zcore object tree overflow logging 
Differentiate between error and not finding folder 
Fix the bug in rrule parsing in oxcical 
Fix bug in midb todo flag sync 
Fix the wrong property bind bug in exmdb_server_query_folder_messages 
Fix potential bug in operating null pointers 
Skip empty second and third email addresses 
Fix SQL error check 
Add servicerpc associations service 
Add servicerpc mlists service 
Fix folder name type in German language 
Fix the sorting bug in the user table query 
Remove debug stderr output from adminrpc management Rust implementation 
Use explicit use paths in Rust admin macros 
Improve mapi property type definitions for Rust 
Add admin table specific api to Rust admin library 
Add more trait helpers to Rust admin library 
Add From and Not traits to BOOL Rust implementation  
Make mapi prop tags constants available for Rust 
Add support for dependent CMake options 
Add support to set Rust build features through cmake 
Make more mapi data types available for Rust 
Ensure correct link path and name for non-Rust management-pan target 
 
v1.0.0 (2023-05-11) 
Add error to connection lost errors 
Change fcgi start and stop logs to trace 
Inheriting permissions from a shared folder to subfolders 
Add Rust implementation of admin management plugin round (1) 
Add Rust admin library implementation 
Export EC_ constants in mapi-sys interface 
Improve Rust config file reusability 
Remove obsolete clippy config 
 
v0.26.1 (2023-05-04) 
Fix amidb spinning thread 100% CPU usage 
Ensure to full mlist display name in Rust ab tree retrieval 
 
v0.26.0 (2023-04-27) 
Consolidate differnt ways to setup logging and tracing in Rust code 
Refactor servicerpc log initialization 
Use reference when parsing config with Rust 
Add gRPC request tracing to servicerpc 
Change "successfully logged in" log to verbose 
Change new connection logs to verbose 
Filter users by address type for alias creation 
Add servicerpc domains and aliases service 
Refactor serviceprc service and database code into multiple files 
Fix processing of comma separated values in ical 
Fix incorrect sqlite error check 
Fix the wrong parameter bug for moving messages 
Remove unused auth login trait 
Remove user id param 
Add missing param to log message to fix crash 
Install available gRPC service proto files 
Install servicerpc and its config file 
Implement servicerpc GetUsers stream endpoint 
Implement servicerpc SearchUsers pagination 
Implement graceful shutdown for servicerpc daemon 
Fix Rust clippy warnings 
Pin the Rust toolchain version to the repository as override 
Bump CI Go to 1.20 and Rust to 1.68 
Add protoc as mandatory build dependency 
Improve Rust thread name numbering 
Use prefix filter for Rust logger external fixed level 
Add servicerpc to CMake and build it by default 
Add and use proper CMake targets for db folder 
Add CMake support to build Rust binaries 
Add missing link libraries to static Rust mysql adaptors 
Implement servicerpc daemon 
Add some basic async traits for Rust mysql access 
Re export Pool and related as part of Rust connection module 
Fix deprecation warning in Rust scheduled thread pool 
Use mysql unix socket by default also with Go based tools 
Remove unmaintained store creating commandline tools 
Remove duplicated sqlite3 SQL initialization files 
Add Go port for the userinfo commandline tool 
Add CMake fuction to build Golang executables 
Remove obsolte unmaintained db modify commandline tools 
Add ORM on top of Go SQLBoiler 
Add amidb shared library for consistency 
Cleanup header files 
Add Rust implementation of amidb mysql adaptor service 
Move amidb mysql service to static library 
Consolidate Rust mysql service implementations to db traits 
Rename shared Rust auth_login service trait to be more reusable 
Add Rust implementation of core system mysql adaptor service 
Unify Rust mysql adaptor service names 
Add Rust implementation of service system mysql adaptor service 
Move Rust implementations of shared db services to db shared module 
Add Rust file change detection to db module 
Avoid exhaustive logging in get_nlist Rust service when mlist not exist 
 
v0.25.2 (2023-04-04) 
Avoid exhaustive logging when fastcgi does not feel responsible for http 
Ensure get_mail_list service sets result also on error 
 
v0.25.1 (2023-03-31) 
Fix zcore object unreleased bug in flag_sync 
 
v0.25.0 (2023-03-30) 
Move more Rust mysql services into generic shared db library 
Implement Rust version of the adac mysql adaptor 
Make Rust auth_login service trait generic 
Expose hash_password util function in common Rust library 
Implement shared Rust domain by value service 
Add helper function to Rust logger for initialization 
Improve service name consistency 
Elevate some Rust database services to shared crate 
Implement binary mem file writing for Rust 
Unify setter for mysql unix port for Rust libraries 
Add support for static Rust libraries to build system 
Add implicit support for generated includes for Rust libraries 
Move adac mysql_adaptor to library 
Increase size of "local part" in email address 
Fix formatting warnings with unsigned long ints 
Add logging to oxcfxics 
Add logging to oxcfold 
Add logging to oxomsg 
Add logging to oxctabl 
Add logging to oxcstore 
Add logging to oxorule 
Add logging to oxcperm 
Add logging to oxcnotif 
Add logging to oxcprpt 
Add logging to oxcmsg 
Remove unnecessary log message (spams) 
 
v0.24.0 (2023-03-23) 
Add x-requestid to http context 
Use define for tmp buffer size 
Don't be so strict about guid str length 
Handle ical recurring daily meetings timezone offset properly 
Fix mlist permission check in Rust mta mysql adaptor 
Add logging to zarafa server functions 
Improve logging in http fastcgi 
Don't return FALSE on success 
 
v0.23.1 (2023-03-09) 
Add scope value to the name of generated files 
 
v0.23.0 (2023-02-28) 
Make sure the msg is set to UNREAD before sending 
Bump entitlement client version 
Make entitlement via cloud claim mandatory for using entitled_users 
Unify entitle client implementation 
Match cargo test build type to CMake build target 
Don't skip users without an email address 
Fix parsing of escaped commas in ical 
Port mta MySQL adaptor to Rust 
Add more traits and helpers to service plugin API 
Implement line writer for MEM_FILE Rust struct 
Add user sub type enum to Rust types 
Add bool From/Into trait for BOOL enum 
Further improve Rust service plugin interface 
Add transaction support to Rust MySQL auth service pw hash update 
Improve Rust service plugin API and interface 
Implement shared MySQL traits for Rust based database queries 
Add helper trait for Rust plugin config 
Use unique plugin name also for Rust plugins 
Add scope logged as tag to Rust logger sub system 
Add and use Rust email-sys crate 
Remove more unsued MTA anti-spam service plugins 
Remove unused MTA ESMTP auth support 
Remove obsolete unused anti-spam system MTA service plugins 
 
v0.22.1 (2023-02-07) 
Use correct gc ID value to identify schedule timer message 
Make path to submit.php absolute 
 
v0.22.0 (2023-02-03) 
Unify implementation of FILETIME 
Add and use Rust mapi-sys crate 
Use more functions from common-sys crate 
Rename Rust service library 
Rename Rust mapi library into mapi_lib folder 
Move and rename Rust common library into common folder 
Use Rust common-sys crate treewide 
Improve CMake dependency checks and logging 
Add Rust common-sys crate 
Update Rust libffi to gain access to latest bindgen 
Use q-encoding where appropriate 
Add "q-encoding" decoding functions 
Add warning log when the context pool is full 
Relax a bunch of per field vcard import failure checks 
Add useful debug logging for VCARD importing 
Disable vcf files from test suite which do not have a version 
Add unit tests for vcf import support 
Fix a bunch of potential crashes and typos in vcard importer 
Auto initialize Rust logger sub system 
Add full build dependencies to Rust clippy CI stage 
Improve flexibility of unit test runner 
 
v0.21.0 (2023-01-27) 
Log tag even if prefix is NULL 
Don't print the scope if prefix is NULL 
Fix import and export of ADR property 
Add support for mobile type in tel field 
Support multiple values in N field during import 
Copy the right variable to the property value 
Centralize Rust scheduled thread pool 
Enshance Rust database models with more derives and types 
Implement Rust mra MySQL adaptor info logging and console 
Convert Rust MySQL mra adaptor use Diesel ORM 
Add Rust MySQL service implemetation with Diesel to compare performance 
Add another implementation of Rust sqlx to compare performance 
Refactor Rust plugin structure and implement mysql adaptor based services 
Use more precise selects for Rust mra MySQL auth login 
Move Rust password comparison function to common utils 
Add ORM on top of Rust sqlx 
Use sqlx to access MySQL from Rust 
Implement mra mysql_adaptor service in Rust 
Add async Rust runtime to common library 
Add more fexibility to service traits 
Add support to parse integer values from config files 
Avoid binding Rust service API to a single service 
Make sure the connection structs are equal 
Fix potential buffer overrun when comparing password hashes 
Add support to set OUTPUT_NAME in Rust build targets 
Disable hpm mod_proxy by default 
Disable hpm mod_force_https by default 
 
v0.20.0 (2023-01-17) 
Create the MAPI session ID in a secure way 
Fix overflow warnings 
Fix zcore object tree periodic flush 
Don't log non sql errors as errors 
Fix modlinkatt ext pull buffer 
Refresh active entitlement claims at least once per day 
Enable entitlement autoRenew again 
Remove obsolete unused php_mailbox mpc plugin 
Add benchmark for fcgi_rpc service plugin 
Make fcgi_rpc plugin use async 
Improve Rust license ranger to filter non-target dependencies 
Further improve Rust implementation of codepage_lang service 
Enhance Rust WithAPI service plugin trait 
Add Rust implementation of fcgi_service plugin 
Add get_plugin_name function to Rust plugin API 
Remove non error logs 
Remove unnecessary log message 
Improve Rust service plugin interface 
Simplify Rust logger 
Add logging to exmdb server's message functions 
Fix warnings 
Fix typo 
Switch Go logger to field logger 
Improve Go logger caller depth 
Fix types in code comments related to log helpers 
Further simplfiy Go logging sub system 
Centralize Go logging library 
 
v0.19.1 (2022-12-23) 
Set correct SONAME for freebusy_lib 
 
v0.19.0 (2022-12-22) 
Improve libsodium build detection 
No longer install library symbolic links 
Make Go a first party supported project language 
Add 3rd-party license summary generators 
Add Rust support 
Use freebusy_lib in freebusy tool 
Remove freebusy tool path from config 
Replace fork for freebusy tool with shared lib 
Fix simple warnings 
Add freebusy as a shared library 
Use cnvtabkt_lib in cnvtabkt tool 
Remove cnvtabkt tool path from config 
Replace fork for cnvtabkt tool with shared lib 
Add cnvtabkt as a shared library 
Reduce amount of excessive logging 
Disable Nginx proxy buffering for RPC responses 
Add logging to exmdb server's table functions 
Fix string format warnings 
Log Outlook async wait already exists as debug 
Fix improper sql error checks 
Add logging to exmdb server's instance functions 
Fix typos in function names 
Fix warnings 
Add logging to exmdb server's ics functions 
Add logging to exmdb server's store functions 
Fix notification typo 
Fix logging crash in cnvtabkt binary 
Fix warnings 
Add logging to exmdb server's folder functions 
Fix typo in function name 
 
v0.18.4 (2022-12-09) 
Fix ip_container IP removal for imap and smtp service when with proxyprotocol 
 
v0.18.3 (2022-12-07) 
Fix fortified buffer overflow in HTML unicode processing 
Use RECEIVEDREPRESENTINGENTRYID message property in owner check 
Don't log error message for optional config value 
 
v0.18.2 (2022-12-05) 
Allow Outlook to create named properties on shared stores 
Revert "Fix off by one named property mapping in shared folder rop logon" 
Remove hardcoded product label in special folder name 
Migrate to Go odic module from GitHub 
Ensure RTFINSYNC is present when requesting BODY via rop 
 
v0.18.1 (2022-11-30) 
Set RTFINSYNC property for incoming mail 
Use RECEIVEDREPRESENTINGENTRYID  message property in owner check 
Fix off by one named property mapping in shared folder rop logon 
Add missing restriction type to keyword extractor 
Add support to sort user table in zcora via restrictions 
 
v0.18.0 (2022-11-24) 
Check bounds before accessing memory in ical 
Fix typo 
Add unit tests for ical 
Fix infinite loop in vcard parser by adding missing increment 
Check the remaining length is enough for the cmp 
Rewrite func to not access out of bounds memory 
Check the buffer size before dereferencing the ptr 
Add unit tests for parse_mime_field 
Do not copy the index next to the hash pointer 
Use full version as soname suffix for all local libraries 
Bump docs to reflect minimal required CMake version 
Update CMake in CI to support junit output directly 
Add a hint to gdb >= 10 when building with clang 
Make all daemons unit testable and add a few trivial tests 
Ensure to always include cmocka link library when defining tests 
Add fuzzers for common library parser functions 
Removed unused parser functions 
Add some docs for the fuzzers 
Add fuzzers for all parsers implemented in email lib 
Add explicit includes to fuzzers 
Update code format rules for unit tests and fuzzers 
Add unit tests for password hash comparison 
Add build helper function to generate fuzzers 
Add SCOPE parameter to unit test helper function 
Fix "Uninitialized argument value" errors 
Fix "Result of operation is garbage or undefined" 
Fix "Assigned value is garbage or undefined" errs 
Fix dereference of NULL pointers 
Add missing double quotes to test runner script 
Fix request_parser crash for invalid percent encoded data 
Update clang build flags to be on par with gcc 
Fix cookie_parser crash for invalid percent encoded data 
Add simple unit tests 
Run unit tests in CI 
Remove clang-tidy run from CI 
Add cmocka unit test framework 
Update include sort order for unit test support 
Fix memory leaks 
Fix "use of zero allocated" errors 
Fix use-after-free memory errors 
Remove double definition of buff_len 
Add a fuzzers for webkit library parsers 
Use more consistent logger scopes in libraries 
Explicitly define source files, avoid using glob 
Fixup paths for configuration and data files for all tools 
Fix Clang build compatibility 
Enable include sorting and sort all includes treewide 
Add includes treewide for everything what is used 
Fix and install userinfo tool 
Use more consistent naming for mpc_plugin header file 
Move all library header files to named sub folders 
Fix Docker based build example 
Move around and rename libraries and tools to improve project structure 
Improve CMake target names for tools to avoid conflicts 
Add support for oauth2 in pop3 
Add convenience functions to pop3 
Add support for oauth2 in imap 
Make entitled_users helper function more generic 
Add OIDC and dependent mysql functions to imap 
Change auth replies to better reflect RFC 
Replace buff magic number with define 
Add support to send as mlist via zcore 
Use snprintf instead of strcpy in login function 
Revert "Use snprintf instead of strcpy in login function" 
Log more details when ensuring fails 
Use snprintf instead of strcpy in login function 
 
v0.17.1 (2022-10-26) 
Remove unused cancel context 
Remove unused mutex that prevented proper shutdown 
Allow sending as alias obtained via a domain alias 
Clang-format files 
Ensure constant auth timing for all external facing password checks 
Use correct Junk-Email folder name in special folder detection 
Relax vcard import checks 
 
v0.17.0 (2022-10-18) 
Fixes buffer overflow in oxcical.c 
Remove genertion of FINDERENTRYID and COMMONVIEWSENTRYID in zcore 
Use faster CI runners 
Only invoke ip_container in http when not a trusted IP 
Fix ip_container overflow for http connections through trusted proxy 
Ensure AdminRPC domains table does not act on alias domains 
Optimize gettable, queryrows and searchtable funcs 
Replace magic numbers with defines 
Remove incorrect pointer to char array var 
Use maildir to get username when generating fts indexing events 
Escape string restriction values 
Add unused define 
Optimize restriction code 
Add support for org wide search in user table 
Install event daemon and its config 
Move event daemon from admin system to service system 
Fix cgo include paths to make standalone linting happy 
Improve error logging for dac startup failures 
Log connection errors with error string 
Change connection established log to debug 
Add login audit to zcore 
Release all services 
Fix shadowed var resulting in midb crash 
Get the real ip from the x-real-ip HTTP Header 
Fix unused return value warnings 
Log socket src when connecting via proxy protocol 
Add proxy protocol whitelist to pop3 
Add proxy protocol whitelist to imap 
Add split function to util lib 
Replace config_file magic numbers with defines 
Fix warnings 
Fix typo in resource enum 
Fix parsing of inline pictures for multipart/mixed messages 
Apply updated code format rules for clang 12 
Bump clang to 12 in CI 
Use improved clang-tidy to junit converter 
Disable linter for readability magic numbers 
Integrate clang-tidy checks into CI 
Compare password using sodium_memcmp function 
Fix shadow warning 
Add support for PROXY protocol in pop3 
Add support for PROXY protocol in imap 
Add build support for libproxyprotocol 
Add libproxyprotocol 
Fix some typos 
Fix underlinking treewide and enable more compile/link warnings 
Enable additional compiler feature flags for security 
Switch build to use GCC 10 to prepare for ASLR 
Bring back compiler optimization in release builds 
Clang-format unformatted files 
Fix failed to cast warnings 
Fix incorrect logical operator usage 
Run clang-format on unformatted files 
Fix "fail" typo in error messages 
Print SQL errors in case of query failure 
Give feedback if the query exceeds the limit 
Move fetch keys to common util 
Move restriction function to common util 
Print SQL errors in case of query failure 
Move fetch admin function to common util 
Give feedback if the query exceeds the limit 
Move form_where_clause function to common util 
Fix warning about MACRO being redefined 
 
v0.16.0 (2022-08-23) 
Fix invalid memory access in restriction check 
Improve logging of new incoming connections 
Improve logging of authentication with password failures 
Fix SQL regression when fetchin mlist display name 
Use real mlist display name in nspi and zcore 
Revert "Use real mlist display name in nspi and zcore" 
Optimize org_table functions 
Create macros for magic numbers and use snprintf 
Optimize mlist_table functions 
Create macros for magic numbers and use snprintf 
Optimize user_alias_table functions 
Create macros for magic numbers and use snprintf 
Use real mlist display name in nspi and zcore 
Add different ensure fail conditions 
Don't fail if exp does not exist 
Add "display" field for mlist table 
Don't use quotes in cfg files 
Change func signature to uint8_t instead of char 
Return the correct number of copied chars 
Copy the remaining plain text to the html pointer 
Add editorconfig for new mlist_expand bounce templates 
Improve wording in bounce messages 
Fix typo in error message 
Add support for organization wide mlist expansion 
Create macros for same consts 
Add query_rows_ex function 
Add count of aliases and domains to table 
Enable mlist_expand hook for delivery 
Fix potential infinite loop in mlist row update 
Fix crash when updating mlist row with anything which is not a string array 
Dereference string array pointers in mlist 
Always install entitled_users plugin config 
Add cfg files for entitled_users 
Use libsodium to generate a random value 
Fix string overflow in users table when creating mlist 
Add abkt aliases vi symbolic links and improve docs 
Implement function "nsp_interface_get_templateinfo" for exchange nsp 
Fix sql query failure due to missing space 
Don't count aliases as active users 
Resolve warnings in related files 
Don't encapsulate plain text in  tag  
Add hescape library 
Remove incorrect parentheses in RFC822 FETCH args 
 
v0.15.0 (2022-07-14) 
Aggregate all orders before comparing 
Don't fail on parsing error, skip entry instead 
Don't compare username to customer_login 
Add missing NULL checks to method var 
Bring back anti spam plugin based on headers 
Fix typo 
Add adminrpc table storing active users of an org 
Use active users to ensure in entitled_users 
Remove "contact system admin" string 
Add function to get active users of an org 
Upgrade ttlcache from v2 to v3 
Update oidc-go to v0.3.4 
Skip  HTML tag and trim white spaces  
Don't change messages's uid on notification change 
Fix endless loop when parsing ical empty lines 
Always perform entitled_users check in zcore 
Change command log to verbose 
Don't clear mid if midb result is successful 
Add configuration support 
Implement ensure functionality 
Use entitled users in pop3 
Use entitled users in imap 
Use entitled users in http 
Use entitled users in zcore 
Add function to get organization from username 
Bootstrap entitled users plugin 
Properly format markdown table for domain privilege bits 
Remove domain subsystem plugin 
Remove unused archive system 
Remove obsolet archive_agent plugin 
Return org table domains sorted 
Add Domain privlege bit VRYFYD 
Remove "Sender" in mail header when user chooses alias as the "From" 
Avoids 64bit integer overflow when the message is going to be delivered in a deferred way in function 'rop_submitmessage' 
Fix simple warnings 
Add suffix search to adminrpc 
Unload memory after flag sync is done 
Update domain privilige bit docs 
Fix crash when processing flag sync error 
Remove obsolete billing plugin 
Update shared e4a Go library to latest 
Use entitlement for license claim aggregation 
Fix regression when formatting EX locinfo to string 
 
v0.14.2 (2022-05-02) 
Fix segfault on ensure check while internal claim refresh 
Fix privilege bit value documentation 
 
v0.14.1 (2022-04-20) 
Reformat C code treewide to allow 200 chars per line 
Increase allowed line length to 200 for C code 
Allow user aliases as "From" address while message submission 
Fix const char warning and clang-format 
Set PR_TODO_ITEM_FLAGS to zero in CompleteFlag 
 
v0.14.0 (2022-04-14) 
Improve flag_sync debug logging 
Bump Go version to Go 1.18 
Enable flag_sync sevice plugin for midb on install 
Call flag sync service on midb message flag changes 
Add flag sync between midb and exmdb 
Implement flag_sync SetFlag and CompleteFlag handlers 
Implement flag_sync SetLastVerb handler 
Implement flag_sync plugin basics 
Introduce new flag_sync service 
Ensure to free oidc c result error char if any i set 
Refactor Go code to be able to share code 
Fix calendar item sub type parsing 
Use clang-format to clean-up unformatted files 
Add 'forwarded' flag support for IMAP 
 
v0.13.0 (2022-04-04) 
Fix missing bounce template variables 
Use crlf line breaks for all bounce templates 
Use complete set of fields in bounce templates 
Remove duplicated notify bounce messages 
Fetch user id with SRV_PASSWORD logon method 
Improve English text of built-in mail message templates 
Remove all built-in non ascii message templates 
Only ensure zcore logon when forced 
Don't log error if the pcpid item already exists 
Fix warnings and typos 
Add entitlement checks to zcore 
Add entitlement checks to http 
Add entitlement checks to pop3 
Add entitlement checks to imap 
 
v0.12.0 (2022-03-31) 
Avoid installing imap_code.txt data file twice 
Keep existing meeting request participants on modify 
Require x5c claim in offline license certificate licenses 
Move static functions to the same place 
Add fallback search for locale 
Fix locale fallback function 
Initialize entitlement in zcore, dac service at startup 
Add license validation 
Use proper entitle SSE event names 
Initialize entitlement in http, imap and pop3 service at startup 
Pass build version correctly to entitlment library 
Fix simple warnings 
Add fallback to locale search 
Bootstrap entitlement 
Remove function "respond_empty" in mod_activesync plugin 
Build with Go 1.17 
Use CI token for internal Go dependencies 
Update translations to the languages we actually want to maintain 
Remove fixed folder and imap language catalogs and use the built ones 
Add Gettext translation support for folder names 
Clang-format file 
Fix array out of bounds error 
Fix invalid comparison with proper assignment 
Fix alias log parameter 
Fix non void no return warnings 
Do not clean user info when it is NULL 
Check if the user id in the session matches the db 
Add support for PT_MV_STRING in message content restriction 
Remove pproptags of FTS_ITEM in "fts engine" 
Fix invalid comparison of uint with NULL 
Fix log messages 
Fix incorrect pointer and integer comparison 
Fix result of an assignment as a condition warning 
Fixes simple bug 
Changes schema of function "zarafa_server_messageidtoentryid" 
Fix warnings 
Check unload store result and properly log errors 
Do not set config values 
Don't save settings to the config file 
Send access denied error code 
Fix simple warnings 
Add user access check function 
 
v0.11.0 (2022-03-08) 
Add new parameter b_rule when evaluating message restrictions 
Fix warnings in fastcgi 
Add logging to fastcgi 
Add redis error handling and retry mechanism 
Fix assignment warnings 
Format file with clang-format 
Clean-up remaining old style logging 
Fixes  in moh_nsp, "[MS-OXNSPI] 2.2.9.2 ID Type is the constant 0x87" should be error 
Add PROP_TAG_DIRECTORY to store object in zcore 
 
v0.10.0 (2022-02-28) 
Integrate fts functionality into exmdb_provider 
Make common_util_get_username_from_id availabe for use 
Add hiredis C library as third party 
Looko for decendant folders truly recursive 
Fix double list pointer use in midb 
Add debug log when user storage files are created 
Fix grammar in error messages 
Fix syntax error in SQL query 
Fix parameter order in function call 
Add msync command to sync db with eml 
Add unload_db result to response 
Move non static functions bellow static functions 
Require number of imap 'APPEND' commands to be 3 or more 
Include exmdb server response code in internal server response log message 
Don't send cryptic error e-mails 
Set max tries to wait for common utils init 
Increment plast_propid after parsing appointment 
Write to the socket only when the cmd is completed 
Fix typos to clarify imap error messages 
Log if a command in midb fails to run 
Remove indexer daemon 
Add PR_ACCESS for contents table object in zcore 
Filters alias addresses in 'direct_user_list' and 'user_table' of 'management' plugin 
Remove obsolete top level redirect FastCGI configuration 
Pass all headers to FastCGI client 
Convert remaining DOS line endings in .c .and .h files to Unix line endings 
Fixes strptime format string in imap 
Extracts time from 'Received' MIME field for 'APPEND' command 
Include version and build date in build outputs 
Fix typo in enum value 
Initialize length before getting buffer 
Add en-gb locale translations where missing 
Log failed rpc responses 
Log when attempting to open a database fails 
Increase storage table vMap limit to 4095 
Increase internal exmdb provider thread wait limit from 5 to 20 
Increase internal midb db waiting thread limit from 5 to 20 
Log all IMAP BAD literal size too large errors 
Log debug details when file pointer ulimit (rlimit) is too low at startup 
Add PROP_TAG_ATTACHMENTHIDDEN to inline attachments 
Remove thumnail service rewrite 
Fix parameter in hash table add function call 
Allow 64k storage table sub directories 
Fix incorrect memory allocation in RTF parser 
Fix typo in word sibling 
Check if log level is enabled before logging 
Change custom log functions to MACROS 
Update hash tables' documentation 
Use enum errors in remaining hash table functions 
Add enum error codes to hash table 
Dynamically enlarge long hash tables 
Remove obsolete code to enlarge ip4 tables 
Dynamically enlarge ip4 hash tables 
Remove obsolete code to enlarge str tables 
Dynamically enlarge str hash tables 
Remove obsolete code to enlarge int tables 
Dynamically enlarge int hash tables 
Adds UTC timezone definition to MAPI object when parsing all-day-event meeting request 
Fixes all-day-event bug in oxcical.c 
Frees fastcgi socket to avoid socket leaks in mod_activesync 
Fixes socket and memory leaks in mod_activesync 
Only register event proc uppon successful loading 
Improve logging message when plugin fails to load 
Change config name to fix a typo 
Add rewrite for thumbnail service 
Add missing exmdb_client_get_delegate_list to exchange_emsmdb 
 
v0.9.2 (2022-01-04) 
Build without compiler optimizations 
Allow override of compiler flags 
 
v0.9.1 (2021-12-30) 
Do not store NULL objects 
Use the right variable to create the path 
Explicitly return true 
Prevent race condition when stopping RPC parser 
Fixes recurrence parsing error in oxcical.c 
 
v0.9.0 (2021-12-20) 
Fix http segfault when context is NULL for incoming requests from Outlook 
Automatically update message's PR_MESSAGE_DELIVERY_TIME if its UNSENT bit is set in PR_MESSAGE_FLAGS 
Add ORDER BY clause to search table functions 
Add order by clause to queryrows functions 
Check and log mkdir errors 
Improve debug build support 
Add missing semicolon 
Increase char arrays to fit generated passwords 
Fix translation of the German junk folder 
Config variable must be a character pointer 
Properly shutdown the console_server 
Only initialize services after parsing all configs 
Make sure we free all services on all errors 
Use pthread_cond_waitd to sleep threads 
Improve OIDC library logging by adding log level support 
Hashed arrays must fit the required hash length 
Switch CI compiler from gcc-9 to clang-10 
Switch CI linter format check stage from Debian to Ubuntu 
Fix build with gcc 10 and newer 
Compile with -Wno-format-nonliteral 
Fix build with modern compile 
Do not expose the hash algorithm outside util 
Replace MD5 hashing with yescrypt 
Do not expose the user exists to the clients 
Install a couple of missing data files to avoid error log messages on startup 
Don't send a NULL pointer to oidc auth 
Validate OIDC session if it already has one 
Add logoff dispatch to rpc_parser 
Add an expiration timestamp to every session 
Add logoff function 
Add logging to the logon function in zcore 
Add support for multiple sessions in zcore 
Add config for specific umask and gid for sockets 
Remove calls to chmod 
Remove umask calls 
Set appropriate log level 
Don't print both prefix and tag if they are equal 
Change prefix separator to a colon 
Add a prefix to log messages' scope for execs 
Enable log lvl runtime check 
Flip log level values 
Remove log plugin and system log 
Remove log plugin references 
Replace log_info function with e4a log in rsyncd 
Replace log plugin with e4a log in smtp parser 
Replace log plugin with e4a log in smtp deliverer 
Replace log plugin with e4a log in relay agent 
Replace log plugin with e4a log in php mailbox 
Replace log plugin with e4a log in message ins 
Replace log plugin with e4a log in mail approving 
Replace log plugin with e4a log in smtp dispatch 
Replace log plugin with e4a log in exmdb local 
Replace log plugin with e4a log in domain log 
Replace log plugin with e4a log in transporter log 
Replace log plugin with e4a log in alias log 
Replace log plugin with e4a log in smtp clone 
Replace log plugin with e4a log in pop3 
Replace log plugin with e4a log in imap 
Replace log plugin with e4a log in common util 
Replace log plugin with e4a log in http parser 
Add e4a_log function with level param 
Replace log_plugin direct usage with e4a_log 
Separate the log's fields with a space 
Rename tag to scope 
Remove brackets from log tag 
Add documentation for the e4a logger 
Add env variable to set time and src when logging 
Set a log tag per target 
Append log info at the tail of the message 
Move timestamp to the start of the log 
 
v0.8.0 (2021-11-12) 
Modifies PROP_TAG_MESSAGEFLAGS in exmdb_provider and zcore 
Allow OIDC to be disabled and disable by default 
Properly set oidc log tag 
Increase OIDC discovery default expiration to 1 hour 
Implement oidc service plugin and use it in zcore 
Implements https://gitlab.com/exchange4all/system/incubating/c-system/-/issues/110 
Log Debug and Verbose messages with right level 
Rename folder to Exchange4all 
Remove debug_info function 
Replace debug_info with e4a logging 
Replace printfs in service-system with e4a logging 
Replace printfs in mta-system with e4a logging 
Replace printfs in mra-system with e4a logging 
Replace printfs in library with e4a logging 
Replace printfs in core-system with e4a logging 
Replace printfs in archive-system with e4a logging 
Replace printfs in plugins with e4a logging 
Replace printfs in event with e4a logging 
Replace printfs in adminrpc with e4a logging 
Fixes spelling mistake in exmdb_provider.cfg 
Fixes spelling mistakes in exmdb_provider service plugin 
Add logging to admin_interface 
Add logging to adminrpc rpc_parser 
Add adminrpc logging tag 
Add logging to alias_table 
Add logging to class_table 
Add logging to common_util 
Add logging with direct_user_list 
Add logging to domain_list 
Add logging to domain_row 
Add logging to domain_table 
Add logging to folder_table 
Add logging to group_table 
Add logging to management main 
Add logging to mlist_table 
Add logging to org_table 
Add logging permission_table 
Add logging to storage_table 
Add logging to user_alias_table 
Add logging to user_class_list 
Add logging to user_list 
Add logging to user_table 
Add logging to management plugin 
Fixes connection leaks of RPC-OVER-HTTP out channel 
Allowes the property PROP_TAG_CONVERSATIONID of message obeject to be modifiable when it's new 
Add e4a logging 
Move zf_log to the library folder 
Change zf_log ctx to allow more granular control 
Format zf_log to fit our style 
Use find to be less shell dependant 
 
v0.7.0 (2021-10-26) 
Fixes the bug when parsing PidLidIntendedBusyStatus from ical 
Mod activesync improvement 
Adds windows_size and more_available parameters into zcore ICS context config function to control size of returned collection 
Install ip_filter configuration as found in source 
Fixes bug of unloading chunked data of request in mod_fastcgi.c 
Moves "VALARM" paragraph into "VEVENT" in oxcical.c 
Addes (special-use) support to LSUB command of IMAP 
Fix bugs in (special-use) of LIST command 
Increase default FASTCGI_MAX_SIZE 
Prevent message total size of store to be less than 0 
duplicated "sqlite3_prepare_v2" will cause serious memory leaks of "dac" process 
Make sure the buffer has enough space 
Sort user alias get_table result by aliasname 
Do not perform string ops before initializing it 
Add zf_log logging libary 
Make sure the error code is valid 
Slightly increase buffer to fit null terminator 
Increase the maximum byte size of various users table fields to 128 
Add database migration for larger cols in users table 
Use the correct structure in the mysql function 
Sort group table by groupname 
Sort org table by title 
Switch primary MariaDB database storage engine to Aria 
Add MySQL DB migration for domain without end date support 
Discard "NOT NULL" restriction on "end_day" column of "domains" table in "management" plugin 
 
v0.6.0 (2021-09-15) 
Addes error logging in mod_activesync plugin 
Auto use MySQL unix socket for Goose 
Move database initialization to migration and implement it using Goose 
Add goose database migration tool 
Add -p to mkdir to allow install to exisiting 
Fixes missing parameter of printf in file main.c of zcore 
Change default permission of var data 
Fix bug of amidb, wchich could causes SIGSEGV in function "scan_work_func" 
Create data del.queue for dac user data delete 
Implement X-ActiveSync-Ping-FolderID ping mechanism in mod_activesync 
Sort user table gettable result by username 
Sort domain table gettable results by domainname 
Cure buffer overflows in imap fetch command 
Add privilege bit names 
Fix format and definition of privilege bits 
Fix property PR_USER_NAME of store object in zcore 
Change length of X-E4A-ZCORE-SESSION to 19 in mod-activesync 
Add doc for privilege_bits of user and domain 
Compare all bytes of password buffer in zarafa_server_logon 
Compare all bytes of password buffer in zarafa_server_logon 
Add time-constant comparison in zarafa_server_logon 
Change X-E4A-ZCORE-SESSION to X-E4a-Zcore-Session 
Change header ZCORE-SESSION in mod_activesync to X-E4A-ZCORE-SESSION and add usleep in "zarafa_server_logon" 
Add a new "service password" mechanism in zcore to ensure granted clients to logon zcore with that password 
Change "warning" to "notice" in "str_filter" and "ip_filter" service plugin 
 
v0.5.0 (2021-08-19) 
Add "environ" into "execve" to pass parent env varaiables into freebusy process in zcore 
Fix freebusy command bugs in zcore 
Modify functions "make_gmtime", "make_gmtm" to libc standard "timegm", "gmtime_r" 
Disable compiler optimziations for timezone library 
Move timezone code to dedicated lib 
Change "close(dirp)" to "closedir(dirp)" 
Update mod_activesync default configuration so it actually works 
Also forward mod_activesync HTTP headers in Apache format 
Change "bussiness_phone" to "business_phone" 
Set listen backlog to 1024 for all listening sockets 
Fix stupid bugs in adac_processor.c 
Add FastCGI header forwarding wildcard support and use standard Apache header format for all forwarded headers 
Fix saving rule error in zcore, convert zrule to normal rule 
Make sure the buffer is NULL by default 
Use the correct b_private 
Fetch number of threads from config file 
Fail if message count is zero or message is NULL 
Fail if we can't set permission 
Fail if we receive an unexcepted table type 
Use the right string for SSL_Write 
Fail if we find unexpected SMTP MODE 
Fail if we get unexpected forward data 
Fail on default 
Assign value to sql_len 
Initialize variable before performing operations 
Add missing get_rpc_info function call 
Initialize pbin to NULL 
Add missing unicode check 
Return false on default 
Add default value to num variable 
Inialize pvalue to NULL so we avoid errors 
Throw convert error if picture type is unexpected 
Add sanity else check 
Add 127.0.0.1 to ip filter default white list 
Fix indentation white space in http data files 
Add FORCE option to initialize script 
Don't put a connection that doesn't exist 
Make sure the strings aren't NULL 
Don't bother getting props if prop array is NULL 
Check if ptable_ids is not NULL 
Add missing error return 
Function should fail if value is NULL 
Remove impossible to meet condition 
Run for loop inside if to avoid angry compiler 
Check if pmsg1 is not NULL before using it 
Make sure the messages aren't NULL 
Use the correct rule variable 
Make sure nodes and parent nodes aren't NULL 
tmp should never be NULL 
 
v0.4.0 (2021-08-04) 
Remove debug from changelog script 
Add option for outbound SMTP delivery via smart host 
Create storage folder world readable by default 
Add GDB support to bin script 
Fix wrong rewrite for as endpoint 
Initialize pinfo variable 
Add missing greater than comparison 
Initialize lastch and check if it is not zero 
Initialize tag_access before performing operations 
Do not allow negative tape units 
Fail in case of unexpected value in switch 
Assign value to correct propval 
Fail if the condition is different than expected 
Set correct default path of ActiveSync implementation endpoint for mod_activesync 
Return false on default branch 
Fetch row before trying to use value 
Assign pextfwddlgt and use ext_actions instead 
Return false on default branch as well 
Always assign a value to pnode_last 
Read DATA_FILE_PATH from config file instead of hard code "../data" 
Move from herculiz naming to Exchange 4 All naming treewide 
Move rest of "grid" naming to Exchange 4 All naming 
Fix simple bug in "emsmdb_interface_connect_ex" 
Update push endpoint to use new location 
Rectify spelling errors "rinning" in prompting string of cidb, event and timer 
Link moh_nsp with exchange_nsp so it does not crash 
Resolve symbolic links for default BASEDIR 
Fix invalid BASEDIR export for service 
 
v0.3.0 (2021-07-26) 
Use build system to create distinct so files for plugins 
Remove "rpc_lib" from repository and move "ndr.c" to "common" library 
Install amidb service 
Use service.cfg for amidb service 
Strip RPATH in CI builds but not in local builds 
Use public endpoint of eas 
Install smtp data folder 
Set smtp service to inbound only mode by default 
Install mysql_adaptor service into smtp 
IP bit range should not be higher than 32 
Make sure psorts count isn't zero 
Remove useless parameter in function "pdu_processor_auth_request" 
Remove ntlm support from MS-RPC 
Make style more consistent with overall codebase 
Check for null to avoid potential seg fault 
Use the length of the property to allocate buffer 
Make sure we actually have data to write 
Check if we actually found items in the list file 
By default set number of read bytes to zero 
Assign missing variables on unexpected SMTP error 
Initialize num variable 
Treat unexpected SMTP error as a permanent error 
Make sure array contains null character by default 
Assing multi_num to zero if no valid type is found 
Compare the correct variable 
Check permissions by default 
Check permissions after they are retrieved 
Don't write garbage if status won't fit checks 
Use the correct variable in the while loop 
Assign result to status instead of subtracting 
Initialize pb_aync earlier 
Result should contain a proper value 
Initialize variable before comparing 
Initialize sad count variable 
Initialize array's first position 
Assume UTC by default for DTEND 
Frequency value should always be valid 
Check line_len before performing bitwise operation 
Initialize found_tag to prevent garbage comparison 
Make sure length never has garbage after switch 
Initialize lastch variable 
Remove nonsensical garbage comparison 
Don't shift negative values as its undefined 
 
v0.2.1 (2021-07-20) 
Require CMake 3.14 or higher 
Enable relative paths in the build RPATH 
Publish dist artifact as generic package when its a tag 
 
v0.2.0 (2021-07-20) 
Add trailing slash to path list paths 
Use bin script wrapped command to timer/submit.php in default config 
Add missing white space 
Install additional scripts for initialization 
Create storage base folder 
Add initialize script for storage initialization 
Delegate configured env variables to sub scripts 
Use whole scripts folder in development setup example 
Move fmtstorage script to scripts folder 
Add sanitizer and tools support to CMake build script 
Add options to control build script behavior 
Add clang-tidy script and config 
Add ARGS to build script to make setting cmake options possible 
Santize the fmtstorage script 
Make the create_queue script less dangerous 
Always create log file at log_plugin run 
Remove FILES_NUM setting from log_plugin 
Remove date part from log_plugin log file names 
Remove log_plugin clean up thread 
Add env variable to set log_plugin to always flush 
Install missing cfg files for delivery and smtp daemons 
Fix imap data folder install 
Clear RUNNING_IDENTITY from all cfg files on install 
Fix syntax error on MySQL files 
Create /run dir in binscript when it does not exist 
Also remove rpath from libraries and plugins 
Use mysqlclient via pkg-config as build dependency 
Remove supervisor from admin-system 
Rewrite guid.c to get rid of GPL license and fix stupid bug in util.c 
Install additional required config and data files 
Update default log_plugin log file location treewide 
Install delivery service by default 
Use windows line endings for remote_postman messages 
Use windows line endings for exmdb_local messages 
Rewrite qp_decode and qp_decode_ex without GPL license 
Install smtp service by default 
Remove bogus umask and reformat queue create helper script 
Install pop3 service by default 
Keep track of characters written when reading RTF 
Assign variable to make sure array access is valid 
Install imap service by default 
Merge event_proxy features from mra-system 
Add CI only rules to run CI on specific cases only 
Don't return garbage status by default 
Check for NULL before returning 
Assign var to make sure it won't return garbage 
Fix stupid bugs in all "exmdb_client.c" 
Install MySQL database init SQL script 
Install empty cidb_list as required 
Install midb service 
Fix up develop setup symlink fu 
Don't crash httpd if opening rewrite.txt fails 
Add more steps to the development setup instructions 
Run CI stages in parallel 
Install freebusy and rtfkit tools 
Allow e4a script to run service tools 
Add missing dev setup step for libexec 
Remove obsolete session service 
Remove mpc anonymous_keyword plugin 
Use clang-10 for static analyzer by default 
Fix copy/paste depenency issue for libz 
Add scope to README 
Fix installer so it installs to non-existing directory 
Add hint about scan-build to README 
Support to run scan-build directly 
Add a brief dev setup instructions 
Switch over to e4a paths treewide 
Change default install into system subdirectory 
Remove preconfirured defaults for old webmeetings 
Remove pre-configured defaults for obsolete admin-ui 
Add gitlab-ci.yml to .gitignore 
Remove built-in antispam and antivirus support 
Enable mod_proxy http hpm plugin by default 
Keep admin pan broadcast plugin disabled by default 
Minor formatting & shellcheck fixes 
 
v0.1.1 (2021-07-02) 
Include distro and platform in dist tarball name 
Add install helper and utilities 
Rename duplicated sqlite3 script to avoid filename conflict