Browse Source

Imported Upstream version 8.10.0

upstream upstream/8.10.0
Michael Biebl 8 years ago
parent
commit
2ba446339c
  1. 1
      .tarball-version
  2. 47
      ChangeLog
  3. 10
      Makefile.am
  4. 41
      Makefile.in
  5. 12
      README.md
  6. 10
      action.c
  7. 1
      action.h
  8. 1
      compat/Makefile.in
  9. 17
      config.h.in
  10. 542
      configure
  11. 110
      configure.ac
  12. 1
      contrib/imczmq/Makefile.in
  13. 9
      contrib/imczmq/README
  14. 48
      contrib/imczmq/imczmq.c
  15. 1
      contrib/imkmsg/Makefile.in
  16. 1
      contrib/imzmq3/Makefile.in
  17. 1
      contrib/mmcount/Makefile.in
  18. 1
      contrib/mmrfc5424addhmac/Makefile.in
  19. 1
      contrib/mmsequence/Makefile.in
  20. 1
      contrib/omczmq/Makefile.in
  21. 50
      contrib/omczmq/omczmq.c
  22. 1
      contrib/omhiredis/Makefile.in
  23. 9
      contrib/omhttpfs/Makefile.am
  24. 720
      contrib/omhttpfs/Makefile.in
  25. 956
      contrib/omhttpfs/omhttpfs.c
  26. 1
      contrib/omrabbitmq/Makefile.in
  27. 1
      contrib/omzmq3/Makefile.in
  28. 1
      contrib/pmaixforwardedfrom/Makefile.in
  29. 1
      contrib/pmcisconames/Makefile.in
  30. 1
      contrib/pmsnare/Makefile.in
  31. 1
      grammar/Makefile.in
  32. 11
      grammar/rainerscript.c
  33. 1
      plugins/im3195/Makefile.in
  34. 1
      plugins/imdiag/Makefile.in
  35. 1
      plugins/imfile/Makefile.in
  36. 55
      plugins/imfile/imfile.c
  37. 1
      plugins/imgssapi/Makefile.in
  38. 1
      plugins/imjournal/Makefile.in
  39. 1
      plugins/imklog/Makefile.in
  40. 1
      plugins/immark/Makefile.in
  41. 1
      plugins/impstats/Makefile.in
  42. 1
      plugins/imptcp/Makefile.in
  43. 1
      plugins/imrelp/Makefile.in
  44. 1
      plugins/imsolaris/Makefile.in
  45. 1
      plugins/imtcp/Makefile.in
  46. 1
      plugins/imudp/Makefile.in
  47. 1
      plugins/imuxsock/Makefile.in
  48. 9
      plugins/imuxsock/imuxsock.c
  49. 1
      plugins/mmanon/Makefile.in
  50. 1
      plugins/mmaudit/Makefile.in
  51. 1
      plugins/mmexternal/Makefile.in
  52. 1
      plugins/mmfields/Makefile.in
  53. 1
      plugins/mmjsonparse/Makefile.in
  54. 1
      plugins/mmnormalize/Makefile.in
  55. 1
      plugins/mmpstrucdata/Makefile.in
  56. 49
      plugins/mmpstrucdata/mmpstrucdata.c
  57. 1
      plugins/mmsnmptrapd/Makefile.in
  58. 1
      plugins/mmutf8fix/Makefile.in
  59. 1
      plugins/omelasticsearch/Makefile.in
  60. 4
      plugins/omelasticsearch/omelasticsearch.c
  61. 1
      plugins/omgssapi/Makefile.in
  62. 1
      plugins/omhdfs/Makefile.in
  63. 1
      plugins/omjournal/Makefile.in
  64. 1
      plugins/omkafka/Makefile.in
  65. 1
      plugins/omlibdbi/Makefile.in
  66. 1
      plugins/ommail/Makefile.in
  67. 1
      plugins/ommongodb/Makefile.in
  68. 1
      plugins/ommysql/Makefile.in
  69. 1
      plugins/ompgsql/Makefile.in
  70. 1
      plugins/omprog/Makefile.in
  71. 1
      plugins/omrelp/Makefile.in
  72. 1
      plugins/omruleset/Makefile.in
  73. 1
      plugins/omsnmp/Makefile.in
  74. 1
      plugins/omstdout/Makefile.in
  75. 1
      plugins/omtesting/Makefile.in
  76. 1
      plugins/omudpspoof/Makefile.in
  77. 1
      plugins/omuxsock/Makefile.in
  78. 1
      plugins/pmciscoios/Makefile.in
  79. 2
      plugins/pmciscoios/pmciscoios.c
  80. 1
      plugins/pmlastmsg/Makefile.in
  81. 1
      runtime/Makefile.in
  82. 5
      runtime/cfsysline.c
  83. 29
      runtime/datetime.c
  84. 10
      runtime/datetime.h
  85. 19
      runtime/msg.c
  86. 42
      runtime/nsd_gtls.c
  87. 18
      runtime/rsconf.c
  88. 8
      runtime/rsyslog.h
  89. 9
      runtime/ruleset.c
  90. 6
      runtime/srutils.c
  91. 91
      runtime/stream.c
  92. 5
      runtime/stream.h
  93. 1
      runtime/typedefs.h
  94. 2
      tcpsrv.c
  95. 29
      tests/Makefile.am
  96. 398
      tests/Makefile.in
  97. 14
      tests/abort-uncleancfg-badcfg-check.sh
  98. 14
      tests/abort-uncleancfg-goodcfg-check.sh
  99. 29
      tests/bad_qi/dbq.qi
  100. 16
      tests/badqi.sh

1
.tarball-version

@ -0,0 +1 @@
8.10.0

47
ChangeLog

