## Features
- Support added for `if`/`elif`/`else` blocks to the configuration
file syntax.
- Dramatically improved debug messages during filter/parser
evaluation.
- Similarly improved the error messages shown on syntax errors, they
now show a full backtrace of inclusions, among other things.
- The `hook-commands` module was added, allowing one to run custom
commands on source or destination setup and teardown.
- Implemented a way to skip processing included config file snippets
in case a dependency is missing: The `@requires json` pragma.
- Basic client-side failover support was implemented.
- Errors from python destinations are now reported together with any
exception text (if any).
- `add-contextual-data` gained a new `ignore-case()` option.
## Bugfixes
- Fix a crash that happened on disk queue restart.
- Fixed another crash when a corrupted disk queue file was being moved
away.
- Fixed a crash that could happen during nvtable deserialization.
- Fixed a crash that occurred when NVTables were stored on low memory
addresses.
- Fixed an issue with TLS session resumption, the session id context
value is now properly set.
- We now link directly to the `evtlog` shipped with syslog-ng, and are
not using the system library, not even when present.
- TLS destinations now work again without `key-file` or `cert-file`
specified.
- SDATA block names are now sanitized, in order to not break the spec
when we get our SDATA from sources that are more lax (such as JSON).
- Some internal messages contained key-value pairs where the key had
spaces in it, this has been addressed, they do not contain spaces
anymore.
- The STOMP destination will now correctly use template options when
formatting its body part.
- Fix compilation with OpenSSL 1.1.0
- Fix compilation on FreeBSD.
- Fix compilation on SLES 11.
- Fix compilation on Hurd.
- Fix compiltaion on Solaris 10.
- Fix compilation on MacOS.
- Fixed a value conflict in the `afstreams` module's grammar file.
- Various compiler warning-related fixes all over the codebase.
## Other changes
- POSIX RegExp support was dropped from the filters, PCRE remains
available.
- Miscellaneous build-system related fixes and improvements (both
autotools and CMake).
- Update `lib/json-c` to `json-c-0.13-20171207`.
Features
- Password protected ssl keys
- Add OpenBSD module to system() source
- Add Ubuntu Trusty support to Docker build
Bugfixes
- Fix increased memory usage during saving disk-buffer
- Fix maximum record length limitations of disk-buffer
- Fix a memory leak in cfg-lexer
- Fix some issues found by pylint in python module
- Fix a crash due to a race condition in kv-parser()
- Fix a crash due to a race condition in file() destination
- Fix deprecated API usage in python module tests
- Fix a race condition in internal() source
- Fix a locale issue in merge-grammar python tool
- Fix compile problems with autotools when '--disable-all-modules'
used
- Fix a file descriptor leak in persist-state
- Fix a file descriptor leak in pseudofile()
- Fix memory/fd leaks in loggen tool
- Fix compile problems on Fedora, RHEL6, CentOS6 and SUSE based
platforms
- Fix a crash when large variety of keys added to messages
- Fix compile problems when PATH_MAX not defined
- Fix integer overflow problems in grammar
- Fix a memory leak in filter()
- Fix memory leak of persist-name() option
- Fix message corruption caused by a bug in the subst() rewrite rule
- Fix silently dropped messages in elasticsearch2() when sending in
bulk mode
- Fix broken disk-buffer() support in elasticsearch2()
- Fix Hy support in python module
- Fix an event scheduler related crash during reloading syslog-ng
- Fix a crash with SIGBUS when persist file cannot grow
Other changes
- Improve error reporting in "block" definitions in config
- Add warning message when disk-buffer() directory is changed in
configuration
- Syslog-ng debun improvements
- Refactor in rewrite() module init
- Missing child program (exit status 127) handling is changed in
program() destination:
- stopping destination instead of polling for the child program
- Refactor in filter() module
- Improve thread synchronization in mainloop and refactor
- Adapted json-c v0.13 API changes to json-parser
- Add filters as selectors in contextual data
3.11.1
Features
- Add geoip2 parser and template function.
- Add SSL support to AMQP.
- Add template option to apache-accesslog-parser.
- Add configurable event time to Riemann destination.
- Add drop-unmatched() option to dbparser.
- Add Ubuntu Xenial to the bundled docker images.
- Support multi-instance support for Solaris 10 and 11.
- Support multi-instance for systemd.
- Add configurable timeout to HTTP destination.
- Add prefix() option to cisco-parser.
Bugfixes
- Fix a memory usage counter underflow for threaded destination drivers
and writers.
- Fix a potential crash in AMQP.
- Fix a potential crash during reload.
- Fix a reload/shutdown issue.
- Fix a potential crash in afsocket destination during reload.
- Fix a counter registration bug.
- Fix a build issue on FreeBSD.
- Fix a memory leak in diskq plugin.
- Fix systemd-journal error codes validation.
- Fix a potential crash in diskq when it is used with file
destination and the file is reaped.
- Fix a memory leak in HTTP destination
- Fix ENABLE_DEBUG in dbparser.
- Fix a unit tests that caused build issue on 32 bit platforms.
Other changes
- The eventlog library is part of syslog-ng from now.
- Improve error messages when the config cannot be initialized.
- Improve source suspended/resumed debug messages.
- Rename syslog-debun to syslog-ng-debun.
- Update manpages to v3.11
- Remove tgz2build directory.
3.10.1
Features
- Support https in http (curl) module
- Docker support : from now Dockerfile for CentOS7, Ubuntu Zesty and for
Debian Jessie is part of our upstream
- Add --database parameter for geoip template function
- Metric improvements
- Add snmp-parser (v1, v2)
- Add snmp-soure
- Add osquery source
- Add cisco-parser
- Add wildcard filesource
- Add startdate template function
- Add $(basename) and $(dirname) template functions
- Add Kerberos support for HDFS destination
- Add AUTH support for redis destination
- Add map-value-pairs() parser
- Extend Python language binding by Python parser
- Add support for extract-stray-words() option in kv-parser()
- Add $(context-values) template function
- Add $(context-lookup) function
- Add list related template functions
- Add add query commands to syslog-ng-ctl
- Support multiple servers in elasticsearch2-http destination
- Implements elastic-v2 https in http mode
- Add getent module (ported from incubator)
- Add support for IP_FREEBIND
Bugfixes
- Fix a libnet detection check error that caused problem configuring
enable-spoof-source.
- Avoid warnings about _DEFAULT_SOURCE on recent glibc versions
- Fix invalid database warning for geoip parser
- Fix prefix() default in systemd-journal for new config versions
- Fix a potential message loss in Riemann destination
- Fix a potential crash in the Riemann destination when the client is
not connected to the Riemann server.
- Fix a possible add-contextual-data() related data loss in case of
multiple
reference to the same add-contextual-data parser in several logpaths.
- Fix dbparser deadlock
- Fix Python destination
- Fix processed stats counter for afsocket
- Fix stats source for pipes
- Fix csv-parser multithreaded support
- Fix a message loss in case of filesource when syslog-ng was restarted
and the log_msg_size > file size.
- Fix a potential crash in cryptofuncs
- Fix a potential crash in syslog-ng-ctl when no command line parameters
was set.
- Fix token duplication in the output of '--preprocess-into'
- Fix UTF-8 support in syslog-ng-ctl
- Fix a potential crash during X.509 certificate validation.
- Fix a segfault in Python module startup
- Fix a possible endless reading loop issue in case of multi-line
filesource.
- Fix soname for the http module from "curl" to "http"
- Avoid openssl 1.1.0 deprecated APIs
Other changes
- Increase processed counter by queued counter after reload or restart
when diskqueue is used otherwise the newly added written counter would
underflow.
- Set the default time-zone to UTC for elasticsearch2
- Add retries support for python destination
- Prefer server side cipher suite order
- Always include librabbitmq in the dist tarball
- Always include ivykis in the dist tarball
- Marking parse error locations with >@<.
- Default log_msg_size is increased to 64Kbyte from 8Kb
- Tons of syslog-debun improvements
- Exit with 0 return code when --help is specified for syslog-ng-ctl
- syslog-ng: make '--preprocess-into' foreground only
- Add debug messages on log_msg_set_value()
- Add more detail to filter evaluation related debug messages