Zum Inhalt

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</li> <li>Don't change messages's uid on notification change</li> <li>Fix endless loop when parsing ical empty lines</li> <li>Always perform entitled_users check in zcore</li> <li>Change command log to verbose</li> <li>Don't clear mid if midb result is successful</li> <li>Add configuration support</li> <li>Implement ensure functionality</li> <li>Use entitled users in pop3</li> <li>Use entitled users in imap</li> <li>Use entitled users in http</li> <li>Use entitled users in zcore</li> <li>Add function to get organization from username</li> <li>Bootstrap entitled users plugin</li> <li>Properly format markdown table for domain privilege bits</li> <li>Remove domain subsystem plugin</li> <li>Remove unused archive system</li> <li>Remove obsolet archive_agent plugin</li> <li>Return org table domains sorted</li> <li>Add Domain privlege bit VRYFYD</li> <li>Remove "Sender" in mail header when user chooses alias as the "From"</li> <li>Avoids 64bit integer overflow when the message is going to be delivered in a deferred way in function 'rop_submitmessage'</li> <li>Fix simple warnings</li> <li>Add suffix search to adminrpc</li> <li>Unload memory after flag sync is done</li> <li>Update domain privilige bit docs</li> <li>Fix crash when processing flag sync error</li> <li>Remove obsolete billing plugin</li> <li>Update shared e4a Go library to latest</li> <li>Use entitlement for license claim aggregation</li> <li>Fix regression when formatting EX locinfo to string</li> </ul> <h2 id="v0142_2022-05-02">v0.14.2 (2022-05-02)<a class="headerlink" href="#v0142_2022-05-02" title="Permanent link">¶</a></h2> <ul> <li>Fix segfault on ensure check while internal claim refresh</li> <li>Fix privilege bit value documentation</li> </ul> <h2 id="v0141_2022-04-20">v0.14.1 (2022-04-20)<a class="headerlink" href="#v0141_2022-04-20" title="Permanent link">¶</a></h2> <ul> <li>Reformat C code treewide to allow 200 chars per line</li> <li>Increase allowed line length to 200 for C code</li> <li>Allow user aliases as "From" address while message submission</li> <li>Fix const char warning and clang-format</li> <li>Set PR_TODO_ITEM_FLAGS to zero in CompleteFlag</li> </ul> <h2 id="v0140_2022-04-14">v0.14.0 (2022-04-14)<a class="headerlink" href="#v0140_2022-04-14" title="Permanent link">¶</a></h2> <ul> <li>Improve flag_sync debug logging</li> <li>Bump Go version to Go 1.18</li> <li>Enable flag_sync sevice plugin for midb on install</li> <li>Call flag sync service on midb message flag changes</li> <li>Add flag sync between midb and exmdb</li> <li>Implement flag_sync SetFlag and CompleteFlag handlers</li> <li>Implement flag_sync SetLastVerb handler</li> <li>Implement flag_sync plugin basics</li> <li>Introduce new flag_sync service</li> <li>Ensure to free oidc c result error char if any i set</li> <li>Refactor Go code to be able to share code</li> <li>Fix calendar item sub type parsing</li> <li>Use clang-format to clean-up unformatted files</li> <li>Add 'forwarded' flag support for IMAP</li> </ul> <h2 id="v0130_2022-04-04">v0.13.0 (2022-04-04)<a class="headerlink" href="#v0130_2022-04-04" title="Permanent link">¶</a></h2> <ul> <li>Fix missing bounce template variables</li> <li>Use crlf line breaks for all bounce templates</li> <li>Use complete set of fields in bounce templates</li> <li>Remove duplicated notify bounce messages</li> <li>Fetch user id with SRV_PASSWORD logon method</li> <li>Improve English text of built-in mail message templates</li> <li>Remove all built-in non ascii message templates</li> <li>Only ensure zcore logon when forced</li> <li>Don't log error if the pcpid item already exists</li> <li>Fix warnings and typos</li> <li>Add entitlement checks to zcore</li> <li>Add entitlement checks to http</li> <li>Add entitlement checks to pop3</li> <li>Add entitlement checks to imap</li> </ul> <h2 id="v0120_2022-03-31">v0.12.0 (2022-03-31)<a class="headerlink" href="#v0120_2022-03-31" title="Permanent link">¶</a></h2> <ul> <li>Avoid installing imap_code.txt data file twice</li> <li>Keep existing meeting request participants on modify</li> <li>Require x5c claim in offline license certificate licenses</li> <li>Move static functions to the same place</li> <li>Add fallback search for locale</li> <li>Fix locale fallback function</li> <li>Initialize entitlement in zcore, dac service at startup</li> <li>Add license validation</li> <li>Use proper entitle SSE event names</li> <li>Initialize entitlement in http, imap and pop3 service at startup</li> <li>Pass build version correctly to entitlment library</li> <li>Fix simple warnings</li> <li>Add fallback to locale search</li> <li>Bootstrap entitlement</li> <li>Remove function "respond_empty" in mod_activesync plugin</li> <li>Build with Go 1.17</li> <li>Use CI token for internal Go dependencies</li> <li>Update translations to the languages we actually want to maintain</li> <li>Remove fixed folder and imap language catalogs and use the built ones</li> <li>Add Gettext translation support for folder names</li> <li>Clang-format file</li> <li>Fix array out of bounds error</li> <li>Fix invalid comparison with proper assignment</li> <li>Fix alias log parameter</li> <li>Fix non void no return warnings</li> <li>Do not clean user info when it is NULL</li> <li>Check if the user id in the session matches the db</li> <li>Add support for PT_MV_STRING in message content restriction</li> <li>Remove pproptags of FTS_ITEM in "fts engine"</li> <li>Fix invalid comparison of uint with NULL</li> <li>Fix log messages</li> <li>Fix incorrect pointer and integer comparison</li> <li>Fix result of an assignment as a condition warning</li> <li>Fixes simple bug</li> <li>Changes schema of function "zarafa_server_messageidtoentryid"</li> <li>Fix warnings</li> <li>Check unload store result and properly log errors</li> <li>Do not set config values</li> <li>Don't save settings to the config file</li> <li>Send access denied error code</li> <li>Fix simple warnings</li> <li>Add user access check function</li> </ul> <h2 id="v0110_2022-03-08">v0.11.0 (2022-03-08)<a class="headerlink" href="#v0110_2022-03-08" title="Permanent link">¶</a></h2> <ul> <li>Add new parameter b_rule when evaluating message restrictions</li> <li>Fix warnings in fastcgi</li> <li>Add logging to fastcgi</li> <li>Add redis error handling and retry mechanism</li> <li>Fix assignment warnings</li> <li>Format file with clang-format</li> <li>Clean-up remaining old style logging</li> <li>Fixes in moh_nsp, "[MS-OXNSPI] 2.2.9.2 ID Type is the constant 0x87" should be error</li> <li>Add PROP_TAG_DIRECTORY to store object in zcore</li> </ul> <h2 id="v0100_2022-02-28">v0.10.0 (2022-02-28)<a class="headerlink" href="#v0100_2022-02-28" title="Permanent link">¶</a></h2> <ul> <li>Integrate fts functionality into exmdb_provider</li> <li>Make common_util_get_username_from_id availabe for use</li> <li>Add hiredis C library as third party</li> <li>Looko for decendant folders truly recursive</li> <li>Fix double list pointer use in midb</li> <li>Add debug log when user storage files are created</li> <li>Fix grammar in error messages</li> <li>Fix syntax error in SQL query</li> <li>Fix parameter order in function call</li> <li>Add msync command to sync db with eml</li> <li>Add unload_db result to response</li> <li>Move non static functions bellow static functions</li> <li>Require number of imap 'APPEND' commands to be 3 or more</li> <li>Include exmdb server response code in internal server response log message</li> <li>Don't send cryptic error e-mails</li> <li>Set max tries to wait for common utils init</li> <li>Increment plast_propid after parsing appointment</li> <li>Write to the socket only when the cmd is completed</li> <li>Fix typos to clarify imap error messages</li> <li>Log if a command in midb fails to run</li> <li>Remove indexer daemon</li> <li>Add PR_ACCESS for contents table object in zcore</li> <li>Filters alias addresses in 'direct_user_list' and 'user_table' of 'management' plugin</li> <li>Remove obsolete top level redirect FastCGI configuration</li> <li>Pass all headers to FastCGI client</li> <li>Convert remaining DOS line endings in .c .and .h files to Unix line endings</li> <li>Fixes strptime format string in imap</li> <li>Extracts time from 'Received' MIME field for 'APPEND' command</li> <li>Include version and build date in build outputs</li> <li>Fix typo in enum value</li> <li>Initialize length before getting buffer</li> <li>Add en-gb locale translations where missing</li> <li>Log failed rpc responses</li> <li>Log when attempting to open a database fails</li> <li>Increase storage table vMap limit to 4095</li> <li>Increase internal exmdb provider thread wait limit from 5 to 20</li> <li>Increase internal midb db waiting thread limit from 5 to 20</li> <li>Log all IMAP BAD literal size too large errors</li> <li>Log debug details when file pointer ulimit (rlimit) is too low at startup</li> <li>Add PROP_TAG_ATTACHMENTHIDDEN to inline attachments</li> <li>Remove thumnail service rewrite</li> <li>Fix parameter in hash table add function call</li> <li>Allow 64k storage table sub directories</li> <li>Fix incorrect memory allocation in RTF parser</li> <li>Fix typo in word sibling</li> <li>Check if log level is enabled before logging</li> <li>Change custom log functions to MACROS</li> <li>Update hash tables' documentation</li> <li>Use enum errors in remaining hash table functions</li> <li>Add enum error codes to hash table</li> <li>Dynamically enlarge long hash tables</li> <li>Remove obsolete code to enlarge ip4 tables</li> <li>Dynamically enlarge ip4 hash tables</li> <li>Remove obsolete code to enlarge str tables</li> <li>Dynamically enlarge str hash tables</li> <li>Remove obsolete code to enlarge int tables</li> <li>Dynamically enlarge int hash tables</li> <li>Adds UTC timezone definition to MAPI object when parsing all-day-event meeting request</li> <li>Fixes all-day-event bug in oxcical.c</li> <li>Frees fastcgi socket to avoid socket leaks in mod_activesync</li> <li>Fixes socket and memory leaks in mod_activesync</li> <li>Only register event proc uppon successful loading</li> <li>Improve logging message when plugin fails to load</li> <li>Change config name to fix a typo</li> <li>Add rewrite for thumbnail service</li> <li>Add missing exmdb_client_get_delegate_list to exchange_emsmdb</li> </ul> <h2 id="v092_2022-01-04">v0.9.2 (2022-01-04)<a class="headerlink" href="#v092_2022-01-04" title="Permanent link">¶</a></h2> <ul> <li>Build without compiler optimizations</li> <li>Allow override of compiler flags</li> </ul> <h2 id="v091_2021-12-30">v0.9.1 (2021-12-30)<a class="headerlink" href="#v091_2021-12-30" title="Permanent link">¶</a></h2> <ul> <li>Do not store NULL objects</li> <li>Use the right variable to create the path</li> <li>Explicitly return true</li> <li>Prevent race condition when stopping RPC parser</li> <li>Fixes recurrence parsing error in oxcical.c</li> </ul> <h2 id="v090_2021-12-20">v0.9.0 (2021-12-20)<a class="headerlink" href="#v090_2021-12-20" title="Permanent link">¶</a></h2> <ul> <li>Fix http segfault when context is NULL for incoming requests from Outlook</li> <li>Automatically update message's PR_MESSAGE_DELIVERY_TIME if its UNSENT bit is set in PR_MESSAGE_FLAGS</li> <li>Add ORDER BY clause to search table functions</li> <li>Add order by clause to queryrows functions</li> <li>Check and log mkdir errors</li> <li>Improve debug build support</li> <li>Add missing semicolon</li> <li>Increase char arrays to fit generated passwords</li> <li>Fix translation of the German junk folder</li> <li>Config variable must be a character pointer</li> <li>Properly shutdown the console_server</li> <li>Only initialize services after parsing all configs</li> <li>Make sure we free all services on all errors</li> <li>Use pthread_cond_waitd to sleep threads</li> <li>Improve OIDC library logging by adding log level support</li> <li>Hashed arrays must fit the required hash length</li> <li>Switch CI compiler from gcc-9 to clang-10</li> <li>Switch CI linter format check stage from Debian to Ubuntu</li> <li>Fix build with gcc 10 and newer</li> <li>Compile with -Wno-format-nonliteral</li> <li>Fix build with modern compile</li> <li>Do not expose the hash algorithm outside util</li> <li>Replace MD5 hashing with yescrypt</li> <li>Do not expose the user exists to the clients</li> <li>Install a couple of missing data files to avoid error log messages on startup</li> <li>Don't send a NULL pointer to oidc auth</li> <li>Validate OIDC session if it already has one</li> <li>Add logoff dispatch to rpc_parser</li> <li>Add an expiration timestamp to every session</li> <li>Add logoff function</li> <li>Add logging to the logon function in zcore</li> <li>Add support for multiple sessions in zcore</li> <li>Add config for specific umask and gid for sockets</li> <li>Remove calls to chmod</li> <li>Remove umask calls</li> <li>Set appropriate log level</li> <li>Don't print both prefix and tag if they are equal</li> <li>Change prefix separator to a colon</li> <li>Add a prefix to log messages' scope for execs</li> <li>Enable log lvl runtime check</li> <li>Flip log level values</li> <li>Remove log plugin and system log</li> <li>Remove log plugin references</li> <li>Replace log_info function with e4a log in rsyncd</li> <li>Replace log plugin with e4a log in smtp parser</li> <li>Replace log plugin with e4a log in smtp deliverer</li> <li>Replace log plugin with e4a log in relay agent</li> <li>Replace log plugin with e4a log in php mailbox</li> <li>Replace log plugin with e4a log in message ins</li> <li>Replace log plugin with e4a log in mail approving</li> <li>Replace log plugin with e4a log in smtp dispatch</li> <li>Replace log plugin with e4a log in exmdb local</li> <li>Replace log plugin with e4a log in domain log</li> <li>Replace log plugin with e4a log in transporter log</li> <li>Replace log plugin with e4a log in alias log</li> <li>Replace log plugin with e4a log in smtp clone</li> <li>Replace log plugin with e4a log in pop3</li> <li>Replace log plugin with e4a log in imap</li> <li>Replace log plugin with e4a log in common util</li> <li>Replace log plugin with e4a log in http parser</li> <li>Add e4a_log function with level param</li> <li>Replace log_plugin direct usage with e4a_log</li> <li>Separate the log's fields with a space</li> <li>Rename tag to scope</li> <li>Remove brackets from log tag</li> <li>Add documentation for the e4a logger</li> <li>Add env variable to set time and src when logging</li> <li>Set a log tag per target</li> <li>Append log info at the tail of the message</li> <li>Move timestamp to the start of the log</li> </ul> <h2 id="v080_2021-11-12">v0.8.0 (2021-11-12)<a class="headerlink" href="#v080_2021-11-12" title="Permanent link">¶</a></h2> <ul> <li>Modifies PROP_TAG_MESSAGEFLAGS in exmdb_provider and zcore</li> <li>Allow OIDC to be disabled and disable by default</li> <li>Properly set oidc log tag</li> <li>Increase OIDC discovery default expiration to 1 hour</li> <li>Implement oidc service plugin and use it in zcore</li> <li>Implements https://gitlab.com/exchange4all/system/incubating/c-system/-/issues/110</li> <li>Log Debug and Verbose messages with right level</li> <li>Rename folder to Exchange4all</li> <li>Remove debug_info function</li> <li>Replace debug_info with e4a logging</li> <li>Replace printfs in service-system with e4a logging</li> <li>Replace printfs in mta-system with e4a logging</li> <li>Replace printfs in mra-system with e4a logging</li> <li>Replace printfs in library with e4a logging</li> <li>Replace printfs in core-system with e4a logging</li> <li>Replace printfs in archive-system with e4a logging</li> <li>Replace printfs in plugins with e4a logging</li> <li>Replace printfs in event with e4a logging</li> <li>Replace printfs in adminrpc with e4a logging</li> <li>Fixes spelling mistake in exmdb_provider.cfg</li> <li>Fixes spelling mistakes in exmdb_provider service plugin</li> <li>Add logging to admin_interface</li> <li>Add logging to adminrpc rpc_parser</li> <li>Add adminrpc logging tag</li> <li>Add logging to alias_table</li> <li>Add logging to class_table</li> <li>Add logging to common_util</li> <li>Add logging with direct_user_list</li> <li>Add logging to domain_list</li> <li>Add logging to domain_row</li> <li>Add logging to domain_table</li> <li>Add logging to folder_table</li> <li>Add logging to group_table</li> <li>Add logging to management main</li> <li>Add logging to mlist_table</li> <li>Add logging to org_table</li> <li>Add logging permission_table</li> <li>Add logging to storage_table</li> <li>Add logging to user_alias_table</li> <li>Add logging to user_class_list</li> <li>Add logging to user_list</li> <li>Add logging to user_table</li> <li>Add logging to management plugin</li> <li>Fixes connection leaks of RPC-OVER-HTTP out channel</li> <li>Allowes the property PROP_TAG_CONVERSATIONID of message obeject to be modifiable when it's new</li> <li>Add e4a logging</li> <li>Move zf_log to the library folder</li> <li>Change zf_log ctx to allow more granular control</li> <li>Format zf_log to fit our style</li> <li>Use find to be less shell dependant</li> </ul> <h2 id="v070_2021-10-26">v0.7.0 (2021-10-26)<a class="headerlink" href="#v070_2021-10-26" title="Permanent link">¶</a></h2> <ul> <li>Fixes the bug when parsing PidLidIntendedBusyStatus from ical</li> <li>Mod activesync improvement</li> <li>Adds windows_size and more_available parameters into zcore ICS context config function to control size of returned collection</li> <li>Install ip_filter configuration as found in source</li> <li>Fixes bug of unloading chunked data of request in mod_fastcgi.c</li> <li>Moves "VALARM" paragraph into "VEVENT" in oxcical.c</li> <li>Addes (special-use) support to LSUB command of IMAP</li> <li>Fix bugs in (special-use) of LIST command</li> <li>Increase default FASTCGI_MAX_SIZE</li> <li>Prevent message total size of store to be less than 0</li> <li>duplicated "sqlite3_prepare_v2" will cause serious memory leaks of "dac" process</li> <li>Make sure the buffer has enough space</li> <li>Sort user alias get_table result by aliasname</li> <li>Do not perform string ops before initializing it</li> <li>Add zf_log logging libary</li> <li>Make sure the error code is valid</li> <li>Slightly increase buffer to fit null terminator</li> <li>Increase the maximum byte size of various users table fields to 128</li> <li>Add database migration for larger cols in users table</li> <li>Use the correct structure in the mysql function</li> <li>Sort group table by groupname</li> <li>Sort org table by title</li> <li>Switch primary MariaDB database storage engine to Aria</li> <li>Add MySQL DB migration for domain without end date support</li> <li>Discard "NOT NULL" restriction on "end_day" column of "domains" table in "management" plugin</li> </ul> <h2 id="v060_2021-09-15">v0.6.0 (2021-09-15)<a class="headerlink" href="#v060_2021-09-15" title="Permanent link">¶</a></h2> <ul> <li>Addes error logging in mod_activesync plugin</li> <li>Auto use MySQL unix socket for Goose</li> <li>Move database initialization to migration and implement it using Goose</li> <li>Add goose database migration tool</li> <li>Add -p to mkdir to allow install to exisiting</li> <li>Fixes missing parameter of printf in file main.c of zcore</li> <li>Change default permission of var data</li> <li>Fix bug of amidb, wchich could causes SIGSEGV in function "scan_work_func"</li> <li>Create data del.queue for dac user data delete</li> <li>Implement X-ActiveSync-Ping-FolderID ping mechanism in mod_activesync</li> <li>Sort user table gettable result by username</li> <li>Sort domain table gettable results by domainname</li> <li>Cure buffer overflows in imap fetch command</li> <li>Add privilege bit names</li> <li>Fix format and definition of privilege bits</li> <li>Fix property PR_USER_NAME of store object in zcore</li> <li>Change length of X-E4A-ZCORE-SESSION to 19 in mod-activesync</li> <li>Add doc for privilege_bits of user and domain</li> <li>Compare all bytes of password buffer in zarafa_server_logon</li> <li>Compare all bytes of password buffer in zarafa_server_logon</li> <li>Add time-constant comparison in zarafa_server_logon</li> <li>Change X-E4A-ZCORE-SESSION to X-E4a-Zcore-Session</li> <li>Change header ZCORE-SESSION in mod_activesync to X-E4A-ZCORE-SESSION and add usleep in "zarafa_server_logon"</li> <li>Add a new "service password" mechanism in zcore to ensure granted clients to logon zcore with that password</li> <li>Change "warning" to "notice" in "str_filter" and "ip_filter" service plugin</li> </ul> <h2 id="v050_2021-08-19">v0.5.0 (2021-08-19)<a class="headerlink" href="#v050_2021-08-19" title="Permanent link">¶</a></h2> <ul> <li>Add "environ" into "execve" to pass parent env varaiables into freebusy process in zcore</li> <li>Fix freebusy command bugs in zcore</li> <li>Modify functions "make_gmtime", "make_gmtm" to libc standard "timegm", "gmtime_r"</li> <li>Disable compiler optimziations for timezone library</li> <li>Move timezone code to dedicated lib</li> <li>Change "close(dirp)" to "closedir(dirp)"</li> <li>Update mod_activesync default configuration so it actually works</li> <li>Also forward mod_activesync HTTP headers in Apache format</li> <li>Change "bussiness_phone" to "business_phone"</li> <li>Set listen backlog to 1024 for all listening sockets</li> <li>Fix stupid bugs in adac_processor.c</li> <li>Add FastCGI header forwarding wildcard support and use standard Apache header format for all forwarded headers</li> <li>Fix saving rule error in zcore, convert zrule to normal rule</li> <li>Make sure the buffer is NULL by default</li> <li>Use the correct b_private</li> <li>Fetch number of threads from config file</li> <li>Fail if message count is zero or message is NULL</li> <li>Fail if we can't set permission</li> <li>Fail if we receive an unexcepted table type</li> <li>Use the right string for SSL_Write</li> <li>Fail if we find unexpected SMTP MODE</li> <li>Fail if we get unexpected forward data</li> <li>Fail on default</li> <li>Assign value to sql_len</li> <li>Initialize variable before performing operations</li> <li>Add missing get_rpc_info function call</li> <li>Initialize pbin to NULL</li> <li>Add missing unicode check</li> <li>Return false on default</li> <li>Add default value to num variable</li> <li>Inialize pvalue to NULL so we avoid errors</li> <li>Throw convert error if picture type is unexpected</li> <li>Add sanity else check</li> <li>Add 127.0.0.1 to ip filter default white list</li> <li>Fix indentation white space in http data files</li> <li>Add FORCE option to initialize script</li> <li>Don't put a connection that doesn't exist</li> <li>Make sure the strings aren't NULL</li> <li>Don't bother getting props if prop array is NULL</li> <li>Check if ptable_ids is not NULL</li> <li>Add missing error return</li> <li>Function should fail if value is NULL</li> <li>Remove impossible to meet condition</li> <li>Run for loop inside if to avoid angry compiler</li> <li>Check if pmsg1 is not NULL before using it</li> <li>Make sure the messages aren't NULL</li> <li>Use the correct rule variable</li> <li>Make sure nodes and parent nodes aren't NULL</li> <li>tmp should never be NULL</li> </ul> <h2 id="v040_2021-08-04">v0.4.0 (2021-08-04)<a class="headerlink" href="#v040_2021-08-04" title="Permanent link">¶</a></h2> <ul> <li>Remove debug from changelog script</li> <li>Add option for outbound SMTP delivery via smart host</li> <li>Create storage folder world readable by default</li> <li>Add GDB support to bin script</li> <li>Fix wrong rewrite for as endpoint</li> <li>Initialize pinfo variable</li> <li>Add missing greater than comparison</li> <li>Initialize lastch and check if it is not zero</li> <li>Initialize tag_access before performing operations</li> <li>Do not allow negative tape units</li> <li>Fail in case of unexpected value in switch</li> <li>Assign value to correct propval</li> <li>Fail if the condition is different than expected</li> <li>Set correct default path of ActiveSync implementation endpoint for mod_activesync</li> <li>Return false on default branch</li> <li>Fetch row before trying to use value</li> <li>Assign pextfwddlgt and use ext_actions instead</li> <li>Return false on default branch as well</li> <li>Always assign a value to pnode_last</li> <li>Read DATA_FILE_PATH from config file instead of hard code "../data"</li> <li>Move from herculiz naming to Exchange 4 All naming treewide</li> <li>Move rest of "grid" naming to Exchange 4 All naming</li> <li>Fix simple bug in "emsmdb_interface_connect_ex"</li> <li>Update push endpoint to use new location</li> <li>Rectify spelling errors "rinning" in prompting string of cidb, event and timer</li> <li>Link moh_nsp with exchange_nsp so it does not crash</li> <li>Resolve symbolic links for default BASEDIR</li> <li>Fix invalid BASEDIR export for service</li> </ul> <h2 id="v030_2021-07-26">v0.3.0 (2021-07-26)<a class="headerlink" href="#v030_2021-07-26" title="Permanent link">¶</a></h2> <ul> <li>Use build system to create distinct so files for plugins</li> <li>Remove "rpc_lib" from repository and move "ndr.c" to "common" library</li> <li>Install amidb service</li> <li>Use service.cfg for amidb service</li> <li>Strip RPATH in CI builds but not in local builds</li> <li>Use public endpoint of eas</li> <li>Install smtp data folder</li> <li>Set smtp service to inbound only mode by default</li> <li>Install mysql_adaptor service into smtp</li> <li>IP bit range should not be higher than 32</li> <li>Make sure psorts count isn't zero</li> <li>Remove useless parameter in function "pdu_processor_auth_request"</li> <li>Remove ntlm support from MS-RPC</li> <li>Make style more consistent with overall codebase</li> <li>Check for null to avoid potential seg fault</li> <li>Use the length of the property to allocate buffer</li> <li>Make sure we actually have data to write</li> <li>Check if we actually found items in the list file</li> <li>By default set number of read bytes to zero</li> <li>Assign missing variables on unexpected SMTP error</li> <li>Initialize num variable</li> <li>Treat unexpected SMTP error as a permanent error</li> <li>Make sure array contains null character by default</li> <li>Assing multi_num to zero if no valid type is found</li> <li>Compare the correct variable</li> <li>Check permissions by default</li> <li>Check permissions after they are retrieved</li> <li>Don't write garbage if status won't fit checks</li> <li>Use the correct variable in the while loop</li> <li>Assign result to status instead of subtracting</li> <li>Initialize pb_aync earlier</li> <li>Result should contain a proper value</li> <li>Initialize variable before comparing</li> <li>Initialize sad count variable</li> <li>Initialize array's first position</li> <li>Assume UTC by default for DTEND</li> <li>Frequency value should always be valid</li> <li>Check line_len before performing bitwise operation</li> <li>Initialize found_tag to prevent garbage comparison</li> <li>Make sure length never has garbage after switch</li> <li>Initialize lastch variable</li> <li>Remove nonsensical garbage comparison</li> <li>Don't shift negative values as its undefined</li> </ul> <h2 id="v021_2021-07-20">v0.2.1 (2021-07-20)<a class="headerlink" href="#v021_2021-07-20" title="Permanent link">¶</a></h2> <ul> <li>Require CMake 3.14 or higher</li> <li>Enable relative paths in the build <code>RPATH</code></li> <li>Publish dist artifact as generic package when its a tag</li> </ul> <h2 id="v020_2021-07-20">v0.2.0 (2021-07-20)<a class="headerlink" href="#v020_2021-07-20" title="Permanent link">¶</a></h2> <ul> <li>Add trailing slash to path list paths</li> <li>Use bin script wrapped command to timer/submit.php in default config</li> <li>Add missing white space</li> <li>Install additional scripts for initialization</li> <li>Create storage base folder</li> <li>Add initialize script for storage initialization</li> <li>Delegate configured env variables to sub scripts</li> <li>Use whole scripts folder in development setup example</li> <li>Move fmtstorage script to scripts folder</li> <li>Add sanitizer and tools support to CMake build script</li> <li>Add options to control build script behavior</li> <li>Add clang-tidy script and config</li> <li>Add ARGS to build script to make setting cmake options possible</li> <li>Santize the fmtstorage script</li> <li>Make the create_queue script less dangerous</li> <li>Always create log file at log_plugin run</li> <li>Remove FILES_NUM setting from log_plugin</li> <li>Remove date part from log_plugin log file names</li> <li>Remove log_plugin clean up thread</li> <li>Add env variable to set log_plugin to always flush</li> <li>Install missing cfg files for delivery and smtp daemons</li> <li>Fix imap data folder install</li> <li>Clear RUNNING_IDENTITY from all cfg files on install</li> <li>Fix syntax error on MySQL files</li> <li>Create /run dir in binscript when it does not exist</li> <li>Also remove rpath from libraries and plugins</li> <li>Use mysqlclient via pkg-config as build dependency</li> <li>Remove supervisor from admin-system</li> <li>Rewrite guid.c to get rid of GPL license and fix stupid bug in util.c</li> <li>Install additional required config and data files</li> <li>Update default log_plugin log file location treewide</li> <li>Install delivery service by default</li> <li>Use windows line endings for remote_postman messages</li> <li>Use windows line endings for exmdb_local messages</li> <li>Rewrite qp_decode and qp_decode_ex without GPL license</li> <li>Install smtp service by default</li> <li>Remove bogus umask and reformat queue create helper script</li> <li>Install pop3 service by default</li> <li>Keep track of characters written when reading RTF</li> <li>Assign variable to make sure array access is valid</li> <li>Install imap service by default</li> <li>Merge event_proxy features from mra-system</li> <li>Add CI only rules to run CI on specific cases only</li> <li>Don't return garbage status by default</li> <li>Check for NULL before returning</li> <li>Assign var to make sure it won't return garbage</li> <li>Fix stupid bugs in all "exmdb_client.c"</li> <li>Install MySQL database init SQL script</li> <li>Install empty cidb_list as required</li> <li>Install midb service</li> <li>Fix up develop setup symlink fu</li> <li>Don't crash httpd if opening rewrite.txt fails</li> <li>Add more steps to the development setup instructions</li> <li>Run CI stages in parallel</li> <li>Install freebusy and rtfkit tools</li> <li>Allow e4a script to run service tools</li> <li>Add missing dev setup step for libexec</li> <li>Remove obsolete session service</li> <li>Remove mpc anonymous_keyword plugin</li> <li>Use clang-10 for static analyzer by default</li> <li>Fix copy/paste depenency issue for libz</li> <li>Add scope to README</li> <li>Fix installer so it installs to non-existing directory</li> <li>Add hint about scan-build to README</li> <li>Support to run scan-build directly</li> <li>Add a brief dev setup instructions</li> <li>Switch over to e4a paths treewide</li> <li>Change default install into system subdirectory</li> <li>Remove preconfirured defaults for old webmeetings</li> <li>Remove pre-configured defaults for obsolete admin-ui</li> <li>Add gitlab-ci.yml to .gitignore</li> <li>Remove built-in antispam and antivirus support</li> <li>Enable mod_proxy http hpm plugin by default</li> <li>Keep admin pan broadcast plugin disabled by default</li> <li>Minor formatting & shellcheck fixes</li> </ul> <h2 id="v011_2021-07-02">v0.1.1 (2021-07-02)<a class="headerlink" href="#v011_2021-07-02" title="Permanent link">¶</a></h2> <ul> <li>Include distro and platform in dist tarball name</li> <li>Add install helper and utilities</li> <li>Rename duplicated sqlite3 script to avoid filename conflict</li> </ul> </article> </div> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> </main> <footer class="md-footer"> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class="md-copyright"> <div class="md-copyright__highlight"> ©2023 - present. Kopano b.v. </div> Made with <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener"> Material for MkDocs </a> </div> </div> </div> </footer> </div> <div class="md-dialog" data-md-component="dialog"> <div class="md-dialog__inner md-typeset"></div> </div> <script id="__config" type="application/json">{"base": "../../..", "features": ["navigation.tabs", "navigation.tabs.sticky", "navigation.indexes", "navigation.tracking", "content.code.copy"], "search": "../../../assets/javascripts/workers/search.d50fe291.min.js", "tags": null, "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}, "version": null}</script> <script src="../../../assets/javascripts/bundle.56ea9cef.min.js"></script> </body> </html>