Browse Source

New upstream version 8.23.0

upstream upstream/8.23.0
Michael Biebl 6 years ago
parent
commit
13c110ad95
  1. 2
      .tarball-version
  2. 167
      ChangeLog
  3. 5
      Makefile.am
  4. 11
      Makefile.in
  5. 39
      README.md
  6. 211
      aclocal.m4
  7. 71
      action.c
  8. 1
      action.h
  9. 3
      compat/Makefile.in
  10. 34
      config.guess
  11. 5
      config.h.in
  12. 22
      config.sub
  13. 2331
      configure
  14. 60
      configure.ac
  15. 3
      contrib/imczmq/Makefile.in
  16. 3
      contrib/imkmsg/Makefile.in
  17. 3
      contrib/imzmq3/Makefile.in
  18. 3
      contrib/mmcount/Makefile.in
  19. 3
      contrib/mmgrok/Makefile.in
  20. 2
      contrib/mmgrok/README
  21. 3
      contrib/mmrfc5424addhmac/Makefile.in
  22. 10
      contrib/mmrfc5424addhmac/mmrfc5424addhmac.c
  23. 3
      contrib/mmsequence/Makefile.in
  24. 3
      contrib/omamqp1/Makefile.in
  25. 3
      contrib/omczmq/Makefile.in
  26. 3
      contrib/omhiredis/Makefile.in
  27. 148
      contrib/omhiredis/omhiredis.c
  28. 3
      contrib/omhttpfs/Makefile.in
  29. 2
      contrib/omhttpfs/omhttpfs.c
  30. 3
      contrib/omrabbitmq/Makefile.in
  31. 8
      contrib/omtcl/Makefile.am
  32. 749
      contrib/omtcl/Makefile.in
  33. 162
      contrib/omtcl/omtcl.c
  34. 3
      contrib/omzmq3/Makefile.in
  35. 2
      contrib/omzmq3/omzmq3.c
  36. 3
      contrib/pmaixforwardedfrom/Makefile.in
  37. 32
      contrib/pmaixforwardedfrom/pmaixforwardedfrom.c
  38. 3
      contrib/pmcisconames/Makefile.in
  39. 3
      contrib/pmpanngfw/Makefile.in
  40. 3
      contrib/pmsnare/Makefile.in
  41. 3
      grammar/Makefile.in
  42. 164
      grammar/grammar.c
  43. 8
      grammar/grammar.h
  44. 27
      grammar/lexer.c
  45. 9
      grammar/rainerscript.c
  46. 23
      install-sh
  47. 5511
      ltmain.sh
  48. 2582
      m4/libtool.m4
  49. 127
      m4/ltoptions.m4
  50. 7
      m4/ltsugar.m4
  51. 12
      m4/ltversion.m4
  52. 7
      m4/lt~obsolete.m4
  53. 2
      outchannel.c
  54. 3
      plugins/im3195/Makefile.in
  55. 3
      plugins/imdiag/Makefile.in
  56. 2
      plugins/imdiag/imdiag.c
  57. 3
      plugins/imfile/Makefile.in
  58. 155
      plugins/imfile/imfile.c
  59. 3
      plugins/imgssapi/Makefile.in
  60. 3
      plugins/imjournal/Makefile.in
  61. 3
      plugins/imklog/Makefile.in
  62. 2
      plugins/imklog/imklog.c
  63. 3
      plugins/immark/Makefile.in
  64. 3
      plugins/impstats/Makefile.in
  65. 10
      plugins/impstats/impstats.c
  66. 3
      plugins/imptcp/Makefile.in
  67. 22
      plugins/imptcp/imptcp.c
  68. 3
      plugins/imrelp/Makefile.in
  69. 3
      plugins/imsolaris/Makefile.in
  70. 2
      plugins/imsolaris/imsolaris.c
  71. 3
      plugins/imtcp/Makefile.in
  72. 3
      plugins/imudp/Makefile.in
  73. 10
      plugins/imudp/imudp.c
  74. 3
      plugins/imuxsock/Makefile.in
  75. 19
      plugins/imuxsock/imuxsock.c
  76. 3
      plugins/mmanon/Makefile.in
  77. 3
      plugins/mmaudit/Makefile.in
  78. 6
      plugins/mmaudit/mmaudit.c
  79. 3
      plugins/mmexternal/Makefile.in
  80. 6
      plugins/mmexternal/mmexternal.c
  81. 3
      plugins/mmfields/Makefile.in
  82. 2
      plugins/mmfields/mmfields.c
  83. 3
      plugins/mmjsonparse/Makefile.in
  84. 3
      plugins/mmnormalize/Makefile.in
  85. 2
      plugins/mmnormalize/mmnormalize.c
  86. 3
      plugins/mmpstrucdata/Makefile.in
  87. 6
      plugins/mmpstrucdata/mmpstrucdata.c
  88. 3
      plugins/mmsnmptrapd/Makefile.in
  89. 6
      plugins/mmsnmptrapd/mmsnmptrapd.c
  90. 3
      plugins/mmutf8fix/Makefile.in
  91. 8
      plugins/mmutf8fix/mmutf8fix.c
  92. 3
      plugins/omelasticsearch/Makefile.in
  93. 491
      plugins/omelasticsearch/omelasticsearch.c
  94. 3
      plugins/omgssapi/Makefile.in
  95. 3
      plugins/omhdfs/Makefile.in
  96. 12
      plugins/omhdfs/omhdfs.c
  97. 3
      plugins/omjournal/Makefile.in
  98. 3
      plugins/omkafka/Makefile.in
  99. 19
      plugins/omkafka/omkafka.c
  100. 3
      plugins/omlibdbi/Makefile.in

2
.tarball-version

@ -1 +1 @@
8.22.0
8.23.0

167
ChangeLog

