postfwd2 1.30-devel1 ==================== - feature: new plugin interface (BETA) - feature: multiple rate limits for the same items are supported now. - feature: new $$ratecount variable for rate() actions - feature: new option --keep_rates - code: new --debug class 'cleanup' - docs: documentation updates postfwd2 1.22 ============= - general: adapted postfwd1 versioning scheme - feature: queueid is logged when available - bugfix: rate limits did not work correctly (thanks to Yves Blusseau) - docs: documentation updates and fixes (thanks to Vincent Lefevre) postfwd2 1.00 ============= - code: changed the default umask for the server socket to 0111 to support out-of-the-box postfix setup. Use the --server_umask setting to change this - code: --dumpcache command does not require debug mode anymore - code: rate hits included to cache stats - bugfix: rbl checks disabled for ipv6 addresses, cidr compare will switch to default (regex/string) postfwd2 0.22 ============= - feature: Rate limits are completely supported by postfwd2 now. Please note that the cache daemon is required for reliable operation. - bugfix: --syslog_facility could not be changed - code: rate limit code rewritten - code: new --umask, --cache_umask and --server_umask settings allow to set filepermissions for pidfiles and unix domain sockets. New defaults are: * master (pidfile): 0177 (owner rw) * cache (socket): 0177 (owner rw) * server (socket): 0117 (owner and group rw) postfwd2 0.21 ============= - bugfix: Fixed bug when comparing sender and recipient addresses, like "sender=$$recipient". This affects only postfwd2 version 0.20. postfwd2 0.20 ============= - bugfix: Invalid characters in variable substitutions were not correctly catched when the '=' operator was used, like "client_name=$$helo_name". If you can not upgrade for some reason change your rule to "client_name=~$$helo_name" - code: Net::DNS errors will now be handled gracefully - code: default for options --dns_max_ns_a_lookups and --dns_max_mx_a_lookups of 100 postfwd2 0.19 ============= - bugfix: this is a bugfix release for 0.18. anyone affected is encouraged to upgrade. detail: the default behavior for the '=' operator with numeric items (size, recipient_count, ...) changed with version 0.18 to '==' (equals to). now these items are compared '>=' (greater than) again. note: if you are using 0.18 and you are not able upgrade for some reason, please change '=' to '>=' in your ruleset where you mean 'greater than'. postfwd2 0.18 ============= - feature: items may now be retrieved from files using "item=file:/some/where" more information in the postfwd manual (FILES section) - feature: helo_address, and sender_(ns|mx)_addrs can now be csv items - feature: new rcpt() command counts recipients for rate limits (thanks to Sahil Tandon) - code: redirect syslog to stdout for --kill, --reload, --showconfig and --dump(cache|stats) - code: option --reload (HUP signal) now reloads config, if the file is unchanged - code: new --debug classes 'config' and 'request' - code: configuration parser improvements: * rules without defined action will be skipped at configuration stage * undefined ACLs will now be detected and skipped at configuration stage * parser timeout skips loading a rule after 4s, to prevent problems with large files or loops. use --config_timeout to override - bugfix: documentation fixed (missing "action=" in ask() examples) - bugfix: fixed logging of an uninitialized value in cache cleanups postfwd2 0.17 ============= - feature: new compare operators * ==================================================================== ITEM == VALUE true if ITEM equals VALUE ITEM => VALUE true if ITEM >= VALUE ITEM =< VALUE true if ITEM <= VALUE ITEM =~ VALUE true if ITEM ~= /^VALUE$/i *ITEM != VALUE false if ITEM equals VALUE *ITEM !> VALUE false if ITEM >= VALUE *ITEM !< VALUE false if ITEM <= VALUE *ITEM !~ VALUE false if ITEM ~= /^VALUE$/i ITEM = VALUE default behaviour (see ITEMS section) ==================================================================== - feature: added --nodaemon and --stdout options - code: non dns items first: if a rule contains dns and non dns items, the lookups will only be done if all non dns items matched - bugfix: empty pcre with empty sender_(ns|mx)_names was parsed incorrectly. this bug affects postfwd2 versions 0.15 - 0.16 - bugfix: negated pcre items with '~=' operator were parsed incorrectly. this bug affects postfwd2 version 0.16 postfwd2 0.16 ============= - feature: enabled dns cache for sender(ns|mx) and helo address - feature: new options --dns_max_ns_lookups and --dns_max_mx_lookups - code: parent_dns_cache is now disabled by default. use --parent_dns_cache if you have a slow nameserver - bugfix: workaround: Net::Server died if a unix domain socket filename without a dot ('.') was used (B. Frauendienst) postfwd2 0.15 ============= - feature: new items sender_ns_names and sender_ns_addrs - feature: new items sender_mx_names and sender_mx_addrs - feature: new item helo_address, please see docs for more - feature: new parent cache statistics. the command line option --dumpstats uses the --daemons setting now (default: cache,server) - feature: dnsbl txt lookups only for dnsbls with at least one a record. use --dns_async_txt for the old behaviour (see docs for more). - code: summary function went to postfwd::master (and will stay there ;) - code: small performance improvement (5-10%) for pcre (~= or =~) items - bugfix: network 0.0.0.0/0 did not work as expected on all platforms postfwd2 0.14 ============= - code: summary function was moved from postfwd::cache to postfwd::policy. the reduced policy <-> cache communication increases throughput considerably and improves cpu balancing on multiprocessor systems - bugfix: fixed potential division by zero in summary function postfwd2 0.13 ============= - feature: new options --noidlestats and --norulestats - feature: more informative --version - feature: documentation updates - bugfix: disabled parent_cache counters when --summary=0 postfwd2 0.12 ============= - feature: the ask() action allows to delegate the policy decision to another policy service (like postgrey). a new parameter allows to specify answer patterns which should be ignored by postfwd. please look at the 'ACTIONS' section in the manual (postfwd2 -m) for details. - feature: parent-request cache will now only be updated, if a rule matches. if postfwd should cache all requests, you must place a last rule: id=DEFAULT; action=dunno - bugfix: reorganised some parent-cache loggings for -vv and *cache debug classes postfwd2 0.11 ============= - bugfix: all postfwd settings are now detainted - bugfix: cache-update used an uninitialized value when no rule had hit postfwd2 0.10 ============= - bugfix: command line arguments --pidfile postfwd2 0.09 ============= - bugfix: command line arguments --user and --group were not correctly de-tainted postfwd2 0.08 ============= - bugfix: command line argument --pid_file was ignored - bugfix: command line argument --manual (-m) did not work postfwd2 0.07 ============= - first semi-public release of postfwd2 - full ruleset compatibility, no changes required when migrating from postfwd v1 - new architecture: * Net::Server::PreFork ruleset processor (server) forks new child for any request * Net::Server::Multiplex for parent cache offers a shared request, dns and rate cache for postfwd2 children * Net::Server::Daemonize for master process controls server and cache (watchdog function) and allows direct access to statistics, cache-contents, ... from the command-line - many new commandline options (see postfwd2 -h) for more information