@ -1,4 +1,51 @@
------------------------------------------------------------------------------
Version 8.10.0 [v8-stable] 2015-05-19
- imfile: add capability to process multi-line messages based on regex
input parameter "endmsg.regex" was added for that purpose. The new
mode provides much more power in processing different multiline-formats.
- pmrfc3164: add new parameters
* "detect.yearAfterTimestamp"
This supports timestamps as generated e.g. by some Aruba Networks
equipment.
* "permit.squareBracesInHostname"
Permits to use "hostnames" in the form of "[127.0.0.1]"; also seen in
Aruba Networks equipment, but we strongly assume this can also happen
in other cases, especially with IPv6.
- supplementary groups are now set when dropping privileges
closes https://github.com/rsyslog/rsyslog/issues/296
Thanks to Zach Lisinski for the patch.
- imfile: added brace glob expansion to wildcard
Thanks to Zach Lisinski for the patch.
- zmq: add the ability for zeromq input and outputs to advertise their
presence on UDP via the zbeacon API.
Thanks to Brian Knox for the contribution.
- added omhttpfs: contributed module for writing to HDFS via HTTP
Thanks to sskaje for the contribution.
- Configure option "--disable-debug-symbols" added which is disabled per
default. If you set the new option, configure won't set the appropriate
compiler flag to generate debug symbols anymore.
- When building from git source we now require rst2man and yacc (or a
replacement like bison).
That isn't any new requirement, we only added missing configure checks.
- Configure option "--enable-generate-man-pages" is now disabled for non git
source builds per default but enforced when building from git source.
- mmpstrucdata: some code cleanup
removed lots of early development debug outputs
- bugfix imuxsock: fix a crash when setting a hostname
Setting a hostname via the legacy directive would lead to a crash
during shutdown caused by a double-free.
Thanks to Tomas Heinrich for the patch.
- bugfix: memory leak in mmpstrucdata
Thanks to Grégoire Seux for reporting this issue.
closes https://github.com/rsyslog/rsyslog/issues/310
- bugfix (minor): default action name: assigned number was one off
see also https://github.com/rsyslog/rsyslog/pull/340
Thanks to Tomas Heinrich for the patch.
- bugfix: memory leak in imfile
A small leak happened each time a new file was monitored based on
a wildcard. Depending on the rate of file creation, this could result
in a serious memory leak.
------------------------------------------------------------------------------
Version 8.9.0 [v8-stable] 2015-04-07
- omprog: add option "hup.forward" to forwards HUP to external plugins
This was suggested by David Lang so that external plugins (and other

10
Makefile.am

@ -272,11 +272,17 @@ if ENABLE_MMRFC5424ADDHMAC
SUBDIRS += contrib/mmrfc5424addhmac
endif
# omhttpfs
if ENABLE_OMHTTPFS
SUBDIRS += contrib/omhttpfs
endif
# tests are added as last element, because tests may need different
# modules that need to be generated first
SUBDIRS += tests
# make sure "make distcheck" tries to build all modules. This means that
# a developer must always have an environment where every supporting library
# is available. If that is not the case, the respective configure option may
@ -314,4 +320,8 @@ DISTCHECK_CONFIGURE_FLAGS= --enable-imfile \
# --enable-gssapi_krb5 \
# --enable-extended-tests \
# --enable-pgsql
dist-hook:
$(AM_V_GEN)echo $(VERSION) > $(distdir)/.tarball-version
ACLOCAL_AMFLAGS = -I m4

41
Makefile.in

@ -136,6 +136,9 @@ sbin_PROGRAMS =
@ENABLE_MMFIELDS_TRUE@am__append_49 = plugins/mmfields
@ENABLE_MMPSTRUCDATA_TRUE@am__append_50 = plugins/mmpstrucdata
@ENABLE_MMRFC5424ADDHMAC_TRUE@am__append_51 = contrib/mmrfc5424addhmac
# omhttpfs
@ENABLE_OMHTTPFS_TRUE@am__append_52 = contrib/omhttpfs
subdir = .
DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \
$(srcdir)/Makefile.in $(srcdir)/Makefile.am \
@ -320,7 +323,7 @@ DIST_SUBDIRS = compat runtime grammar . plugins/immark \
plugins/mmnormalize plugins/mmjsonparse plugins/mmaudit \
plugins/mmanon plugins/mmutf8fix contrib/mmcount \
contrib/mmsequence plugins/mmfields plugins/mmpstrucdata \
contrib/mmrfc5424addhmac tests
contrib/mmrfc5424addhmac contrib/omhttpfs tests
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
@ -493,6 +496,7 @@ UDPSPOOF_LIBS = @UDPSPOOF_LIBS@
VALGRIND = @VALGRIND@
VERSION = @VERSION@
YACC = @YACC@
YACC_FOUND = @YACC_FOUND@
YFLAGS = @YFLAGS@
ZLIB_CFLAGS = @ZLIB_CFLAGS@
ZLIB_LIBS = @ZLIB_LIBS@
@ -627,7 +631,7 @@ SUBDIRS = compat runtime grammar . plugins/immark plugins/imuxsock \
$(am__append_41) $(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) tests
$(am__append_50) $(am__append_51) $(am__append_52) tests
# make sure "make distcheck" tries to build all modules. This means that
# a developer must always have an environment where every supporting library
@ -662,11 +666,6 @@ DISTCHECK_CONFIGURE_FLAGS = --enable-imfile \
--enable-testbench \
--with-systemdsystemunitdir=$$dc_install_base/$(systemdsystemunitdir)
# temporarily disable these checks for make distcheck 2012-09-06 rgerhards
# --enable-mmsnmptrapd \
# --enable-gssapi_krb5 \
# --enable-extended-tests \
# --enable-pgsql
ACLOCAL_AMFLAGS = -I m4
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
@ -1072,6 +1071,9 @@ distdir: $(DISTFILES)
|| exit 1; \
fi; \
done
$(MAKE) $(AM_MAKEFLAGS) \
top_distdir="$(top_distdir)" distdir="$(distdir)" \
dist-hook
-test -n "$(am__skip_mode_fix)" \
|| find "$(distdir)" -type d ! -perm -755 \
-exec chmod u+rwx,go+rx {} \; -o \
@ -1323,14 +1325,15 @@ uninstall-am: uninstall-nodist_systemdsystemunitDATA \
am--refresh check check-am clean clean-cscope clean-generic \
clean-libtool clean-pkglibLTLIBRARIES clean-sbinPROGRAMS \
cscope cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \
dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \
distcheck distclean distclean-compile distclean-generic \
distclean-hdr distclean-libtool distclean-tags distcleancheck \
distdir distuninstallcheck dvi dvi-am html html-am info \
info-am install install-am install-data install-data-am \
install-dvi install-dvi-am install-exec install-exec-am \
install-html install-html-am install-info install-info-am \
install-man install-nodist_systemdsystemunitDATA install-pdf \
dist-gzip dist-hook dist-lzip dist-shar dist-tarZ dist-xz \
dist-zip distcheck distclean distclean-compile \
distclean-generic distclean-hdr distclean-libtool \
distclean-tags distcleancheck distdir distuninstallcheck dvi \
dvi-am html html-am info info-am install install-am \
install-data install-data-am install-dvi install-dvi-am \
install-exec install-exec-am install-html install-html-am \
install-info install-info-am install-man \
install-nodist_systemdsystemunitDATA install-pdf \
install-pdf-am install-pkglibLTLIBRARIES install-ps \
install-ps-am install-sbinPROGRAMS install-strip installcheck \
installcheck-am installdirs installdirs-am maintainer-clean \
@ -1343,6 +1346,14 @@ uninstall-am: uninstall-nodist_systemdsystemunitDATA \
@HAVE_SYSTEMD_TRUE@%.service: %.service.in
@HAVE_SYSTEMD_TRUE@ $(AM_V_GEN)sed -e 's,@sbindir\@,$(sbindir),g' $< > $@
# temporarily disable these checks for make distcheck 2012-09-06 rgerhards
# --enable-mmsnmptrapd \
# --enable-gssapi_krb5 \
# --enable-extended-tests \
# --enable-pgsql
dist-hook:
$(AM_V_GEN)echo $(VERSION) > $(distdir)/.tarball-version
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.

12
README.md

@ -66,6 +66,18 @@ For the testbench VMs:
sudo zypper install gvim mutt
SUSE LINUX Enterprise Server 11
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Available Packages:
zypper install gcc make autoconf libtool flex bison
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
Reporting Bugs
==============

10
action.c

@ -188,7 +188,8 @@ static struct cnfparamdescr cnfparamdescr[] = {
{ "action.resumeretrycount", eCmdHdlrInt, 0 }, /* legacy: actionresumeretrycount */
{ "action.reportsuspension", eCmdHdlrBinary, 0 },
{ "action.reportsuspensioncontinuation", eCmdHdlrBinary, 0 },
{ "action.resumeinterval", eCmdHdlrInt, 0 }
{ "action.resumeinterval", eCmdHdlrInt, 0 },
{ "action.copymsg", eCmdHdlrBinary, 0 }
};
static struct cnfparamblk pblk =
{ CNFPARAMBLK_VERSION,
@ -355,6 +356,7 @@ rsRetVal actionConstruct(action_t **ppThis)
pThis->isTransactional = 0;
pThis->bReportSuspension = -1; /* indicate "not yet set" */
pThis->bReportSuspensionCont = -1; /* indicate "not yet set" */
pThis->bCopyMsg = 0;
pThis->tLastOccur = datetime.GetTime(NULL); /* done once per action on startup only */
pThis->iActionNbr = iActionNbr;
pthread_mutex_init(&pThis->mutAction, NULL);
@ -383,7 +385,7 @@ actionConstructFinalize(action_t *__restrict__ const pThis, struct nvlst *lst)
}
/* generate a friendly name for us action stats */
if(pThis->pszName == NULL) {
snprintf((char*) pszAName, sizeof(pszAName)/sizeof(uchar), "action %d", iActionNbr);
snprintf((char*) pszAName, sizeof(pszAName)/sizeof(uchar), "action %d", pThis->iActionNbr);
pThis->pszName = ustrdup(pszAName);
}
@ -1448,7 +1450,7 @@ doSubmitToActionQ(action_t * const pAction, wti_t * const pWti, msg_t *pMsg)
} else {/* in this case, we do single submits to the queue.
* TODO: optimize this, we may do at least a multi-submit!
*/
iRet = qqueueEnqMsg(pAction->pQueue, eFLOWCTL_NO_DELAY, MsgAddRef(pMsg));
iRet = qqueueEnqMsg(pAction->pQueue, eFLOWCTL_NO_DELAY, pAction->bCopyMsg ? MsgDup(pMsg) : MsgAddRef(pMsg));
}
RETiRet;
@ -1676,6 +1678,8 @@ actionApplyCnfParam(action_t * const pAction, struct cnfparamvals * const pvals)
pAction->bReportSuspension = (int) pvals[i].val.d.n;
} else if(!strcmp(pblk.descr[i].name, "action.reportsuspensioncontinuation")) {
pAction->bReportSuspensionCont = (int) pvals[i].val.d.n;
} else if(!strcmp(pblk.descr[i].name, "action.copymsg")) {
pAction->bCopyMsg = (int) pvals[i].val.d.n;
} else if(!strcmp(pblk.descr[i].name, "action.resumeinterval")) {
pAction->iResumeInterval = pvals[i].val.d.n;
} else {

1
action.h

@ -49,6 +49,7 @@ struct action_s {
sbool bHadAutoCommit; /* did an auto-commit happen during doAction()? */
sbool bDisabled;
sbool isTransactional;
sbool bCopyMsg;
int iSecsExecOnceInterval; /* if non-zero, minimum seconds to wait until action is executed again */
time_t ttResumeRtry; /* when is it time to retry the resume? */
int iResumeInterval;/* resume interval for this action */

1
compat/Makefile.in

@ -297,6 +297,7 @@ UDPSPOOF_LIBS = @UDPSPOOF_LIBS@
VALGRIND = @VALGRIND@
VERSION = @VERSION@
YACC = @YACC@
YACC_FOUND = @YACC_FOUND@
YFLAGS = @YFLAGS@
ZLIB_CFLAGS = @ZLIB_CFLAGS@
ZLIB_LIBS = @ZLIB_LIBS@

17
config.h.in

@ -45,6 +45,9 @@
/* Define to 1 if you have the `clock_gettime' function. */
#undef HAVE_CLOCK_GETTIME
/* Define to 1 if you have the <curl/curl.h> header file. */
#undef HAVE_CURL_CURL_H
/* Define to 1 if you have the <dbi/dbi.h> header file. */
#undef HAVE_DBI_DBI_H
@ -100,6 +103,14 @@
/* set define */
#undef HAVE_GLOB_NOMAGIC
/* Define to 1 if you have the `gnutls_certificate_set_retrieve_function'
function. */
#undef HAVE_GNUTLS_CERTIFICATE_SET_RETRIEVE_FUNCTION
/* Define to 1 if you have the `gnutls_certificate_type_set_priority'
function. */
#undef HAVE_GNUTLS_CERTIFICATE_TYPE_SET_PRIORITY
/* Define to 1 if you have the <hadoop/hdfs.h> header file. */
#undef HAVE_HADOOP_HDFS_H
@ -124,12 +135,18 @@
/* Define to 1 if you have the `json_object_object_get_ex' function. */
#undef HAVE_JSON_OBJECT_OBJECT_GET_EX
/* Define to 1 if you have the `json_object_to_json_string_ext' function. */
#undef HAVE_JSON_OBJECT_TO_JSON_STRING_EXT
/* Define to 1 if you have the `json_tokener_error_desc' function. */
#undef HAVE_JSON_TOKENER_ERROR_DESC
/* Define to 1 if you have the <libgen.h> header file. */
#undef HAVE_LIBGEN_H
/* Define to 1 if you have the `gnutls' library (-lgnutls). */
#undef HAVE_LIBGNUTLS
/* Define to 1 if you have the `json-c' library (-ljson-c). */
#undef HAVE_LIBJSON_C

542
configure

@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for rsyslog 8.9.0.
# Generated by GNU Autoconf 2.69 for rsyslog 8.10.0.
#
# Report bugs to <rsyslog@lists.adiscon.com>.
#
@ -590,8 +590,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='rsyslog'
PACKAGE_TARNAME='rsyslog'
PACKAGE_VERSION='8.9.0'
PACKAGE_STRING='rsyslog 8.9.0'
PACKAGE_VERSION='8.10.0'
PACKAGE_STRING='rsyslog 8.10.0'
PACKAGE_BUGREPORT='rsyslog@lists.adiscon.com'
PACKAGE_URL=''
@ -636,6 +636,9 @@ ac_subst_vars='am__EXEEXT_FALSE
am__EXEEXT_TRUE
LTLIBOBJS
RST2MAN
YACC_FOUND
ENABLE_OMHTTPFS_FALSE
ENABLE_OMHTTPFS_TRUE
ENABLE_OMHIREDIS_FALSE
ENABLE_OMHIREDIS_TRUE
HIREDIS_LIBS
@ -987,6 +990,7 @@ enable_jemalloc
enable_unlimited_select
with_systemdsystemunitdir
enable_debug
enable_debug_symbols
enable_rtinst
enable_debugless
enable_valgrind
@ -1049,6 +1053,7 @@ enable_omzmq3
enable_omczmq
enable_omrabbitmq
enable_omhiredis
enable_omhttpfs
enable_generate_man_pages
'
ac_precious_vars='build_alias
@ -1639,7 +1644,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures rsyslog 8.9.0 to adapt to many kinds of systems.
\`configure' configures rsyslog 8.10.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1709,7 +1714,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of rsyslog 8.9.0:";;
short | recursive ) echo "Configuration of rsyslog 8.10.0:";;
esac
cat <<\_ACEOF
@ -1740,6 +1745,7 @@ Optional Features:
--enable-unlimited-select
Enable unlimited select() syscall [default=no]
--enable-debug Enable debug mode [default=no]
--disable-debug-symbols Disable debugging symbols [default=no]
--enable-rtinst Enable runtime instrumentation mode [default=no]
--enable-debugless Enable runtime instrumentation mode [default=no]
--enable-valgrind Enable somes special code that rsyslog core
@ -1815,8 +1821,9 @@ Optional Features:
--enable-omczmq Compiles omczmq output module [default=no]
--enable-omrabbitmq Compiles omrabbitmq output module [default=no]
--enable-omhiredis Compiles omhiredis template module [default=no]
--enable-omhttpfs Compiles omhttpfs template module [default=no]
--enable-generate-man-pages
Generate man pages from source [default=yes]
Generate man pages from source [default=no]
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
@ -1979,7 +1986,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
rsyslog configure 8.9.0
rsyslog configure 8.10.0
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@ -2559,7 +2566,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by rsyslog $as_me 8.9.0, which was
It was created by rsyslog $as_me 8.10.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@ -3422,7 +3429,7 @@ fi
# Define the identity of the package.
PACKAGE='rsyslog'
VERSION='8.9.0'
VERSION='8.10.0'
cat >>confdefs.h <<_ACEOF
@ -13923,6 +13930,17 @@ _ACEOF
fi
done
for ac_func in json_object_to_json_string_ext
do :
ac_fn_c_check_func "$LINENO" "json_object_to_json_string_ext" "ac_cv_func_json_object_to_json_string_ext"
if test "x$ac_cv_func_json_object_to_json_string_ext" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_JSON_OBJECT_TO_JSON_STRING_EXT 1
_ACEOF
fi
done
ac_fn_c_check_type "$LINENO" "json_bool" "ac_cv_type_json_bool" "#include <json_object.h>
"
if test "x$ac_cv_type_json_bool" = xyes; then :
@ -17043,6 +17061,21 @@ $as_echo "#define NDEBUG 1" >>confdefs.h
fi
# debug-symbols
# Check whether --enable-debug_symbols was given.
if test "${enable_debug_symbols+set}" = set; then :
enableval=$enable_debug_symbols; case "${enableval}" in
yes) enable_debug_symbols="yes" ;;
no) enable_debug_symbols="no" ;;
*) as_fn_error $? "bad value ${enableval} for --disable-debug-symbols" "$LINENO" 5 ;;
esac
else
enable_debug_symbols="yes"
fi
# runtime instrumentation
# Check whether --enable-rtinst was given.
if test "${enable_rtinst+set}" = set; then :
@ -18209,6 +18242,73 @@ fi
$as_echo "#define ENABLE_GNUTLS 1" >>confdefs.h
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls_global_init in -lgnutls" >&5
$as_echo_n "checking for gnutls_global_init in -lgnutls... " >&6; }
if ${ac_cv_lib_gnutls_gnutls_global_init+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lgnutls $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char gnutls_global_init ();
int
main ()
{
return gnutls_global_init ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_gnutls_gnutls_global_init=yes
else
ac_cv_lib_gnutls_gnutls_global_init=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gnutls_gnutls_global_init" >&5
$as_echo "$ac_cv_lib_gnutls_gnutls_global_init" >&6; }
if test "x$ac_cv_lib_gnutls_gnutls_global_init" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_LIBGNUTLS 1
_ACEOF
LIBS="-lgnutls $LIBS"
fi
for ac_func in gnutls_certificate_set_retrieve_function
do :
ac_fn_c_check_func "$LINENO" "gnutls_certificate_set_retrieve_function" "ac_cv_func_gnutls_certificate_set_retrieve_function"
if test "x$ac_cv_func_gnutls_certificate_set_retrieve_function" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_GNUTLS_CERTIFICATE_SET_RETRIEVE_FUNCTION 1
_ACEOF
fi
done
for ac_func in gnutls_certificate_type_set_priority
do :
ac_fn_c_check_func "$LINENO" "gnutls_certificate_type_set_priority" "ac_cv_func_gnutls_certificate_type_set_priority"
if test "x$ac_cv_func_gnutls_certificate_type_set_priority" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_GNUTLS_CERTIFICATE_TYPE_SET_PRIORITY 1
_ACEOF
fi
done
fi
if test x$enable_gnutls = xyes; then
ENABLE_GNUTLS_TRUE=
@ -18370,8 +18470,17 @@ else
fi
RSRT_CFLAGS="\$(RSRT_CFLAGS1) \$(LIBESTR_CFLAGS) \$(JSON_C_CFLAGS)"
if test "$GCC" = "yes"
then RSRT_CFLAGS="$RSRT_CFLAGS -W -Wall -Wformat-security -Wshadow -Wcast-align -Wpointer-arith -Wmissing-format-attribute -Werror=implicit-function-declaration -g"
if test "$GCC" = "yes"; then
RSRT_CFLAGS="$RSRT_CFLAGS -W -Wall -Wformat-security -Wshadow -Wcast-align -Wpointer-arith -Wmissing-format-attribute"
if $CC -Werror=implicit-function-declaration -x c -c /dev/null 2>/dev/null; then
RSRT_CFLAGS="$RSRT_CFLAGS -Werror=implicit-function-declaration"
elif $CC -Werror-implicit-function-declaration -x c -c /dev/null 2>/dev/null; then
RSRT_CFLAGS="$RSRT_CFLAGS -Werror-implicit-function-declaration"
fi
if test "x$enable_debug_symbols" = "xyes"; then
RSRT_CFLAGS="$RSRT_CFLAGS -g"
fi
fi
RSRT_LIBS="\$(RSRT_LIBS1) \$(LIBESTR_LIBS) \$(JSON_C_LIBS)"
@ -21144,128 +21253,274 @@ fi
# END HIREDIS SUPPORT
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if required man pages already exist..." >&5
$as_echo "$as_me: checking if required man pages already exist..." >&6;}
have_to_generate_man_pages="no"
# HTTPFS SUPPORT
# man pages for libgcrypt module
if test "x$enable_usertools" = "xyes" && test "x$enable_libgcrypt" = "xyes"; then
as_ac_File=`$as_echo "ac_cv_file_"tools/rscryutil.1"" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for \"tools/rscryutil.1\"" >&5
$as_echo_n "checking for \"tools/rscryutil.1\"... " >&6; }
if eval \${$as_ac_File+:} false; then :
$as_echo_n "(cached) " >&6
else
test "$cross_compiling" = yes &&
as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
if test -r ""tools/rscryutil.1""; then
eval "$as_ac_File=yes"
# Check whether --enable-omhttpfs was given.
if test "${enable_omhttpfs+set}" = set; then :
enableval=$enable_omhttpfs; case "${enableval}" in
yes) enable_omhttpfs="yes" ;;
no) enable_omhttpfs="no" ;;
*) as_fn_error $? "bad value ${enableval} for --enable-omhttpfs" "$LINENO" 5 ;;
esac
else
eval "$as_ac_File=no"
fi
enable_omhttpfs=no
fi
eval ac_res=\$$as_ac_File
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
if eval test \"x\$"$as_ac_File"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_"tools/rscryutil.1"" | $as_tr_cpp` 1
_ACEOF
else
have_to_generate_man_pages="yes"
if test "x$enable_omhttpfs" = "xyes"; then
for ac_header in curl/curl.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "curl/curl.h" "ac_cv_header_curl_curl_h" "$ac_includes_default"
if test "x$ac_cv_header_curl_curl_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_CURL_CURL_H 1
_ACEOF
fi
as_ac_File=`$as_echo "ac_cv_file_"tools/rsgtutil.1"" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for \"tools/rsgtutil.1\"" >&5
$as_echo_n "checking for \"tools/rsgtutil.1\"... " >&6; }
if eval \${$as_ac_File+:} false; then :
$as_echo_n "(cached) " >&6
done
pkg_failed=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CURL" >&5
$as_echo_n "checking for CURL... " >&6; }
if test -n "$CURL_CFLAGS"; then
pkg_cv_CURL_CFLAGS="$CURL_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcurl\""; } >&5
($PKG_CONFIG --exists --print-errors "libcurl") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_CURL_CFLAGS=`$PKG_CONFIG --cflags "libcurl" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
test "$cross_compiling" = yes &&
as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
if test -r ""tools/rsgtutil.1""; then
eval "$as_ac_File=yes"
pkg_failed=yes
fi
else
pkg_failed=untried
fi
if test -n "$CURL_LIBS"; then
pkg_cv_CURL_LIBS="$CURL_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcurl\""; } >&5
($PKG_CONFIG --exists --print-errors "libcurl") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_CURL_LIBS=`$PKG_CONFIG --libs "libcurl" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
eval "$as_ac_File=no"
pkg_failed=yes
fi
else
pkg_failed=untried
fi
eval ac_res=\$$as_ac_File
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
if eval test \"x\$"$as_ac_File"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_"tools/rsgtutil.1"" | $as_tr_cpp` 1
_ACEOF
else
have_to_generate_man_pages="yes"
fi
if test $pkg_failed = yes; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
CURL_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libcurl" 2>&1`
else
CURL_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libcurl" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$CURL_PKG_ERRORS" >&5
as_fn_error $? "Package requirements (libcurl) were not met:
# man pages for GuardTime module
if test "x$enable_usertools" = "xyes" && test "x$enable_guardtime" = "xyes"; then
as_ac_File=`$as_echo "ac_cv_file_"tools/rscryutil.1"" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for \"tools/rscryutil.1\"" >&5
$as_echo_n "checking for \"tools/rscryutil.1\"... " >&6; }
if eval \${$as_ac_File+:} false; then :
$CURL_PKG_ERRORS
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables CURL_CFLAGS
and CURL_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
Alternatively, you may set the environment variables CURL_CFLAGS
and CURL_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
To get pkg-config, see <http://pkg-config.freedesktop.org/>.
See \`config.log' for more details" "$LINENO" 5; }
else
CURL_CFLAGS=$pkg_cv_CURL_CFLAGS
CURL_LIBS=$pkg_cv_CURL_LIBS
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
fi
LIBM=
case $host in
*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
# These system don't have libm, or don't need it
;;
*-ncr-sysv4.3*)
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _mwvalidcheckl in -lmw" >&5
$as_echo_n "checking for _mwvalidcheckl in -lmw... " >&6; }
if ${ac_cv_lib_mw__mwvalidcheckl+:} false; then :
$as_echo_n "(cached) " >&6
else
test "$cross_compiling" = yes &&
as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
if test -r ""tools/rscryutil.1""; then
eval "$as_ac_File=yes"
ac_check_lib_save_LIBS=$LIBS
LIBS="-lmw $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char _mwvalidcheckl ();
int
main ()
{
return _mwvalidcheckl ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_mw__mwvalidcheckl=yes
else
eval "$as_ac_File=no"
ac_cv_lib_mw__mwvalidcheckl=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mw__mwvalidcheckl" >&5
$as_echo "$ac_cv_lib_mw__mwvalidcheckl" >&6; }
if test "x$ac_cv_lib_mw__mwvalidcheckl" = xyes; then :
LIBM="-lmw"
fi
eval ac_res=\$$as_ac_File
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
if eval test \"x\$"$as_ac_File"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_"tools/rscryutil.1"" | $as_tr_cpp` 1
_ACEOF
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5
$as_echo_n "checking for cos in -lm... " >&6; }
if ${ac_cv_lib_m_cos+:} false; then :
$as_echo_n "(cached) " >&6
else
have_to_generate_man_pages="yes"
ac_check_lib_save_LIBS=$LIBS
LIBS="-lm $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char cos ();
int
main ()
{
return cos ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_m_cos=yes
else
ac_cv_lib_m_cos=no
fi
as_ac_File=`$as_echo "ac_cv_file_"tools/rsgtutil.1"" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for \"tools/rsgtutil.1\"" >&5
$as_echo_n "checking for \"tools/rsgtutil.1\"... " >&6; }
if eval \${$as_ac_File+:} false; then :
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_cos" >&5
$as_echo "$ac_cv_lib_m_cos" >&6; }
if test "x$ac_cv_lib_m_cos" = xyes; then :
LIBM="$LIBM -lm"
fi
;;
*)
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5
$as_echo_n "checking for cos in -lm... " >&6; }
if ${ac_cv_lib_m_cos+:} false; then :
$as_echo_n "(cached) " >&6
else
test "$cross_compiling" = yes &&
as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5
if test -r ""tools/rsgtutil.1""; then
eval "$as_ac_File=yes"
ac_check_lib_save_LIBS=$LIBS
LIBS="-lm $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char cos ();
int
main ()
{
return cos ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_m_cos=yes
else
eval "$as_ac_File=no"
ac_cv_lib_m_cos=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_cos" >&5
$as_echo "$ac_cv_lib_m_cos" >&6; }
if test "x$ac_cv_lib_m_cos" = xyes; then :
LIBM="-lm"
fi
eval ac_res=\$$as_ac_File
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
if eval test \"x\$"$as_ac_File"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_"tools/rsgtutil.1"" | $as_tr_cpp` 1
_ACEOF
;;
esac
else
have_to_generate_man_pages="yes"
#PKG_CHECK_MODULES(HTTPFS, curl >= 7.0.0)
fi
if test x$enable_omhttpfs = xyes; then
ENABLE_OMHTTPFS_TRUE=
ENABLE_OMHTTPFS_FALSE='#'
else
ENABLE_OMHTTPFS_TRUE='#'
ENABLE_OMHTTPFS_FALSE=
fi
# END HTTPFS SUPPORT
# man pages
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if required man pages already exist..." >&5
$as_echo "$as_me: checking if required man pages already exist..." >&6;}
have_to_generate_man_pages="no"
# Check whether --enable-generate-man-pages was given.
if test "${enable_generate_man_pages+set}" = set; then :
enableval=$enable_generate_man_pages; case "${enableval}" in
@ -21274,22 +21529,80 @@ if test "${enable_generate_man_pages+set}" = set; then :
*) as_fn_error $? "bad value ${enableval} for --enable-generate-man-pages" "$LINENO" 5 ;;
esac
else
have_to_generate_man_pages=yes
have_to_generate_man_pages=no
fi
# Running from git source?
in_git_src=no
if test -d "$srcdir"/.git && ! test -f "$srcdir"/.tarball-version; then :
in_git_src=yes
fi
if test "x$in_git_src" = "xyes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: Running from git source" >&5
$as_echo "$as_me: Running from git source" >&6;}
have_to_generate_man_pages=yes
if test "x$LEX" != "xflex"; then
as_fn_error $? "flex program is needed to build rsyslog, please install flex." "$LINENO" 5
fi
if test "x$YACC" = "xyacc"; then
# AC_PROG_YACC only checks for yacc replacements, not for yacc itself
# Extract the first word of "yacc", so it can be a program name with args.
set dummy yacc; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_YACC_FOUND+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$YACC_FOUND"; then
ac_cv_prog_YACC_FOUND="$YACC_FOUND" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_YACC_FOUND="yes"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS
test -z "$ac_cv_prog_YACC_FOUND" && ac_cv_prog_YACC_FOUND="no"
fi
fi
YACC_FOUND=$ac_cv_prog_YACC_FOUND
if test -n "$YACC_FOUND"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC_FOUND" >&5
$as_echo "$YACC_FOUND" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
if test "x$have_to_generate_man_pages" = "xyes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Some man pages are missing or --enable-generate-man-pages given. We need rst2man to generate man pages from source..." >&5
$as_echo "Some man pages are missing or --enable-generate-man-pages given. We need rst2man to generate man pages from source..." >&6; }
if test "x$YACC_FOUND" = "xno"; then
as_fn_error $? "A yacc program is needed to build rsyslog, please install bison." "$LINENO" 5
fi
fi
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: All required man pages found. We don't need rst2man!" >&5
$as_echo "All required man pages found. We don't need rst2man!" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: Not running from git source" >&5
$as_echo "$as_me: Not running from git source" >&6;}
fi
if test "x$have_to_generate_man_pages" = "xyes"; then
# We need rst2man to generate our man pages
for ac_prog in rst2man rst2man.py
# rst2man
for ac_prog in rst2man rst2man.py
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@ -21330,13 +21643,14 @@ fi
test -n "$RST2MAN" && break
done
test -n "$RST2MAN" || RST2MAN="false"
if test -z "$RST2MAN"; then
as_fn_error $? "rst2man is required to build man pages. You can use the release tarball with pregenerated man pages to avoid this depedency. Use the --disable-generate-man-pages configure option in that case." "$LINENO" 5
fi
if test "x$have_to_generate_man_pages" = "xyes" && test "x$RST2MAN" = "xfalse"; then
as_fn_error $? "rst2man is required when building from git source or --enable-generate-man-pages option was set, please install python-docutils." "$LINENO" 5
fi
ac_config_files="$ac_config_files Makefile runtime/Makefile compat/Makefile grammar/Makefile tools/Makefile plugins/imudp/Makefile plugins/imtcp/Makefile plugins/im3195/Makefile plugins/imgssapi/Makefile plugins/imuxsock/Makefile plugins/imjournal/Makefile plugins/immark/Makefile plugins/imklog/Makefile plugins/omhdfs/Makefile plugins/omkafka/Makefile plugins/omprog/Makefile plugins/mmexternal/Makefile plugins/omstdout/Makefile plugins/omjournal/Makefile plugins/pmciscoios/Makefile plugins/omruleset/Makefile plugins/omuxsock/Makefile plugins/imfile/Makefile plugins/imsolaris/Makefile plugins/imptcp/Makefile plugins/impstats/Makefile plugins/imrelp/Makefile plugins/imdiag/Makefile plugins/omtesting/Makefile plugins/omgssapi/Makefile plugins/ommysql/Makefile plugins/ompgsql/Makefile plugins/omrelp/Makefile plugins/omlibdbi/Makefile plugins/ommail/Makefile plugins/omsnmp/Makefile plugins/omudpspoof/Makefile plugins/ommongodb/Makefile plugins/mmnormalize/Makefile plugins/mmjsonparse/Makefile plugins/mmaudit/Makefile plugins/mmanon/Makefile plugins/mmutf8fix/Makefile plugins/mmfields/Makefile plugins/mmpstrucdata/Makefile plugins/omelasticsearch/Makefile plugins/mmsnmptrapd/Makefile plugins/pmlastmsg/Makefile contrib/pmsnare/Makefile contrib/pmaixforwardedfrom/Makefile contrib/omhiredis/Makefile contrib/omrabbitmq/Makefile contrib/imkmsg/Makefile contrib/mmcount/Makefile contrib/omzmq3/Makefile contrib/omczmq/Makefile contrib/imzmq3/Makefile contrib/imczmq/Makefile contrib/mmsequence/Makefile contrib/mmrfc5424addhmac/Makefile contrib/pmcisconames/Makefile tests/Makefile"
ac_config_files="$ac_config_files Makefile runtime/Makefile compat/Makefile grammar/Makefile tools/Makefile plugins/imudp/Makefile plugins/imtcp/Makefile plugins/im3195/Makefile plugins/imgssapi/Makefile plugins/imuxsock/Makefile plugins/imjournal/Makefile plugins/immark/Makefile plugins/imklog/Makefile plugins/omhdfs/Makefile plugins/omkafka/Makefile plugins/omprog/Makefile plugins/mmexternal/Makefile plugins/omstdout/Makefile plugins/omjournal/Makefile plugins/pmciscoios/Makefile plugins/omruleset/Makefile plugins/omuxsock/Makefile plugins/imfile/Makefile plugins/imsolaris/Makefile plugins/imptcp/Makefile plugins/impstats/Makefile plugins/imrelp/Makefile plugins/imdiag/Makefile plugins/omtesting/Makefile plugins/omgssapi/Makefile plugins/ommysql/Makefile plugins/ompgsql/Makefile plugins/omrelp/Makefile plugins/omlibdbi/Makefile plugins/ommail/Makefile plugins/omsnmp/Makefile plugins/omudpspoof/Makefile plugins/ommongodb/Makefile plugins/mmnormalize/Makefile plugins/mmjsonparse/Makefile plugins/mmaudit/Makefile plugins/mmanon/Makefile plugins/mmutf8fix/Makefile plugins/mmfields/Makefile plugins/mmpstrucdata/Makefile plugins/omelasticsearch/Makefile plugins/mmsnmptrapd/Makefile plugins/pmlastmsg/Makefile contrib/pmsnare/Makefile contrib/pmaixforwardedfrom/Makefile contrib/omhiredis/Makefile contrib/omrabbitmq/Makefile contrib/imkmsg/Makefile contrib/mmcount/Makefile contrib/omzmq3/Makefile contrib/omczmq/Makefile contrib/imzmq3/Makefile contrib/imczmq/Makefile contrib/mmsequence/Makefile contrib/mmrfc5424addhmac/Makefile contrib/pmcisconames/Makefile contrib/omhttpfs/Makefile tests/Makefile"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
@ -21759,6 +22073,10 @@ if test -z "${ENABLE_OMHIREDIS_TRUE}" && test -z "${ENABLE_OMHIREDIS_FALSE}"; th
as_fn_error $? "conditional \"ENABLE_OMHIREDIS\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${ENABLE_OMHTTPFS_TRUE}" && test -z "${ENABLE_OMHTTPFS_FALSE}"; then
as_fn_error $? "conditional \"ENABLE_OMHTTPFS\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
: "${CONFIG_STATUS=./config.status}"
ac_write_fail=0
@ -22156,7 +22474,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by rsyslog $as_me 8.9.0, which was
This file was extended by rsyslog $as_me 8.10.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@ -22222,7 +22540,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
rsyslog config.status 8.9.0
rsyslog config.status 8.10.0
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
@ -22692,6 +23010,7 @@ do
"contrib/mmsequence/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/mmsequence/Makefile" ;;
"contrib/mmrfc5424addhmac/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/mmrfc5424addhmac/Makefile" ;;
"contrib/pmcisconames/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/pmcisconames/Makefile" ;;
"contrib/omhttpfs/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/omhttpfs/Makefile" ;;
"tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;;
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
@ -24094,6 +24413,7 @@ echo " omuxsock module will be compiled: $enable_omuxsock"
echo " omzmq3 module will be compiled: $enable_omzmq3"
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
echo "---{ parser modules }---"
echo " pmlastmsg module will be compiled: $enable_pmlastmsg"

