Fixed ticket #1080: track metrics for IP addresses per binding. This fixes issues where deliverability on one binding can cause a failling binding to not actually fail and vice versa.
Fixed ticket #1101: fixed segfault in regex_binding2 related to applying sender_ip and received_via IP matching to message received over non IP channels.
Fixed ticket #1102: cluster membership control can SEGV if called while a node is joining the cluster.
Fixed ticket #1104: Added Permastore_Interval to the config system with a default of 300 seconds instead of the original hard-coded 60 seconds.
Fixed ticket #1105: Fixed issue where decreasing the thread pool size could cause too many threads to stop.
Fixed ticket #1106: Fixed lagging issues for certain modules that perform asynchronous work in the validate_data_spool and validate_data_spool_each_rcpt. This fixes a performance problem with the cloudmark authority module.
Fixed ticket #1108: Fixed install name for libEcelerity on Darwin
Fixed ticket #1110: make ec_header_add, ec_header_prefix, ec_header_postfix multi-charset safe.
Feature ticket #1113: allow cloudmark to be invoked from sieve
Fixed ticket #1114: Fixed intermittent failures with XCLIENT
Feature ticket #1116: provide a binding statistics on the binding group.
Feature ticket #1119: xml log summary reports now have the start/end date in the filename (instead of date of summarization).
Fixed ticket #1128: fixed segfault when using binding flush domain
Fixed ticket #1130: under allocation in regex_binding2 could cause crash.
Feature ticket #1136: Internally supported means for OEMs to rebrand Ecelerity.
Fixes ticket #1147: fixed inbound SMTP sessions disconnects when anti-virus subsystem was in use.
# Ecelerity version 2.1.0.2 released on 2006-03-23
Fixed various issued with license fetching on Windows.
# Ecelerity version 2.1.0.1 released on 2006-03-21
Fixed ticket #989: mailerdaemon, if left blank, no longer causes crash
Fixed ticket #999: mbuscfg crashes on startup with error: MEMORY-00487 66
Fixed ticket #1000: crash in regex_binding2
# Ecelerity version 2.1.0.0 released on 2006-06-06
Fixed ticket #534: automatic Message-ID: header generation on Windows platforms was not rfc2822 compliant.
Fixed ticket #535: Possible to wrap message id’s in ecmm
Fixed ticket #539: %{d} and %{s} failed to expand for domainkeys key file paths on FreeBSD.
Fixed ticket #54: upgrade PCRE to 6.5
Fixed ticket #518: Esmtp_Listener=(*.25) causes segv. Changed IPv6 address format in config file and console from <hex>:<hex>::<hex>.<port> to [<hex>:<hex>::<hex>]:port. Brackets are now required.
Fixed ticket #185: DNS server outage causes segv.
Fixed ticket #554: Fixed crash bug with parsing trash config files (such as specifying the Ecelerity binary as the config file).
Fixed ticket #567: Fixed erroneous compilation of sieve scripts with nested anyof and allof clauses.
Fixed ticket #91: Notice when duravip IPs are dropped or an unowned duravip occurs. Add duravip release all command. Add duravip announce view command.
Fixed ticket #542: sieve scripts loaded via the console didn’t report compilation errors to the console (but did log them to the paniclog).
Feature ticket #394: Add ec_forward action in sieve++.
Fixed ticket #580: Fixed crash in MDN generation.
Feature ticket #541: augment default queue layout to reduce I/O pressure on standard UNIX/Linux filesystems.
Feature ticket #71: Add ec_rewrite_mailfrom action in sieve++.
Feature ticket #586: implement pulling from eccmgr for sieve scripts.
Feature ticket #561: Negative offsets into stringlists.
Feature ticket #592: allow config includes to use the eccmgr:// io wrapper.
Fixed ticket #593: Fixed crash reading a configuration file lacking a trailing newline.
Feature ticket #599: Allow domains to exempt themselves from particular multivip bindings
Fixed ticket #612: Enhance rfc2822 parser/reconstructer to respect the exact whitespace preceding header lines (instead of replacing them with a single hard tab). This allows modules like domainkeys and DKIM to perform simple canonicalizations successfully.
Fixed ticket #410: (bad deps for ec_rrdd)
Fixed ticket #504: (spread user does not exist)
Fixed ticket #637: write conf should return set values even when they match defaults.
Fixed ticket #638: global inbound and EClogmove inbound connection counters were not decremented on a cluster logger disconnect.
Feature ticket #560: Add ec_pcre_match action in sieve++. (modules/generic/sievelib.c)
Fixed ticket #749: config parser crashes on empty Domain stanza
Fixed ticket #744: header corruption when using dk + dkim side by side
Fixed ticket #767: assertion failure under Solaris
Fixed ticket #761: ecmm can fault if you disconnect while waiting on xprt
Fixed tickets #350 and #636: fixed DK instablities and add simple canon support
Feature ticket #171: implement DKIM
Feature ticket #377: Add support for configuratable SNMP Traps
Fixed ticket #814: c macro missing from SPF macro set
Fixed ticket #869: ec_logto_xml does not update xml log file
Incremental ticket #519: demonstrate a 200 connection listen queue on the ESMTP listener in the provided configuration file. A 200 connection backlog will prevent throughput testing anamolies that arise when testing with smtpstone (smtp-source) and high concurrency.
Fixed ticket #498: strtok_r() skips delims until it gets a token or goes to the end. This caused reception lines with @@@ to be ignored in _ec_log_parse_reception(), which resulted no reception counted in ec_stats. Replace strtok_r() in GET_NEXT with next_at_field() in ec_log_parse.c
Fixed ticket #521: ec_console line editing would crash on Solaris 64-bit
# Ecelerity version 2.0.5.1 released on 2006-01-29
Fixed ticket #513: improperly configured interfaces could lead to the complete downing of an interface by DuraVIP during start-up.
Incremental ticket #511: improved the speed of message enqueueing and maintaining the mailqueue by avoiding complicated cluster-based threshold assessments if no thresholds have been configured globally or for the domain/binding/binding group in question.
Fixed ticket #368: Included smtp_cbv in the distribution.
Fixed ticket #369: custom_logger header expansion in the delivery phase when the header is the last header in the RFC2822 message block clipped the last letter of the header value off. Fixed.
Fixed ticket #376: Solaris startups not working
Fixed ticket #383: ehlo_string should be a VCTX_CONN and not VCXT_MESS
Feature ticket #217: Allow gateway determination on domain, binding and now recipient local part as well. Hookable.
Fixed ticket #218: ds_mysql module removed from Ecelerity core RPM to Ecelerity-mysql RPM on Linux.
Feature ticket #236: Modules may hoook core configuration parsing to extend core Ecelerity.conf configuration syntax.
Fixed ticket #244: win32 now allows non-system disk installation.
Feature ticket #261: ec_console tab completion for config set/get
Fixed ticket #266: Checklist module should operate on email/domain matches case-insensitively.
Fixed ticket #275: some configuration hooks were not registered with the hook system prior to the post_conf phase. Fixed.
Fixed ticket #276: 64-bit perl interpreter how handles Ecelerity::register_hook correctly.
Fixed ticket #277: Extension_Dir not respected. Fixed.
Fixed ticket #278: On startup, if reading the spool directory entries alone exceeded 60 seconds, the monitor would terminate and restart the instance. Fixed.
Fixed ticket #284: fixed pinterp crash bug related to incorrect perl stack manipulation.
Fixed ticket #286: config_get_binding_domain_outbound_{conn,mess}_throttle hooks were not firing. Fixed.
Fixed ticket #288: Separated antivirus modules into Ecelerity-antivirus RPM on Linux.
Fixed ticket #289: Augmented Ecelerity headers for safe C++ inclusion.
Fixed ticket #292: Document how to access the message_construct structure from the accept_construct in esmtp_factory.h
Feature ticket #296: Expose the negotiated TLS cipher via the context as tls_cipher.
Feature ticket #297: Allow SSL keys to be encrypted. A pre_console_release hook was added and a SSL_CTX_fixup hook was added. A simple tls_passphrase module was introduced that will collect a single passphrase (at startup) to unlock TLS keys found to be encrypted.
Feature ticket #299: Allow the configuration include directive to be passed a directory from which all non-hidden files on the top level will be processed in lexicongraphical order.
Feature ticket #300: config_get_localpart_domain_binding_gateway_into_buffer removed for a simpler and more functional config_get_message_gateway_into_buffer.
Feature ticket #305: Make ecxs friendly to C++ module authors.
Fixed ticket #243: ec_md5passwd now preserves file ownership and permissions.
Feature ticket #251: ec_md5passwd now prompt for password reconfirmation.
Fixed ticket #249: monitor process now responds immediately to an instance’s clean exit. Solved ec_ctl restart hanging problems.
Fixed ticket #250: a long shutdown (typical to suppress_spool) could be aborted by the monitor process due to a lost heartbeat. Fixed.
Fixed ticket #252: ec_dns_lookup crash. Fixed.
Fixed ticket #263: domainkeys crash when same named headers were found not contiguous in an email. Fixed.
Fixed ticket #207: Fixed spf loop on broken include directive.
Feature ticket #17: SNMP access to per-domain and per-binding stats.
Fixed ticket #230: IO module APIs executed on more reliably.
Fixed ticket #208: Remove off all STREAMs usages.
Fixed ticket #205: Fixed crash in message retry.
Feature pinerp: More thorough perl embedding. Allow for full hooks integration as well as sieve registration of tests and actions.
Feature clustering: Replicated connection and resource utilization metrics across clustered nodes. Cluster-wide rate limiting and throttling. Cluster-wide caching of data. Durable MultiVIP bindings (DuraVIP) allowing for automatic failover of a binding from one node to another. Cluster-wide aggregating logging facilities. On-demand queue migration from node to node.
# Ecelerity version 1.2.12.4 released on 2005-09-06
Fixed ticket #176: ec_injector bundling and PHP 4/5 support.
Fixed ticket #218: modules depending on mysql are now completely in their own packages.
Fixed ticket #228: MDNs generated with zeroed message IDs.
# Ecelerity version 1.2.12.3 released on 2005-08-15
Fixed ticket #186: EHLO hostname not working on the default binding.
Fixed ticket #223: Match_Domain not correctly setting the outbound binding.
Feature ticket #31: Revamped configuration system to allow for nested configuration directives. Specifically allowing all domain-relevant configuration options to be nested under a Binding so that behaviour towards domains can differ between bindings. Depricated: Relay_Domain option for a global Relay_Domains list.
Feature ticket #68: Support for the Authentication-Results header.
Upgraded to sqlite3, you will need to run db_upgrade on your metadata files. web console users will also need to upgrade to the latest version of the web console.
You may now use C style /* */ comments in your Ecelerity.conf
Added a human readable alternative syntax for setting Debug_Flags. The traditional style is still supported, and the ‘write config’ console command will emit an out-commented old style Debug_Flags configuration, followed by the new style. Consult the manual for more information on this change.
Fully_Resolve_Before_SMTP = true|false to force Ecelerity to complete resolve all pertinent DNS records before it commences SMTP delivery [5436].
Support for Linux capabilities [5416].
Improved pipe_transport module. Other modules (including interpreters) may set message recipient(s) to |/path/to/command to facilitate dynamic mapping of recipients to pipe processes. Added error_file and output_file configuration options to control the destination of stderr and stdout, respectively.
Improved handling of low memory conditions.
Added ec_trace_context action to sieve, which adds an X-Trace-Context header to the message. This can be useful when debugging your mail policy.
Fixed a segfault with the inbound_audit module, when no configuration is provided.
Add core_control_shutdown_hook() that modules may use to gracefully handle shutdown.
Feature ticket #5: Reimplementation of ec_stats in C for memory efficiency and speed. It now directly produces XML and is transformed into plan text via XSLT.
Fixed ticket #13: errors that occur prior to loading a logging module are now logged to stderr.
Feature ticket #53: Reimplementation of memory allocators in assembly for improved performance.
Feature ticket #59: Improved async responsiveness for SMTP AUTH
Feature ticket #64: Rename the mailfrom_cbv module to smtp_cbv, to reflect that it can now validate based on RCPT TO as well as MAIL FROM.
Feature ticket #67: Allow configurable time windowing in throttles. You may specify n/y for throttle settings, which will allow n messages in y seconds. y defaults to 1 if not specified.
Fixed ticket #89: force bulk failure operations to run async
Fixed ticket #90: when sending mail to domains that have invalid MX records.
Feature ticket #98: Support for Solaris 10, including a ports-based scheduler.
Fixed ticket #99: url_ripper missing name to A host extractions that matched previous named RHSBL lookups.
Feature ticket #100: expose inbound connections in an aribtrary CIDR mask in sieve for decision making.
Fixed ticket #102: pauses on SMTP connections after 55x failures.
Fixed ticket #103: Linux on Opteron no uses epoll when available.
Feature ticket #104: Allow sieve extensions to add simple and complex tests in addition to functions.
Fixed ticket #108: segfaults in regex binding module when performing regex matches on body or headers.
Fixed ticket #114: fixed segfault bug in SPFv1 state machine.
Fixed ticket #115: SQLite corruption.
# Ecelerity version 1.2.10.1 released on 2005-02-04
Fixed race in async unlinks that could cuase spool bodies to not be deleted. Work around for 1.2.10 is Async_Unlink_Concurrency = 1. Ecelerity will remove headers with no bodies (an uncommitted message reception), however bodies without headers will be ignored and must be deleted manually.
Augment the delivery system to use sendfile(), allows fully asynchronous swapping in of messages not in memory, and incorporates some other related performance enahncements.
Additional toggleables for even more aggressive memory management in the event of large queue back pressure. Specifically Drop_Body_After_Trans_Fail = X which allows you to drop out the message bodies (from memory) after X transient failures (setting this to 0 is good for domains that experience a high number of transient failures).
Fix for a moderately critical connection allocation algorithm issue that causes very unaggressive connection allocation in some situations.
Message_Expiration and Max_Retries as Binding stanza paramters.
Provides binding visibility for messages through the showqueue and message details commands.
Adds history and tab completion to ec_console
Allows greater management of the memory subsystem by the end user via Malloc2MMAP_Threshold = X Which toggles use of anon mmaps over system mallocs past X bytes. This is aimed to reduce heap fragmentation. A suggested value is 4096.
Supports a configurable backlog and pool for the message unlinker thread via Async_Unlink_Concurrency = X Async_Unlink_Backlog = Y During some testing under XFS (which appears to perform very poorly), we saw very large amounts of backpressure in the unlink queue. This is not good, so this toggleable will cap that.
Outbound_Throttle now support granularity up to 1 message per minute. (Previously was 1 message per second). Still is expressed as a float (messages/second).
BUG FIX: [PET 41] Further ensures that messages with connection errors are handed into the logging system with 45x errors.
BUG FIX: [PET 42] MX-00304 bug, race on expired domains with no queue but some in-progress deliveries (messages are not ‘in queue’ when they are in the SMTP delivery engine).
Addition of the MDN_Failures_Notify global option to allow delvery of errors on message with null envelope senders to an alternate email address.
BUG FIX: [PET 43] Fixes crash bug related to a given MXs being used by more than 20479 domains.
Increased connection reuse aggression across domains sharing MXs.
FEATURE REQUEST: [PET 44] Individual MXs can have max_outbound_connections set via: Host mail-in.freeserve.com { Max_Outbound_Connections = 5 }
Fixed race condition that can leave messages in the lookuptable
BUG FIX: [PET 42] MX-00304 bug, race on expired domains with no queue but some in-progress deliveries (messages are not ‘in queue’ when they are in the SMTP delivery engine).