@ -1,4 +1,163 @@
------------------------------------------------------------------------------
Version 8.23.0 [v8-stable] 2016-11-15
- NEW BUILD REQUIREMENT: libfastjson 0.99.3
This was introduced in 8.20.0 as a suggestion and has now become a hard
requirement. See 8.20.0 ChangeLog entry for more details.
- KSI signatures: removed SHA2-224 hash algorithm
This is considered insecure and no longer supported by the underlying
KSI library. If still used within a configuration, a descriptive error
message is emitted during config processing.
Thanks to Henri Lakk for the initial patch.
- imfile: new timeout feature for multi-line reads
When using startmsg.regex, messages are held until the next one is written.
We now provide a "readTimeout" parameter family (see doc) to timeout such
reads and ensure messages are not held for a very long time.
see also https://github.com/rsyslog/rsyslog/issues/1133
- omfile: improve robustness against network file system failures
in case of failure, a close and re-open is tried, which often solves the
issue (and wasn't handle before this patch).
see also https://github.com/rsyslog/rsyslog/pull/1161
Thanks to github user hese10 for the patch.
- pmaixforwardedfrom: support for AIX syslogd -s option
if syslog in AIX started with "-s" option, AIX syslog adds only "From "
instead of "Message forwarded from ". With this patch, both are now
detected.
Thanks to github user patelritesh for the patch.
- omelasticsearch: add ability to specify max http request size
This permits to keep batches below ES-configured limits.
Thanks to github user barakshechter for the patch.
- omelasticsearch: high availability addressing of ElasticSearch cluster
allow to specify an array of servers, which is tried until a working
one is found (and given up only if none works).
Thanks to github user barakshechter for the patch.
- omelasticsearch: make compatible with ElasticSearch 2.x and 5.x
fixes omelasticsearch logs response from ElasticSearch 5.0 _bulk
endpoint as error
See also https://github.com/rsyslog/rsyslog/pull/1253
Thanks to Christian Rodemeyer for the patch.
- omhiredis: add dynakey attribute.
If set to on, this causes omhiredis to treat the key attribute as the
name of a template so that you can build a dynamic redis queue name
or list key.
see also: https://github.com/rsyslog/rsyslog/pull/1218
Thanks to github user bobthemighty for the patch
- omtcl: new contributed module
see also https://github.com/rsyslog/rsyslog/pull/1041
Please note: contributed modules are not directly supported by the
project. You might want to contact the author for questions.
Thanks to Francisco Castro for contributing it.
- RainerScript: provide a capability to set environment variables
via 'global(environment="var=val")' config statement.
This is most importantly for things like HTTP_PROXY.
see also https://github.com/rsyslog/rsyslog/issues/1209
- lookup tables: improved error checking
Thanks to Janmejay Singh for the patch.
- queue subsystem: add configuration parameter "queue.samplinginterval"
Supports sampling of messages (as often used in data transmission).
Thanks to Zachary M. Zhao for the patch.
- bugfix core: errmsg.LogError now switches to dfltErrLogger just before shutdown
Thanks to Janmejay Singh for the patches.
- bugfix core: fixed un-freed memory in non-transactional action using string-passing
closes https://github.com/rsyslog/rsyslog/issues/968
Thanks to Janmejay Singh for the patches.
- rsgtutil: option to specify KSI publications file certificate constraints
see also https://github.com/rsyslog/rsyslog/issues/1207
- omprog: bugfixes and enhancements
- omprog resource leak fix (fd leak)
- omprog got ability to force-kill process if it doesn't die in 5 seconds
(linux specific)
- child-process lifecycle debugging aid (in form of logs) (mainLoop and
omprog cleanup both log pid at child-death, mainLoop reaping is now
visible to user, as opposed to being a mystery, because omprog didn't
seem to anticipate it in terms of code)
Thanks to Janmejay Singh for the patches.
see also https://github.com/rsyslog/rsyslog/pull/1155
- bugfix imfile: ReopenOnTruncate processing, file open processing
This fixes
* ReopenOnTrucate was only honored when a state file existed
see https://github.com/rsyslog/rsyslog/issues/1090
* open processing could run into a loop
see https://github.com/rsyslog/rsyslog/issues/1174
This is done via refactoring the open file handling, which provides
overall cleaner and easier-to-follow code.
Thanks to Owen Smith for analyzing the problem and providing a
prototype PR which greatly helped towards the final solution.
- bugfix omlibdbi: libdbi-driver-sqlite3/2 requires to provide a path to
database split into two strings:
* absolute path, where the database file sits
* database filename itself.
This was previously not done.
Thanks to github user aleek for the patch.
- bugfix RainerScript: issue in prifilt() function
Initialize func-data(and to-be-freed flag) correctly for prifilt
function-node
Thanks to Janmejay Singh for the patch.
- bugfix omrelp: invalid module name imrelp was used in some error messages
Thanks to Chris Pilkington for the patch.
- bugfix core: abort when persisting object state
This causes a segfault. It happens whenever an object state larger
than 4095 byte is persisted. Then, incorrectly a try to rollover to
a new state file is tried, which will lead to a division by zero
as the necessary variables for this operation are not set because we
are NOT in circular mode.
This problem can happen wherever state files are written. It has been
experienced with imfile and queue files.
Many thanks to github user mostolog for his help in reproducing the issue,
which was very important to finally nail down this long-standing bug.
closes https://github.com/rsyslog/rsyslog/issues/1239
closes https://github.com/rsyslog/rsyslog/issues/1162
closes https://github.com/rsyslog/rsyslog/issues/1074
- bugfix: segfault if hostname is unset on system
happens when gethostname() returns empty string. This will cause
the createon of the localhostname prop_t to fail, which in turn
leads to a NULL pointer dereference when emitting local messages.
As we emit a startup message by default, this had usually lead
to a segfault on startup.
Thanks to Erik Potter and github user mostolog for their help
in analyzing this problem.
closes https://github.com/rsyslog/rsyslog/issues/1040
closes https://github.com/rsyslog/rsyslog/issues/335
- bugfix external module perl skeleton: did not work properly
Thanks to github user Igorjan666 for the patch.
- bugfix build system: Fix detection of pthread_setschedparam() on platforms
such as FreeBSD
see also https://github.com/rsyslog/rsyslog/pull/1147
Thanks to Matthew Seaman for the patch.
- bugfix omelasticsearch: modifies constant memory under some circumstances
Function computeBaseUrl may modify its serverParam parameter, but
this may contain the constant string "localhost". Depending on the
platform, this can lead to a segfault.
Noticed while working on compiler warnings, not seen in practice.
- "bugfix": theoretical queue file corruption when more than MAX_INT files
closes https://github.com/rsyslog/rsyslog/issues/1202
- bug fix/KSI: LOGSIG11 missing in the beginning of KSI log signature file
When logging with KSI is not working properly for whatever reason, an
empty .ksisig file is created (which by itself is not an issue). However,
later it looks like this file is re-used, but it is not checked whether it
already contains the magic LOGSIG11 in the beginning of the file. This leads
to a log signature file which has correct content but is missing the
LOGSIG11 magic in the beginning.
- bugfix template processor: missing escaping of backslash in json mode
Thanks to github user mostolog for providing the patch.
- build environment: --enable-debug now defaults to new "auto" mode
previously, DEBUG mode (and thus assert() macros) was disabled by default
and explicitly needed to be enabled by providing the --enable-debug
./configure switch. Now, a new --enable-debug=auto mode has been added
and made the default. It enables DEBUG mode if we build from git and only
disables it when a release build is done (from the release tarball). This
aims at better error checking during testbench runs and developer testing.
- testbench improvements
* improved testbench file generation tool
Thanks to Pascal Withopf for the patch.
* added some plumbing for extended tests which work by overriding OS APIs
* imfile ReopenOnTruncate option is now being tested
* the CI environment now runs most tests in debug mode, but some in
release mode to cover potential release-mode races
* template json option is now being tested
* object state persisting received a basic test
* added test for empty hostnames
* added tests for omprog
------------------------------------------------------------------------------
Version 8.22.0 [v8-stable] 2016-10-04
- ompgsql: add template support
Thanks to Radu Gheorghe for implementing this.
@ -48,7 +207,7 @@ Version 8.20.0 [v8-stable] 2016-07-12
while not strictly necessary, previous versions of libfastjson have a bug
in unicode processing that can result in non US-ASCII characters to be
improperly encoded and may (very unlikely) also cause a segfault.
This version will become mandatory in rsyslog 8.20.1.
This version will become mandatory in rsyslog 8.23.0
- omrelp: add configurable connection timeout
Thanks to Nathan Brown for implementing this feature.
- pmrfc3164: add support for slashes in hostname
@ -5949,7 +6108,7 @@ Version 3.20.3 [v3-stable] (rgerhards), 2009-01-19
thanks to Andrej for reporting this
- fixed a potential segfault condition with $AllowedSender directive
On HUP, the root pointers were not properly cleaned up. Thanks to
Michael Biebel, olgoat, and Juha Koho for reporting and analyzing
Michael Biebl, olgoat, and Juha Koho for reporting and analyzing
the bug.
---------------------------------------------------------------------------
Version 3.20.2 [v3-stable] (rgerhards), 2008-12-04
@ -6128,7 +6287,7 @@ Version 3.19.2 (rgerhards), 2008-05-16
(in queued mode) was read in
- bugfix: lmtcpclt, lmtcpsrv and lmgssutil did all link to the static
runtime library, resulting in a large size increase (and potential
"interesting" effects). Thanks to Michael Biebel for reporting the size
"interesting" effects). Thanks to Michael Biebl for reporting the size
issue.
- bugfix: TLS server went into an endless loop in some situations.
Thanks to Michael Biebl for reporting the problem.
@ -6165,7 +6324,7 @@ Version 3.18.7 (rgerhards), 2008-12-??
http://lists.adiscon.net/pipermail/rsyslog/2009-April/001986.html
- fixed a potential segfault condition with $AllowedSender directive
On HUP, the root pointers were not properly cleaned up. Thanks to
Michael Biebel, olgoat, and Juha Koho for reporting and analyzing
Michael Biebl, olgoat, and Juha Koho for reporting and analyzing
the bug.
- some legacy options were not correctly processed.
Thanks to varmojfekoj for the patch.

