CHANGELOG
Unreleased
v5.0.1 (2025-06-04)
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