Merge pull request #4296 from rgerhards/mmdblookup-optional

build system: add option --enable-mmdblookup=optional
This commit is contained in:
Rainer Gerhards 2020-05-29 09:05:01 +02:00 committed by GitHub
commit cc79c314fd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 193 additions and 6 deletions

View File

@ -1398,16 +1398,25 @@ AC_ARG_ENABLE(mmdblookup,
[case "${enableval}" in
yes) enable_mmdblookup="yes" ;;
no) enable_mmdblookup="no" ;;
optional) enable_mmdblookup="optional" ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-mmdblookup) ;;
esac],
[enable_mmdblookup=no]
)
if test "x$enable_mmdblookup"; then
#PKG_CHECK_MODULES(LIBMAXMINDDB, libmaxminddb)
AC_CHECK_HEADERS([maxminddb.h])
AM_CONDITIONAL(ENABLE_MMDBLOOKUP, test x$enable_mmdblookup = xyes -o x$enable_mmdblookup = xoptional)
mmdblookup_use_dummy="no"
if test x$enable_mmdblookup = xoptional -o x$enable_mmdblookup = xyes; then
#PKG_CHECK_MODULES(LIBMAXMINDDB, libmaxminddb) -- does not work - later?
AC_CHECK_HEADERS([maxminddb.h], [
], [
AS_IF([test x$enable_mmdblookup = xyes],
AC_MSG_ERROR(libmaxminddb library for mmdblookup could not be found)
)
mmdblookup_use_dummy="yes"
AC_DEFINE([ENABLE_MMBDLOOKUP_DUMMY], [1], [Indicator that we need to build a dummy module])
])
fi
AM_CONDITIONAL(ENABLE_MMDBLOOKUP, test x$enable_mmdblookup = xyes)
AM_CONDITIONAL(MMDBLOOKUP_USE_DUMMY, test x$mmdblookup_use_dummy = xyes)
# mmdarwin

View File

@ -1,8 +1,14 @@
pkglib_LTLIBRARIES = mmdblookup.la
if MMDBLOOKUP_USE_DUMMY
mmdblookup_la_SOURCES = dummy.c
mmdblookup_la_LDFLAGS = -module -avoid-version
else
mmdblookup_la_SOURCES = mmdblookup.c
mmdblookup_la_CPPFLAGS = $(RSRT_CFLAGS) $(PTHREADS_CFLAGS)
mmdblookup_la_LDFLAGS = -module -avoid-version -lmaxminddb
endif
mmdblookup_la_CPPFLAGS = $(RSRT_CFLAGS) $(PTHREADS_CFLAGS)
mmdblookup_la_LIBADD =
EXTRA_DIST =

172
plugins/mmdblookup/dummy.c Normal file
View File

@ -0,0 +1,172 @@
/* a dummy module to be loaded if we cannot build this module, but
* configure required it to be "optional".
*
* Copyright 2020 Rainer Gerhards and Adiscon GmbH.
*
* This file is part of rsyslog.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* -or-
* see COPYING.ASL20 in the source distribution
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#define MODULE_NAME "mmdblookup" /* how are we named? */
#include "config.h"
#include "rsyslog.h"
#include <stdio.h>
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <signal.h>
#include <errno.h>
#include <unistd.h>
#include <stdint.h>
#include <pthread.h>
#include "conf.h"
#include "syslogd-types.h"
#include "srUtils.h"
#include "template.h"
#include "module-template.h"
#include "errmsg.h"
#include "parserif.h"
MODULE_TYPE_OUTPUT
MODULE_TYPE_NOKEEP
MODULE_CNFNAME(MODULE_NAME)
DEF_OMOD_STATIC_DATA
/* config variables */
typedef struct _instanceData {
char *dummy;
} instanceData;
typedef struct wrkrInstanceData {
instanceData *pData ATTR_UNUSED;
} wrkrInstanceData_t;
struct modConfData_s {
};
/* modConf ptr to use for the current load process */
static modConfData_t *loadModConf = NULL;
/* modConf ptr to use for the current exec process */
static modConfData_t *runModConf = NULL;
BEGINbeginCnfLoad
CODESTARTbeginCnfLoad
loadModConf = pModConf;
ENDbeginCnfLoad
BEGINendCnfLoad
CODESTARTendCnfLoad
ENDendCnfLoad
BEGINcheckCnf
CODESTARTcheckCnf
ENDcheckCnf
BEGINactivateCnf
CODESTARTactivateCnf
runModConf = pModConf;
ENDactivateCnf
BEGINfreeCnf
CODESTARTfreeCnf
ENDfreeCnf
BEGINcreateWrkrInstance
CODESTARTcreateWrkrInstance
ENDcreateWrkrInstance
BEGINisCompatibleWithFeature
CODESTARTisCompatibleWithFeature
ENDisCompatibleWithFeature
BEGINfreeInstance
CODESTARTfreeInstance
ENDfreeInstance
BEGINfreeWrkrInstance
CODESTARTfreeWrkrInstance
ENDfreeWrkrInstance
BEGINsetModCnf
CODESTARTsetModCnf
(void) lst;
parser_errmsg("%s is an optional module which could not be built on your platform "
"please remove it from the configuration or upgrade your platform", MODULE_NAME);
ENDsetModCnf
BEGINnewActInst
CODESTARTnewActInst
(void) pData;
(void) ppModData;
parser_errmsg("%s is an optional module which could not be built on your platform "
"please remove it from the configuration or upgrade your platform", MODULE_NAME);
ENDnewActInst
BEGINdbgPrintInstInfo
CODESTARTdbgPrintInstInfo
ENDdbgPrintInstInfo
BEGINtryResume
CODESTARTtryResume
ENDtryResume
BEGINdoAction_NoStrings
CODESTARTdoAction
(void) pMsgData;
ENDdoAction
NO_LEGACY_CONF_parseSelectorAct
BEGINmodExit
CODESTARTmodExit
ENDmodExit
BEGINqueryEtryPt
CODESTARTqueryEtryPt
CODEqueryEtryPt_STD_OMOD_QUERIES
CODEqueryEtryPt_STD_OMOD8_QUERIES
CODEqueryEtryPt_STD_CONF2_setModCnf_QUERIES
CODEqueryEtryPt_STD_CONF2_OMOD_QUERIES
CODEqueryEtryPt_STD_CONF2_QUERIES
ENDqueryEtryPt
BEGINmodInit()
CODESTARTmodInit
/* we only support the current interface specification */
*ipIFVersProvided = CURR_MOD_IF_VERSION;
CODEmodInit_QueryRegCFSLineHdlr
dbgprintf("mmdblookup: module compiled with rsyslog version %s.\n", VERSION);
ENDmodInit