5
Makefile.am

@ -253,6 +253,11 @@ if ENABLE_OMAMQP1
SUBDIRS += contrib/omamqp1
endif
# omtcl
if ENABLE_OMTCL
SUBDIRS += contrib/omtcl
endif
# tests are added as last element, because tests may need different
# modules that need to be generated first
SUBDIRS += tests

11
Makefile.in

@ -148,6 +148,9 @@ sbin_PROGRAMS =
# omamqp1
@ENABLE_OMAMQP1_TRUE@am__append_53 = contrib/omamqp1
# omtcl
@ENABLE_OMTCL_TRUE@am__append_54 = contrib/omtcl
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ac_check_define.m4 \
@ -273,7 +276,7 @@ DIST_SUBDIRS = compat runtime grammar . plugins/immark \
contrib/mmgrok plugins/mmaudit plugins/mmanon \
plugins/mmutf8fix contrib/mmcount contrib/mmsequence \
plugins/mmfields plugins/mmpstrucdata contrib/mmrfc5424addhmac \
contrib/omhttpfs contrib/omamqp1 tests
contrib/omhttpfs contrib/omamqp1 contrib/omtcl tests
am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in AUTHORS \
COPYING COPYING.LESSER ChangeLog INSTALL NEWS README compile \
config.guess config.sub depcomp install-sh ltmain.sh missing \
@ -405,6 +408,7 @@ LIBUUID_LIBS = @LIBUUID_LIBS@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
@ -456,6 +460,7 @@ SNMP_CFLAGS = @SNMP_CFLAGS@
SNMP_LIBS = @SNMP_LIBS@
SOL_LIBS = @SOL_LIBS@
STRIP = @STRIP@
TCL_INCLUDE_SPEC = @TCL_INCLUDE_SPEC@
UDPSPOOF_CFLAGS = @UDPSPOOF_CFLAGS@
UDPSPOOF_LIBS = @UDPSPOOF_LIBS@
UUDECODE = @UUDECODE@
@ -515,6 +520,7 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
@ -575,7 +581,8 @@ SUBDIRS = compat runtime grammar . plugins/immark plugins/imuxsock \
$(am__append_42) $(am__append_43) $(am__append_44) \
$(am__append_45) $(am__append_46) $(am__append_47) \
$(am__append_48) $(am__append_49) $(am__append_50) \
$(am__append_51) $(am__append_52) $(am__append_53) tests
$(am__append_51) $(am__append_52) $(am__append_53) \
$(am__append_54) tests
# make sure "make distcheck" tries to build all modules. This means that
# a developer must always have an environment where every supporting library

39
README.md

@ -39,7 +39,6 @@ Follow the instructions at: http://www.rsyslog.com/doc/build_from_repo.html
### Build Environment
In general, you need
* libestr
@ -49,23 +48,41 @@ It is best to build these from source.
#### CentOS 6
for json-c, we need
For json-c, we need:
```
$ export PKG_CONFIG_PATH=/lib64/pkgconfig/
export PKG_CONFIG_PATH=/lib64/pkgconfig/
```
```
sudo yum install git valgrind autoconf automake flex bison python-docutils python-sphinx json-c-devel libuuid-devel libgcrypt-devel zlib-devel openssl-devel libcurl-devel gnutls-devel mysql-devel postgresql-devel libdbi-dbd-mysql libdbi-devel net-snmp-devel
```
#### Ubuntu
Note: this list is (obviously) incomplete. We intend to complete it as we
have more information and install additional systems.
Add Adiscon repository:
```
sudo apt-get install libdbi-dev libmysqlclient-dev postgresql-client libpq-dev libnet-dev librdkafka-dev libgrok-dev libgrok1 libgrok-dev libpcre3-dev libtokyocabinet-dev libglib2.0-dev libmongo-client-dev libhiredis-dev
apt-get update && apt-get install -y software-properties-common
add-apt-repository -y ppa:adiscon/v8-stable
```
for KSI, from the Adiscon PPA:
*Note:* if you are a developer who wants to work with git master branch,
adding the Adiscon repository is probably not a good idea. It then
is better to also compile the supporting libraries from source, because
newer versions of rsyslog may need newer versions of the libraries than
there are in the repositories.
Libraries in question are at least: libestr, liblognorm, libfastjson.
Needed packages to build with omhiredis support:
```
apt-get update && apt-get install -y build-essential pkg-config libestr-dev libfastjson-dev zlib1g-dev uuid-dev libgcrypt20-dev liblogging-stdlog-dev libhiredis-dev
```
Aditional packages for other modules:
```
libdbi-dev libmysqlclient-dev postgresql-client libpq-dev libnet-dev librdkafka-dev libgrok-dev libgrok1 libgrok-dev libpcre3-dev libtokyocabinet-dev libglib2.0-dev libmongo-client-dev
```
For KSI, from the Adiscon PPA:
```
sudo apt-get install libksi0 libksi-devel
```
@ -75,20 +92,20 @@ sudo apt-get install libksi0 libksi-devel
```
sudo zypper install gcc make autoconf automake libtool libcurl-devel flex bison valgrind python-docutils libjson-devel uuid-devel libgcrypt-devel libgnutls-devel libmysqlclient-devel libdbi-devel libnet-devel postgresql-devel net-snmp-devellibuuid-devel libdbi-drivers-dbd-mysql
```
For the testbench VMs:
```
sudo zypper install gvim mutt
```
#### SUSE LINUX Enterprise Server 11
Available Packages:
Available packages:
```
zypper install gcc make autoconf libtool flex bison
```
Missing Packages:
Missing packages:
```
libcurl-devel valgrind python-docutils uuid-devel libgcrypt-devel libgnutls-devel libmysqlclient-devel libdbi-devel postgresql-devel net-snmp-devel libdbi-drivers-dbd-mysql json-c zlib-dev libdbi
```