110
configure.ac

@ -2,7 +2,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.61)
AC_INIT([rsyslog],[8.9.0],[rsyslog@lists.adiscon.com])
AC_INIT([rsyslog],[8.10.0],[rsyslog@lists.adiscon.com])
AM_INIT_AUTOMAKE([subdir-objects])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
@ -43,6 +43,7 @@ AC_CHECK_FUNCS(json_object_new_int64,,)
# look for newer API
AC_CHECK_FUNCS(json_tokener_error_desc,,)
AC_CHECK_FUNCS(json_object_object_get_ex,,)
AC_CHECK_FUNCS(json_object_to_json_string_ext,,)
AC_CHECK_TYPES([json_bool],,,[[#include <json_object.h>]])
CFLAGS="$save_CFLAGS"
@ -450,6 +451,18 @@ if test "$enable_debug" = "no"; then
fi
# debug-symbols
AC_ARG_ENABLE(debug_symbols,
[AS_HELP_STRING([--disable-debug-symbols],[Disable debugging symbols @<:@default=no@:>@])],
[case "${enableval}" in
yes) enable_debug_symbols="yes" ;;
no) enable_debug_symbols="no" ;;
*) AC_MSG_ERROR(bad value ${enableval} for --disable-debug-symbols) ;;
esac],
[enable_debug_symbols="yes"]
)
# runtime instrumentation
AC_ARG_ENABLE(rtinst,
[AS_HELP_STRING([--enable-rtinst],[Enable runtime instrumentation mode @<:@default=no@:>@])],
@ -750,6 +763,9 @@ AC_ARG_ENABLE(gnutls,
if test "x$enable_gnutls" = "xyes"; then
PKG_CHECK_MODULES(GNUTLS, gnutls >= 1.4.0)
AC_DEFINE([ENABLE_GNUTLS], [1], [Indicator that GnuTLS is present])
AC_CHECK_LIB(gnutls, gnutls_global_init)
AC_CHECK_FUNCS(gnutls_certificate_set_retrieve_function,,)
AC_CHECK_FUNCS(gnutls_certificate_type_set_priority,,)
fi
AM_CONDITIONAL(ENABLE_GNUTLS, test x$enable_gnutls = xyes)
@ -800,8 +816,17 @@ if test "x$enable_rsyslogrt" = "xyes"; then
fi
AM_CONDITIONAL(ENABLE_RSYSLOGRT, test x$enable_rsyslogrt = xyes)
RSRT_CFLAGS="\$(RSRT_CFLAGS1) \$(LIBESTR_CFLAGS) \$(JSON_C_CFLAGS)"
if test "$GCC" = "yes"
then RSRT_CFLAGS="$RSRT_CFLAGS -W -Wall -Wformat-security -Wshadow -Wcast-align -Wpointer-arith -Wmissing-format-attribute -Werror=implicit-function-declaration -g"
if test "$GCC" = "yes"; then
RSRT_CFLAGS="$RSRT_CFLAGS -W -Wall -Wformat-security -Wshadow -Wcast-align -Wpointer-arith -Wmissing-format-attribute"
if $CC -Werror=implicit-function-declaration -x c -c /dev/null 2>/dev/null; then
RSRT_CFLAGS="$RSRT_CFLAGS -Werror=implicit-function-declaration"
elif $CC -Werror-implicit-function-declaration -x c -c /dev/null 2>/dev/null; then
RSRT_CFLAGS="$RSRT_CFLAGS -Werror-implicit-function-declaration"
fi
if test "x$enable_debug_symbols" = "xyes"; then
RSRT_CFLAGS="$RSRT_CFLAGS -g"
fi
fi
RSRT_LIBS="\$(RSRT_LIBS1) \$(LIBESTR_LIBS) \$(JSON_C_LIBS)"
AC_SUBST(RSRT_CFLAGS1)
@ -1531,49 +1556,74 @@ AM_CONDITIONAL(ENABLE_OMHIREDIS, test x$enable_omhiredis = xyes)
# END HIREDIS SUPPORT
AC_CHECKING([if required man pages already exist])
have_to_generate_man_pages="no"
# HTTPFS SUPPORT
# man pages for libgcrypt module
if test "x$enable_usertools" = "xyes" && test "x$enable_libgcrypt" = "xyes"; then
AC_CHECK_FILES(["tools/rscryutil.1" "tools/rsgtutil.1"],
[],
[have_to_generate_man_pages="yes"]
)
fi
AC_ARG_ENABLE(omhttpfs,
[AS_HELP_STRING([--enable-omhttpfs],[Compiles omhttpfs template module @<:@default=no@:>@])],
[case "${enableval}" in
yes) enable_omhttpfs="yes" ;;
no) enable_omhttpfs="no" ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-omhttpfs) ;;
esac],
[enable_omhttpfs=no]
)
# man pages for GuardTime module
if test "x$enable_usertools" = "xyes" && test "x$enable_guardtime" = "xyes"; then
AC_CHECK_FILES(["tools/rscryutil.1" "tools/rsgtutil.1"],
[],
[have_to_generate_man_pages="yes"]
)
if test "x$enable_omhttpfs" = "xyes"; then
AC_CHECK_HEADERS([curl/curl.h])
PKG_CHECK_MODULES([CURL], [libcurl])
LT_LIB_M
#PKG_CHECK_MODULES(HTTPFS, curl >= 7.0.0)
fi
AM_CONDITIONAL(ENABLE_OMHTTPFS, test x$enable_omhttpfs = xyes)
# END HTTPFS SUPPORT
# man pages
AC_CHECKING([if required man pages already exist])
have_to_generate_man_pages="no"
AC_ARG_ENABLE(generate-man-pages,
[AS_HELP_STRING([--enable-generate-man-pages],[Generate man pages from source @<:@default=yes@:>@])],
[AS_HELP_STRING([--enable-generate-man-pages],[Generate man pages from source @<:@default=no@:>@])],
[case "${enableval}" in
yes) have_to_generate_man_pages="yes" ;;
no) have_to_generate_man_pages="no" ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-generate-man-pages) ;;
esac],
[have_to_generate_man_pages=yes]
[have_to_generate_man_pages=no]
)
if test "x$have_to_generate_man_pages" = "xyes"; then
AC_MSG_RESULT([Some man pages are missing or --enable-generate-man-pages given. We need rst2man to generate man pages from source...])
# 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])
have_to_generate_man_pages=yes
if test "x$LEX" != "xflex"; then
AC_MSG_ERROR([flex program is needed to build rsyslog, please install flex.])
fi
if test "x$YACC" = "xyacc"; then
# AC_PROG_YACC only checks for yacc replacements, not for yacc itself
AC_CHECK_PROG([YACC_FOUND], [yacc], [yes], [no])
if test "x$YACC_FOUND" = "xno"; then
AC_MSG_ERROR([A yacc program is needed to build rsyslog, please install bison.])
fi
fi
else
AC_MSG_RESULT([All required man pages found. We don't need rst2man!])
AC_MSG_NOTICE([Not running from git source])
fi
if test "x$have_to_generate_man_pages" = "xyes"; then
# We need rst2man to generate our man pages
AC_CHECK_PROGS([RST2MAN], [rst2man rst2man.py], [])
if test -z "$RST2MAN"; then
AC_MSG_ERROR([rst2man is required to build man pages. You can use the release tarball with pregenerated man pages to avoid this depedency. Use the --disable-generate-man-pages configure option in that case.])
fi
# rst2man
AC_CHECK_PROGS([RST2MAN], [rst2man rst2man.py], [false])
if test "x$have_to_generate_man_pages" = "xyes" && test "x$RST2MAN" = "xfalse"; then
AC_MSG_ERROR([rst2man is required when building from git source or --enable-generate-man-pages option was set, please install python-docutils.])
fi
AC_CONFIG_FILES([Makefile \
runtime/Makefile \
compat/Makefile \
@ -1635,6 +1685,7 @@ AC_CONFIG_FILES([Makefile \
contrib/mmsequence/Makefile \
contrib/mmrfc5424addhmac/Makefile \
contrib/pmcisconames/Makefile \
contrib/omhttpfs/Makefile \
tests/Makefile])
AC_OUTPUT
@ -1682,6 +1733,7 @@ echo " omuxsock module will be compiled: $enable_omuxsock"
echo " omzmq3 module will be compiled: $enable_omzmq3"
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
echo "---{ parser modules }---"
echo " pmlastmsg module will be compiled: $enable_pmlastmsg"

1
contrib/imczmq/Makefile.in

@ -325,6 +325,7 @@ UDPSPOOF_LIBS = @UDPSPOOF_LIBS@
VALGRIND = @VALGRIND@
VERSION = @VERSION@
YACC = @YACC@
YACC_FOUND = @YACC_FOUND@
YFLAGS = @YFLAGS@
ZLIB_CFLAGS = @ZLIB_CFLAGS@
ZLIB_LIBS = @ZLIB_LIBS@

9
contrib/imczmq/README

@ -15,21 +15,20 @@ input(
topics="topic1,topic2,topic3"
socktype="PULL"
authtype="CURVESERVER"
curveclientcert="/etc/curve.d/"
curveservercert="/etc/curve.d/example_curve_server_cert"
clientcertpath="/etc/curve.d/"
servercertpath="/etc/curve.d/example_curve_server_cert"
)
-------------------------------------------------------------------------------
Explanation of Options:
name: name of this action
type: type of action (imczmq for this plugin)
endpoints: comma delimited list of zeromq endpoints (see zeromq documentation)
socktype: zeromq socket type (currently supports PULL and SUB)
authtype: CURVECLIENT or CURVESERVER
curveclientcert:
clientcertpath:
if CURVECLIENT, this client's cert
if CURVESERVER, "*" for all, or a directory of allowed public certs
curveservercert:
servercertpath:
if CURVECLIENT, the servers public cert you wish to connect to
if CURVESERVER, this servers cert

48
contrib/imczmq/imczmq.c

@ -56,6 +56,9 @@ typedef struct _pollerData_t {
struct instanceConf_s {
bool is_server;
char *beacon;
int beaconPort;
int sockType;
char *sockEndpoints;
char *topicList;
@ -75,6 +78,7 @@ struct modConfData_s {
};
struct lstn_s {
zactor_t *beaconActor;
zsock_t *sock;
zcert_t *clientCert;
zcert_t *serverCert;
@ -100,6 +104,8 @@ static struct cnfparamblk modpblk = {
};
static struct cnfparamdescr inppdescr[] = {
{ "beacon", eCmdHdlrGetWord, 0 },
{ "beaconport", eCmdHdlrGetWord, 0 },
{ "endpoints", eCmdHdlrGetWord, 1 },
{ "socktype", eCmdHdlrGetWord, 1 },
{ "authtype", eCmdHdlrGetWord, 0 },
@ -118,6 +124,9 @@ static struct cnfparamblk inppblk = {
};
static void setDefaults(instanceConf_t* iconf) {
iconf->is_server = false;
iconf->beacon = NULL;
iconf->beaconPort = -1;
iconf->sockType = -1;
iconf->sockEndpoints = NULL;
iconf->topicList = NULL;
@ -170,6 +179,16 @@ static rsRetVal createListener(struct cnfparamvals* pvals) {
inst->sockEndpoints = es_str2cstr(pvals[i].val.d.estr, NULL);
}
/* get beacon argument */
else if (!strcmp(inppblk.descr[i].name, "beacon")) {
inst->beacon = es_str2cstr(pvals[i].val.d.estr, NULL);
}
/* get beacon port */
else if (!strcmp(inppblk.descr[i].name, "beaconport")) {
inst->beaconPort = atoi(es_str2cstr(pvals[i].val.d.estr, NULL));
}
/* get the socket type */
else if(!strcmp(inppblk.descr[i].name, "socktype")){
char *stringType = es_str2cstr(pvals[i].val.d.estr, NULL);
@ -255,14 +274,37 @@ static rsRetVal addListener(instanceConf_t* iconf){
ABORT_FINALIZE(RS_RET_NO_ERRCODE);
}
bool is_server = false;
/* if a beacon is set start it */
if((iconf->beacon != NULL) && (iconf->beaconPort > 0)) {
DBGPRINTF ("imczmq: starting beacon actor...\n");
/* create the beacon actor, if it fails abort */
pData->beaconActor = zactor_new(zbeacon, NULL);
if (!pData->beaconActor) {
errmsg.LogError(0, RS_RET_NO_ERRCODE,
"imczmq: could not create beacon service");
ABORT_FINALIZE (RS_RET_NO_ERRCODE);
}
/* configure the beacon and abort if UDP broadcasting ont available */
zsock_send(pData->beaconActor, "si", "CONFIGURE", iconf->beaconPort);
char *hostname = zstr_recv(pData->beaconActor);
if (!*hostname) {
errmsg.LogError(0, RS_RET_NO_ERRCODE,
"imczmq: no UDP broadcasting available");
ABORT_FINALIZE (RS_RET_NO_ERRCODE);
}
/* start publishing the beacon */
zsock_send(pData->beaconActor, "sbi", "PUBLISH", pData->beaconActor, strlen(iconf->beacon));
}
DBGPRINTF("imczmq: authtype is: %s\n", iconf->authType);
/* if we are a CURVE server */
if (!strcmp(iconf->authType, "CURVESERVER")) {
is_server = true;
iconf->is_server = true;
/* set global auth domain */
zsock_set_zap_domain(pData->sock, "global");
@ -290,7 +332,7 @@ static rsRetVal addListener(instanceConf_t* iconf){
if (!strcmp(iconf->authType, "CURVECLIENT")) {
DBGPRINTF("imczmq: we are a curve client...\n");
is_server = false;
iconf->is_server = false;
/* get our client cert */
pData->clientCert = zcert_load(iconf->clientCertPath);

1
contrib/imkmsg/Makefile.in

@ -324,6 +324,7 @@ UDPSPOOF_LIBS = @UDPSPOOF_LIBS@
VALGRIND = @VALGRIND@
VERSION = @VERSION@
YACC = @YACC@
YACC_FOUND = @YACC_FOUND@
YFLAGS = @YFLAGS@
ZLIB_CFLAGS = @ZLIB_CFLAGS@
ZLIB_LIBS = @ZLIB_LIBS@

1
contrib/imzmq3/Makefile.in

@ -325,6 +325,7 @@ UDPSPOOF_LIBS = @UDPSPOOF_LIBS@
VALGRIND = @VALGRIND@
VERSION = @VERSION@
YACC = @YACC@
YACC_FOUND = @YACC_FOUND@
YFLAGS = @YFLAGS@
ZLIB_CFLAGS = @ZLIB_CFLAGS@
ZLIB_LIBS = @ZLIB_LIBS@

1
contrib/mmcount/Makefile.in

@ -324,6 +324,7 @@ UDPSPOOF_LIBS = @UDPSPOOF_LIBS@
VALGRIND = @VALGRIND@
VERSION = @VERSION@
YACC = @YACC@
YACC_FOUND = @YACC_FOUND@
YFLAGS = @YFLAGS@
ZLIB_CFLAGS = @ZLIB_CFLAGS@
ZLIB_LIBS = @ZLIB_LIBS@

1
contrib/mmrfc5424addhmac/Makefile.in

@ -327,6 +327,7 @@ UDPSPOOF_LIBS = @UDPSPOOF_LIBS@
VALGRIND = @VALGRIND@
VERSION = @VERSION@
YACC = @YACC@
YACC_FOUND = @YACC_FOUND@
YFLAGS = @YFLAGS@
ZLIB_CFLAGS = @ZLIB_CFLAGS@
ZLIB_LIBS = @ZLIB_LIBS@

1
contrib/mmsequence/Makefile.in

@ -324,6 +324,7 @@ UDPSPOOF_LIBS = @UDPSPOOF_LIBS@
VALGRIND = @VALGRIND@
VERSION = @VERSION@
YACC = @YACC@
YACC_FOUND = @YACC_FOUND@
YFLAGS = @YFLAGS@
ZLIB_CFLAGS = @ZLIB_CFLAGS@
ZLIB_LIBS = @ZLIB_LIBS@

1
contrib/omczmq/Makefile.in

@ -325,6 +325,7 @@ UDPSPOOF_LIBS = @UDPSPOOF_LIBS@
VALGRIND = @VALGRIND@
VERSION = @VERSION@
YACC = @YACC@
YACC_FOUND = @YACC_FOUND@
YFLAGS = @YFLAGS@
ZLIB_CFLAGS = @ZLIB_CFLAGS@
ZLIB_LIBS = @ZLIB_LIBS@

50
contrib/omczmq/omczmq.c

@ -48,6 +48,7 @@ static pthread_mutex_t mutDoAct = PTHREAD_MUTEX_INITIALIZER;
typedef struct _instanceData {
zactor_t *authActor;
zactor_t *beaconActor;
zsock_t *sock;
zcert_t *clientCert;
zcert_t *serverCert;
@ -57,6 +58,8 @@ typedef struct _instanceData {
char *clientCertPath;
char *serverCertPath;
uchar *tplName;
char *beacon;
int beaconport;
} instanceData;
typedef struct wrkrInstanceData {
@ -66,6 +69,8 @@ typedef struct wrkrInstanceData {
static struct cnfparamdescr actpdescr[] = {