211
aclocal.m4

@ -1314,32 +1314,63 @@ AC_DEFUN([AX_REQUIRE_DEFINED], [dnl
m4_ifndef([$1], [m4_fatal([macro ]$1[ is not defined; is a m4 file missing?])])
])dnl AX_REQUIRE_DEFINED
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
# serial 1 (pkg-config-0.24)
#
# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# PKG_PROG_PKG_CONFIG([MIN-VERSION])
# ----------------------------------
dnl pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
dnl serial 11 (pkg-config-0.29.1)
dnl
dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com>
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
dnl the Free Software Foundation; either version 2 of the License, or
dnl (at your option) any later version.
dnl
dnl This program is distributed in the hope that it will be useful, but
dnl WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
dnl General Public License for more details.
dnl
dnl You should have received a copy of the GNU General Public License
dnl along with this program; if not, write to the Free Software
dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
dnl 02111-1307, USA.
dnl
dnl As a special exception to the GNU General Public License, if you
dnl distribute this file as part of a program that contains a
dnl configuration script generated by Autoconf, you may include it under
dnl the same distribution terms that you use for the rest of that
dnl program.
dnl PKG_PREREQ(MIN-VERSION)
dnl -----------------------
dnl Since: 0.29
dnl
dnl Verify that the version of the pkg-config macros are at least
dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's
dnl installed version of pkg-config, this checks the developer's version
dnl of pkg.m4 when generating configure.
dnl
dnl To ensure that this macro is defined, also add:
dnl m4_ifndef([PKG_PREREQ],
dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])])
dnl
dnl See the "Since" comment for each macro you use to see what version
dnl of the macros you require.
m4_defun([PKG_PREREQ],
[m4_define([PKG_MACROS_VERSION], [0.29.1])
m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
[m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
])dnl PKG_PREREQ
dnl PKG_PROG_PKG_CONFIG([MIN-VERSION])
dnl ----------------------------------
dnl Since: 0.16
dnl
dnl Search for the pkg-config tool and set the PKG_CONFIG variable to
dnl first found in the path. Checks that the version of pkg-config found
dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is
dnl used since that's the first version where most current features of
dnl pkg-config existed.
AC_DEFUN([PKG_PROG_PKG_CONFIG],
[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
@ -1361,18 +1392,19 @@ if test -n "$PKG_CONFIG"; then
PKG_CONFIG=""
fi
fi[]dnl
])# PKG_PROG_PKG_CONFIG
])dnl PKG_PROG_PKG_CONFIG
# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
#
# Check to see whether a particular set of modules exists. Similar
# to PKG_CHECK_MODULES(), but does not set variables or print errors.
#
# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
# only at the first occurence in configure.ac, so if the first place
# it's called might be skipped (such as if it is within an "if", you
# have to call PKG_CHECK_EXISTS manually
# --------------------------------------------------------------
dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
dnl -------------------------------------------------------------------
dnl Since: 0.18
dnl
dnl Check to see whether a particular set of modules exists. Similar to
dnl PKG_CHECK_MODULES(), but does not set variables or print errors.
dnl
dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
dnl only at the first occurence in configure.ac, so if the first place
dnl it's called might be skipped (such as if it is within an "if", you
dnl have to call PKG_CHECK_EXISTS manually
AC_DEFUN([PKG_CHECK_EXISTS],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
if test -n "$PKG_CONFIG" && \
@ -1382,8 +1414,10 @@ m4_ifvaln([$3], [else
$3])dnl
fi])
# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
# ---------------------------------------------
dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
dnl ---------------------------------------------
dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting
dnl pkg_failed based on the result.
m4_define([_PKG_CONFIG],
[if test -n "$$1"; then
pkg_cv_[]$1="$$1"
@ -1395,10 +1429,11 @@ m4_define([_PKG_CONFIG],
else
pkg_failed=untried
fi[]dnl
])# _PKG_CONFIG
])dnl _PKG_CONFIG
# _PKG_SHORT_ERRORS_SUPPORTED
# -----------------------------
dnl _PKG_SHORT_ERRORS_SUPPORTED
dnl ---------------------------
dnl Internal check to see if pkg-config supports short errors.
AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
@ -1406,19 +1441,17 @@ if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
else
_pkg_short_errors_supported=no
fi[]dnl
])# _PKG_SHORT_ERRORS_SUPPORTED
])dnl _PKG_SHORT_ERRORS_SUPPORTED
# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
# [ACTION-IF-NOT-FOUND])
#
#
# Note that if there is a possibility the first call to
# PKG_CHECK_MODULES might not happen, you should be sure to include an
# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
#
#
# --------------------------------------------------------------
dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
dnl [ACTION-IF-NOT-FOUND])
dnl --------------------------------------------------------------
dnl Since: 0.4.0
dnl
dnl Note that if there is a possibility the first call to
dnl PKG_CHECK_MODULES might not happen, you should be sure to include an
dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
AC_DEFUN([PKG_CHECK_MODULES],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
@ -1472,16 +1505,40 @@ else
AC_MSG_RESULT([yes])
$3
fi[]dnl
])# PKG_CHECK_MODULES
])dnl PKG_CHECK_MODULES
dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
dnl [ACTION-IF-NOT-FOUND])
dnl ---------------------------------------------------------------------
dnl Since: 0.29
dnl
dnl Checks for existence of MODULES and gathers its build flags with
dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags
dnl and VARIABLE-PREFIX_LIBS from --libs.
dnl
dnl Note that if there is a possibility the first call to
dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to
dnl include an explicit call to PKG_PROG_PKG_CONFIG in your
dnl configure.ac.
AC_DEFUN([PKG_CHECK_MODULES_STATIC],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
_save_PKG_CONFIG=$PKG_CONFIG
PKG_CONFIG="$PKG_CONFIG --static"
PKG_CHECK_MODULES($@)
PKG_CONFIG=$_save_PKG_CONFIG[]dnl
])dnl PKG_CHECK_MODULES_STATIC
# PKG_INSTALLDIR(DIRECTORY)
# -------------------------
# Substitutes the variable pkgconfigdir as the location where a module
# should install pkg-config .pc files. By default the directory is
# $libdir/pkgconfig, but the default can be changed by passing
# DIRECTORY. The user can override through the --with-pkgconfigdir
# parameter.
dnl PKG_INSTALLDIR([DIRECTORY])
dnl -------------------------
dnl Since: 0.27
dnl
dnl Substitutes the variable pkgconfigdir as the location where a module
dnl should install pkg-config .pc files. By default the directory is
dnl $libdir/pkgconfig, but the default can be changed by passing
dnl DIRECTORY. The user can override through the --with-pkgconfigdir
dnl parameter.
AC_DEFUN([PKG_INSTALLDIR],
[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
m4_pushdef([pkg_description],
@ -1492,16 +1549,18 @@ AC_ARG_WITH([pkgconfigdir],
AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
m4_popdef([pkg_default])
m4_popdef([pkg_description])
]) dnl PKG_INSTALLDIR
])dnl PKG_INSTALLDIR
# PKG_NOARCH_INSTALLDIR(DIRECTORY)
# -------------------------
# Substitutes the variable noarch_pkgconfigdir as the location where a
# module should install arch-independent pkg-config .pc files. By
# default the directory is $datadir/pkgconfig, but the default can be
# changed by passing DIRECTORY. The user can override through the
# --with-noarch-pkgconfigdir parameter.
dnl PKG_NOARCH_INSTALLDIR([DIRECTORY])
dnl --------------------------------
dnl Since: 0.27
dnl
dnl Substitutes the variable noarch_pkgconfigdir as the location where a
dnl module should install arch-independent pkg-config .pc files. By
dnl default the directory is $datadir/pkgconfig, but the default can be
dnl changed by passing DIRECTORY. The user can override through the
dnl --with-noarch-pkgconfigdir parameter.
AC_DEFUN([PKG_NOARCH_INSTALLDIR],
[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
m4_pushdef([pkg_description],
@ -1512,13 +1571,15 @@ AC_ARG_WITH([noarch-pkgconfigdir],
AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
m4_popdef([pkg_default])
m4_popdef([pkg_description])
]) dnl PKG_NOARCH_INSTALLDIR
])dnl PKG_NOARCH_INSTALLDIR
# PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
# -------------------------------------------
# Retrieves the value of the pkg-config variable for the given module.
dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
dnl -------------------------------------------
dnl Since: 0.28
dnl
dnl Retrieves the value of the pkg-config variable for the given module.
AC_DEFUN([PKG_CHECK_VAR],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
@ -1527,7 +1588,7 @@ _PKG_CONFIG([$1], [variable="][$3]["], [$2])
AS_VAR_COPY([$1], [pkg_cv_][$1])
AS_VAR_IF([$1], [""], [$5], [$4])dnl
])# PKG_CHECK_VAR
])dnl PKG_CHECK_VAR
# Copyright (C) 2002-2014 Free Software Foundation, Inc.
#

71
action.c

@ -246,7 +246,7 @@ batchState2String(const batch_state_t state)
* because that would provide little to no benefit but complicate things
* a lot. So we simply return the system time.
*/
static inline time_t
static time_t
getActNow(action_t * const pThis)
{
assert(pThis != NULL);
@ -667,7 +667,7 @@ static void actionRetry(action_t * const pThis, wti_t * const pWti)
* CPU time. TODO: maybe a config option for that?
* rgerhards, 2007-08-02
*/
static inline void
static void
actionSuspend(action_t * const pThis, wti_t * const pWti)
{
time_t ttNow;
@ -871,7 +871,7 @@ finalize_it:
* depending on its current state.
* rgerhards, 2009-05-07
*/
static inline rsRetVal
static rsRetVal
actionPrepare(action_t *__restrict__ const pThis, wti_t *__restrict__ const pWti)
{
DEFiRet;
@ -998,8 +998,8 @@ finalize_it:
/* the #pragmas can go away when we have disable array-passing mode */
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wcast-align"
static void
releaseDoActionParams(action_t *__restrict__ const pAction, wti_t *__restrict__ const pWti)
void
releaseDoActionParams(action_t *__restrict__ const pAction, wti_t *__restrict__ const pWti, int action_destruct)
{
int jArr;
int j;
@ -1008,35 +1008,42 @@ releaseDoActionParams(action_t *__restrict__ const pAction, wti_t *__restrict__
pWrkrInfo = &(pWti->actWrkrInfo[pAction->iActionNbr]);
for(j = 0 ; j < pAction->iNumTpls ; ++j) {
switch(pAction->peParamPassing[j]) {
case ACT_ARRAY_PASSING:
if (action_destruct) {
if (ACT_STRING_PASSING == pAction->peParamPassing[j]) {
free(pWrkrInfo->p.nontx.actParams[j].param);
pWrkrInfo->p.nontx.actParams[j].param = NULL;
}
} else {
switch(pAction->peParamPassing[j]) {
case ACT_ARRAY_PASSING:
ppMsgs = (uchar***) pWrkrInfo->p.nontx.actParams[0].param;
/* if we every use array passing mode again, we need to check
* this code. It hasn't been used since refactoring for v7.
*/
if(ppMsgs != NULL) {
if(((uchar**)ppMsgs)[j] != NULL) {
jArr = 0;
while(ppMsgs[j][jArr] != NULL) {
free(ppMsgs[j][jArr]);
ppMsgs[j][jArr] = NULL;
++jArr;
ppMsgs = (uchar***) pWrkrInfo->p.nontx.actParams[0].param;
/* if we every use array passing mode again, we need to check
* this code. It hasn't been used since refactoring for v7.
*/
if(ppMsgs != NULL) {
if(((uchar**)ppMsgs)[j] != NULL) {
jArr = 0;
while(ppMsgs[j][jArr] != NULL) {
free(ppMsgs[j][jArr]);
ppMsgs[j][jArr] = NULL;
++jArr;
}
free(((uchar**)ppMsgs)[j]);
((uchar**)ppMsgs)[j] = NULL;
}
free(((uchar**)ppMsgs)[j]);
((uchar**)ppMsgs)[j] = NULL;
}
break;
case ACT_JSON_PASSING:
json_object_put((struct json_object*)
pWrkrInfo->p.nontx.actParams[j].param);
pWrkrInfo->p.nontx.actParams[j].param = NULL;
break;
case ACT_STRING_PASSING:
case ACT_MSG_PASSING:
/* no need to do anything with these */
break;
}
break;
case ACT_JSON_PASSING:
json_object_put((struct json_object*)
pWrkrInfo->p.nontx.actParams[j].param);
pWrkrInfo->p.nontx.actParams[j].param = NULL;
break;
case ACT_STRING_PASSING:
case ACT_MSG_PASSING:
/* no need to do anything with these */
break;
}
}
@ -1374,7 +1381,7 @@ processMsgMain(action_t *__restrict__ const pAction,
pWti->actWrkrInfo[pAction->iActionNbr].p.nontx.actParams,
pWti);
if(pAction->bNeedReleaseBatch)
releaseDoActionParams(pAction, pWti);
releaseDoActionParams(pAction, pWti, 0);
finalize_it:
if(iRet == RS_RET_OK) {
if(pWti->execState.bDoAutoCommit)
@ -1923,7 +1930,7 @@ resetConfigVariables(uchar __attribute__((unused)) *pp, void __attribute__((unus
/* initialize (current) config variables.
* Used at program start and when a new scope is created.
*/
static inline void
static void
initConfigVariables(void)
{
cs.bActionWriteAllMarkMsgs = 1;

1
action.h

@ -105,6 +105,7 @@ rsRetVal actionNewInst(struct nvlst *lst, action_t **ppAction);
rsRetVal actionProcessCnf(struct cnfobj *o);
void actionCommitAllDirect(wti_t *pWti);
void actionRemoveWorker(action_t *const pAction, void *const actWrkrData);
void releaseDoActionParams(action_t * const pAction, wti_t * const pWti, int action_destruct);
/* external data */
extern int iActionNbr;

3
compat/Makefile.in

@ -262,6 +262,7 @@ LIBUUID_LIBS = @LIBUUID_LIBS@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
@ -313,6 +314,7 @@ SNMP_CFLAGS = @SNMP_CFLAGS@
SNMP_LIBS = @SNMP_LIBS@
SOL_LIBS = @SOL_LIBS@
STRIP = @STRIP@
TCL_INCLUDE_SPEC = @TCL_INCLUDE_SPEC@
UDPSPOOF_CFLAGS = @UDPSPOOF_CFLAGS@
UDPSPOOF_LIBS = @UDPSPOOF_LIBS@
UUDECODE = @UUDECODE@
@ -372,6 +374,7 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@

34
config.guess

@ -2,7 +2,7 @@
# Attempt to guess a canonical system name.
# Copyright 1992-2015 Free Software Foundation, Inc.
timestamp='2015-01-01'
timestamp='2015-08-20'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@ -168,20 +168,27 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# Note: NetBSD doesn't particularly care about the vendor
# portion of the name. We always set it to "unknown".
sysctl="sysctl -n hw.machine_arch"
UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
/usr/sbin/$sysctl 2>/dev/null || echo unknown)`
UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
/sbin/$sysctl 2>/dev/null || \
/usr/sbin/$sysctl 2>/dev/null || \
echo unknown)`
case "${UNAME_MACHINE_ARCH}" in
armeb) machine=armeb-unknown ;;
arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
sh3eb) machine=sh-unknown ;;
sh5el) machine=sh5le-unknown ;;
earmv*)
arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'`
machine=${arch}${endian}-unknown
;;
*) machine=${UNAME_MACHINE_ARCH}-unknown ;;
esac
# The Operating System including object format, if it has switched
# to ELF recently, or will in the future.
case "${UNAME_MACHINE_ARCH}" in
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
arm*|earm*|i386|m68k|ns32k|sh3*|sparc|vax)
eval $set_cc_for_build
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ELF__
@ -197,6 +204,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
os=netbsd
;;
esac
# Determine ABI tags.
case "${UNAME_MACHINE_ARCH}" in
earm*)
expr='s/^earmv[0-9]/-eabi/;s/eb$//'
abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"`
;;
esac
# The OS release
# Debian GNU/NetBSD machines have a different userland, and
# thus, need a distinct triplet. However, they do not need
@ -207,13 +221,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
release='-gnu'
;;
*)
release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2`
;;
esac
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
echo "${machine}-${os}${release}"
echo "${machine}-${os}${release}${abi}"
exit ;;
*:Bitrig:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
@ -235,6 +249,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
*:MirBSD:*:*)
echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
exit ;;
*:Sortix:*:*)
echo ${UNAME_MACHINE}-unknown-sortix
exit ;;
alpha:OSF1:*:*)
case $UNAME_RELEASE in
*4.0)
@ -933,6 +950,9 @@ EOF
crisv32:Linux:*:*)
echo ${UNAME_MACHINE}-axis-linux-${LIBC}
exit ;;
e2k:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
frv:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
exit ;;
@ -1021,7 +1041,7 @@ EOF
echo ${UNAME_MACHINE}-dec-linux-${LIBC}
exit ;;
x86_64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
echo ${UNAME_MACHINE}-pc-linux-${LIBC}
exit ;;
xtensa*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}

5
config.h.in

@ -195,7 +195,7 @@
/* Can set thread-name. */
#undef HAVE_PTHREAD_SETNAME_NP
/* Define to 1 if you have the `pthread_setschedparam' function. */
/* Can set thread scheduling parameters */
#undef HAVE_PTHREAD_SETSCHEDPARAM
/* Define to 1 if you have the `recvmmsg' function. */
@ -371,8 +371,7 @@
slash. */
#undef LSTAT_FOLLOWS_SLASHED_SYMLINK
/* Define to the sub-directory in which libtool stores uninstalled libraries.
*/
/* Define to the sub-directory where libtool stores uninstalled libraries. */
#undef LT_OBJDIR
/* Define with a value if your <sys/param.h> does not define MAXHOSTNAMELEN */

22
config.sub

@ -2,7 +2,7 @@
# Configuration validation subroutine script.
# Copyright 1992-2015 Free Software Foundation, Inc.
timestamp='2015-01-01'
timestamp='2015-08-20'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@ -117,7 +117,7 @@ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
knetbsd*-gnu* | netbsd*-gnu* | \
knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
kopensolaris*-gnu* | \
storm-chaos* | os2-emx* | rtmk-nova*)
os=-$maybe_os
@ -255,11 +255,12 @@ case $basic_machine in
| arc | arceb \
| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
| avr | avr32 \
| ba \
| be32 | be64 \
| bfin \
| c4x | c8051 | clipper \
| d10v | d30v | dlx | dsp16xx \
| epiphany \
| e2k | epiphany \
| fido | fr30 | frv | ft32 \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| hexagon \
@ -305,7 +306,7 @@ case $basic_machine in
| riscv32 | riscv64 \
| rl78 | rx \
| score \
| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
| sh64 | sh64le \
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
@ -376,12 +377,13 @@ case $basic_machine in
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* | avr32-* \
| ba-* \
| be32-* | be64-* \
| bfin-* | bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* \
| c8051-* | clipper-* | craynv-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
| elxsi-* \
| e2k-* | elxsi-* \
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
| h8300-* | h8500-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
@ -428,12 +430,13 @@ case $basic_machine in
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
| pyramid-* \
| riscv32-* | riscv64-* \
| rl78-* | romp-* | rs6000-* | rx-* \
| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
| sparclite-* \
| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
| tahoe-* \
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
| tile*-* \
@ -518,6 +521,9 @@ case $basic_machine in
basic_machine=i386-pc
os=-aros
;;
asmjs)
basic_machine=asmjs-unknown
;;
aux)
basic_machine=m68k-apple
os=-aux
@ -1025,7 +1031,7 @@ case $basic_machine in
;;
ppc64) basic_machine=powerpc64-unknown
;;
ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppc64le | powerpc64little | ppc64-le | powerpc64-little)
basic_machine=powerpc64le-unknown
@ -1373,7 +1379,7 @@ case $os in
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
| -sym* | -kopensolaris* | -plan9* \
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
| -aos* | -aros* \
| -aos* | -aros* | -cloudabi* | -sortix* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \

2331
configure

File diff suppressed because it is too large

60
configure.ac

@ -2,7 +2,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.61)
AC_INIT([rsyslog],[8.22.0],[rsyslog@lists.adiscon.com])
AC_INIT([rsyslog],[8.23.0],[rsyslog@lists.adiscon.com])
AM_INIT_AUTOMAKE([subdir-objects])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
@ -44,7 +44,7 @@ PKG_PROG_PKG_CONFIG
# modules we require
PKG_CHECK_MODULES(LIBESTR, libestr >= 0.1.9)
PKG_CHECK_MODULES([JSON_C], [libfastjson],,)
PKG_CHECK_MODULES([JSON_C], [libfastjson >= 0.99.3],,)
AC_DEFINE_UNQUOTED([PLATFORM_ID], ["${host}"], [platform id for display purposes])
# we don't mind if we don't have the lsb_release utility. But if we have, it's
@ -79,6 +79,12 @@ case "${host}" in
;;
esac
# Running from git source?
in_git_src=no
AS_IF([test -d "$srcdir"/.git && ! test -f "$srcdir"/.tarball-version], [in_git_src=yes])
AM_CONDITIONAL(OS_LINUX, test x$os_type == xlinux)
AC_DEFINE_UNQUOTED([HOSTENV], "$host", [the host environment, can be queried via a system variable])
# Checks for libraries.
@ -312,10 +318,14 @@ AC_CHECK_LIB(
[1],
[Can set thread-name.])])
AC_CHECK_FUNCS(
AC_SEARCH_LIBS(
[pthread_setschedparam],
[pthread],
[
rsyslog_have_pthread_setschedparam=yes
AC_DEFINE([HAVE_PTHREAD_SETSCHEDPARAM],
[1],
[Can set thread scheduling parameters])
],
[
rsyslog_have_pthread_setschedparam=no
@ -453,14 +463,23 @@ AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_sy
# debug
AC_ARG_ENABLE(debug,
[AS_HELP_STRING([--enable-debug],[Enable debug mode @<:@default=no@:>@])],
[AS_HELP_STRING([--enable-debug],[Enable debug mode @<:@default=auto@:>@])],
[case "${enableval}" in
yes) enable_debug="yes" ;;
no) enable_debug="no" ;;
yes) enable_debug="yes" ;;
no) enable_debug="no" ;;
auto) enable_debug="auto" ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;;
esac],
[enable_debug="no"]
[enable_debug="auto"]
)
if test "$enable_debug" = "auto"; then
if test "x$in_git_src" = "xyes"; then
enable_debug="yes"
else
enable_debug="no"
fi
AC_MSG_NOTICE([enable-debug in auto mode, enable-debug is set to ${enable_debug}])
fi
if test "$enable_debug" = "yes"; then
AC_DEFINE(DEBUG, 1, [Defined if debug mode is enabled (its easier to check).])
fi
@ -1749,6 +1768,27 @@ AM_CONDITIONAL(ENABLE_OMAMQP1, test x$enable_omamqp1 = xyes)
# END AMQP 1.0 PROTOCOL SUPPORT
# TCL SUPPORT
AC_ARG_ENABLE(omtcl,
[AS_HELP_STRING([--enable-omtcl],[Compiles omtcl output module @<:@default=no@:>@])],
[case "${enableval}" in
yes) enable_omtcl="yes" ;;
no) enable_omtcl="no" ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-omtcl) ;;
esac],
[enable_omtcl=no]
)
if test "x$enable_omtcl" = "xyes"; then
SC_PATH_TCLCONFIG
SC_LOAD_TCLCONFIG
AC_SUBST(TCL_INCLUDE_SPEC)
fi
AM_CONDITIONAL(ENABLE_OMTCL, test x$enable_omtcl = xyes)
# END TCL SUPPORT
# man pages
AC_CHECKING([if required man pages already exist])
have_to_generate_man_pages="no"
@ -1777,10 +1817,6 @@ AC_ARG_ENABLE(distcheck-workaround,
AM_CONDITIONAL(ENABLE_DISTCHECK_WORKAROUND, test x$enable_distcheck_workaround = xyes)
# Running from git source?
in_git_src=no
AS_IF([test -d "$srcdir"/.git && ! test -f "$srcdir"/.tarball-version], [in_git_src=yes])
if test "x$in_git_src" = "xyes"; then
AC_MSG_NOTICE([Running from git source])
@ -1875,6 +1911,7 @@ AC_CONFIG_FILES([Makefile \
contrib/pmcisconames/Makefile \
contrib/omhttpfs/Makefile \
contrib/omamqp1/Makefile \
contrib/omtcl/Makefile \
tests/Makefile])
AC_OUTPUT
@ -1925,6 +1962,7 @@ echo " omczmq module will be compiled: $enable_omczmq"
echo " omrabbitmq module will be compiled: $enable_omrabbitmq"
echo " omhttpfs module will be compiled: $enable_omhttpfs"
echo " omamqp1 module will be compiled: $enable_omamqp1"
echo " omtcl module will be compiled: $enable_omtcl"
echo
echo "---{ parser modules }---"
echo " pmlastmsg module will be compiled: $enable_pmlastmsg"

3
contrib/imczmq/Makefile.in

@ -290,6 +290,7 @@ LIBUUID_LIBS = @LIBUUID_LIBS@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
@ -341,6 +342,7 @@ SNMP_CFLAGS = @SNMP_CFLAGS@
SNMP_LIBS = @SNMP_LIBS@
SOL_LIBS = @SOL_LIBS@
STRIP = @STRIP@
TCL_INCLUDE_SPEC = @TCL_INCLUDE_SPEC@
UDPSPOOF_CFLAGS = @UDPSPOOF_CFLAGS@
UDPSPOOF_LIBS = @UDPSPOOF_LIBS@
UUDECODE = @UUDECODE@
@ -400,6 +402,7 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@

3
contrib/imkmsg/Makefile.in

@ -289,6 +289,7 @@ LIBUUID_LIBS = @LIBUUID_LIBS@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
@ -340,6 +341,7 @@ SNMP_CFLAGS = @SNMP_CFLAGS@
SNMP_LIBS = @SNMP_LIBS@
SOL_LIBS = @SOL_LIBS@
STRIP = @STRIP@
TCL_INCLUDE_SPEC = @TCL_INCLUDE_SPEC@
UDPSPOOF_CFLAGS = @UDPSPOOF_CFLAGS@
UDPSPOOF_LIBS = @UDPSPOOF_LIBS@
UUDECODE = @UUDECODE@
@ -399,6 +401,7 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@

3
contrib/imzmq3/Makefile.in

@ -290,6 +290,7 @@ LIBUUID_LIBS = @LIBUUID_LIBS@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
@ -341,6 +342,7 @@ SNMP_CFLAGS = @SNMP_CFLAGS@
SNMP_LIBS = @SNMP_LIBS@
SOL_LIBS = @SOL_LIBS@
STRIP = @STRIP@
TCL_INCLUDE_SPEC = @TCL_INCLUDE_SPEC@
UDPSPOOF_CFLAGS = @UDPSPOOF_CFLAGS@
UDPSPOOF_LIBS = @UDPSPOOF_LIBS@
UUDECODE = @UUDECODE@
@ -400,6 +402,7 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@

3
contrib/mmcount/Makefile.in

@ -289,6 +289,7 @@ LIBUUID_LIBS = @LIBUUID_LIBS@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
@ -340,6 +341,7 @@ SNMP_CFLAGS = @SNMP_CFLAGS@
SNMP_LIBS = @SNMP_LIBS@
SOL_LIBS = @SOL_LIBS@
STRIP = @STRIP@
TCL_INCLUDE_SPEC = @TCL_INCLUDE_SPEC@
UDPSPOOF_CFLAGS = @UDPSPOOF_CFLAGS@
UDPSPOOF_LIBS = @UDPSPOOF_LIBS@
UUDECODE = @UUDECODE@
@ -399,6 +401,7 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@

3
contrib/mmgrok/Makefile.in

@ -290,6 +290,7 @@ LIBUUID_LIBS = @LIBUUID_LIBS@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
@ -341,6 +342,7 @@ SNMP_CFLAGS = @SNMP_CFLAGS@
SNMP_LIBS = @SNMP_LIBS@
SOL_LIBS = @SOL_LIBS@
STRIP = @STRIP@
TCL_INCLUDE_SPEC = @TCL_INCLUDE_SPEC@
UDPSPOOF_CFLAGS = @UDPSPOOF_CFLAGS@
UDPSPOOF_LIBS = @UDPSPOOF_LIBS@
UUDECODE = @UUDECODE@
@ -400,6 +402,7 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@

2
contrib/mmgrok/README

@ -21,7 +21,7 @@ Example
module(load="mmgrok")
template(name="tmlp" type="string" string="%$!msg!test%\n")
action(type="mmgrok" patterndir="path/to/yourpatternsDir" match="%{WORD:test}" soure="msg" target="!msg")
action(type="mmgrok" patterndir="path/to/yourpatternsDir" match="%{WORD:test}" source="msg" target="!msg")
action(type="omfile" file="path/to/file" template="tmlp")
Descrption

3
contrib/mmrfc5424addhmac/Makefile.in

@ -292,6 +292,7 @@ LIBUUID_LIBS = @LIBUUID_LIBS@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
@ -343,6 +344,7 @@ SNMP_CFLAGS = @SNMP_CFLAGS@
SNMP_LIBS = @SNMP_LIBS@
SOL_LIBS = @SOL_LIBS@
STRIP = @STRIP@
TCL_INCLUDE_SPEC = @TCL_INCLUDE_SPEC@
UDPSPOOF_CFLAGS = @UDPSPOOF_CFLAGS@
UDPSPOOF_LIBS = @UDPSPOOF_LIBS@
UUDECODE = @UUDECODE@
@ -402,6 +404,7 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@

10
contrib/mmrfc5424addhmac/mmrfc5424addhmac.c

@ -218,7 +218,7 @@ ENDtryResume
/* turn the binary data in bin of length len into a
* printable hex string. "print" must be 2*len+1 (for \0)
*/
static inline void
static void
hexify(uchar *bin, int len, uchar *print)
{
static const char hexchars[16] =
@ -238,7 +238,7 @@ hexify(uchar *bin, int len, uchar *print)
* also reduce performance. So we consider the current implementation
* to be superior.
*/
static inline void
static void
skipSDID(uchar *sdbuf, int sdlen, int *rootIdx)
{
int i;
@ -257,7 +257,7 @@ skipSDID(uchar *sdbuf, int sdlen, int *rootIdx)
*rootIdx = i;
}
static inline void
static void
getSDID(uchar *sdbuf, int sdlen, int *rootIdx, uchar *sdid)
{
int i, j;
@ -280,7 +280,7 @@ done:
}
/* check if "our" hmac is already present */
static inline sbool
static sbool
isHmacPresent(instanceData *pData, msg_t *pMsg)
{
uchar *sdbuf;
@ -309,7 +309,7 @@ done:
return found;
}
static inline rsRetVal
static rsRetVal
hashMsg(instanceData *pData, msg_t *pMsg)
{
uchar *pRawMsg;

3
contrib/mmsequence/Makefile.in

@ -289,6 +289,7 @@ LIBUUID_LIBS = @LIBUUID_LIBS@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
@ -340,6 +341,7 @@ SNMP_CFLAGS = @SNMP_CFLAGS@
SNMP_LIBS = @SNMP_LIBS@
SOL_LIBS = @SOL_LIBS@
STRIP = @STRIP@
TCL_INCLUDE_SPEC = @TCL_INCLUDE_SPEC@
UDPSPOOF_CFLAGS = @UDPSPOOF_CFLAGS@
UDPSPOOF_LIBS = @UDPSPOOF_LIBS@
UUDECODE = @UUDECODE@
@ -399,6 +401,7 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@

3
contrib/omamqp1/Makefile.in

@ -290,6 +290,7 @@ LIBUUID_LIBS = @LIBUUID_LIBS@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
@ -341,6 +342,7 @@ SNMP_CFLAGS = @SNMP_CFLAGS@
SNMP_LIBS = @SNMP_LIBS@
SOL_LIBS = @SOL_LIBS@
STRIP = @STRIP@
TCL_INCLUDE_SPEC = @TCL_INCLUDE_SPEC@
UDPSPOOF_CFLAGS = @UDPSPOOF_CFLAGS@
UDPSPOOF_LIBS = @UDPSPOOF_LIBS@
UUDECODE = @UUDECODE@
@ -400,6 +402,7 @@ pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
runstatedir = @runstatedir@
sbindir = @sbindir@