summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVernon Mauery <vernon.mauery@linux.intel.com>2020-01-30 16:11:34 -0800
committerVernon Mauery <vernon.mauery@linux.intel.com>2020-02-05 17:03:54 +0000
commite9f8857a66c5df61a4e795a7d71b035fd89b92ef (patch)
tree0ccd5461d3bbb0df479821a894ebab9e528418e0
parent930104a86aa997ba91bd6d588eb3abda39c2fa52 (diff)
downloadphosphor-host-ipmid-e9f8857a66c5df61a4e795a7d71b035fd89b92ef.tar.gz
phosphor-host-ipmid-e9f8857a66c5df61a4e795a7d71b035fd89b92ef.zip
Make ipmi whitelist optional
Not all users of ipmid want to use the whitelist. Or they want to have their own that behaves differently. This change makes it so one can disable the built-in whitelist so that OEMs can substitute their own custom filtering or use none at all. To disable the whitelist, pass --disable-ipmi-whitelist to configure. This can be done in Yocto via a bbappend for phosphor-ipmi-host: EXTRA_OECONF_append = " --disable-ipmi-whitelist" Tested: Built with and without the whitelist enabled to ensure that the whitelist is present when expected to be. Change-Id: I63f317b6c29ca73cc3296bb2fe38f836004ec35d Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
-rw-r--r--Makefile.am10
-rw-r--r--configure.ac11
2 files changed, 20 insertions, 1 deletions
diff --git a/Makefile.am b/Makefile.am
index 02583fe..82fdd5d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -14,6 +14,12 @@ endif
providersdir = ${libdir}/ipmid-providers
providers_LTLIBRARIES =
+if FEATURE_IPMI_WHITELIST
+IPMI_WHITELIST_SOURCE = ipmiwhitelist.cpp
+else
+IPMI_WHITELIST_SOURCE =
+endif
+
bin_PROGRAMS = \
ipmid
@@ -28,7 +34,7 @@ libipmi20_BUILT_LIST = \
fru-read-gen.cpp
BUILT_SOURCES = \
- ipmiwhitelist.cpp \
+ $(IPMI_WHITELIST_SOURCE) \
$(libipmi20_BUILT_LIST)
CLEANFILES = $(BUILT_SOURCES)
@@ -158,6 +164,7 @@ libsysintfcmds_la_LDFLAGS = \
-version-info 0:0:0 -shared
libsysintfcmds_la_CXXFLAGS = $(COMMON_CXX)
+if FEATURE_IPMI_WHITELIST
libwhitelistdir = ${libdir}/ipmid-providers
libwhitelist_LTLIBRARIES = libwhitelist.la
libwhitelist_la_SOURCES = \
@@ -170,6 +177,7 @@ libwhitelist_la_LDFLAGS = \
-version-info 0:0:0 -shared
libwhitelist_la_CXXFLAGS = $(COMMON_CXX)
nodist_libwhitelist_la_SOURCES = ipmiwhitelist.cpp
+endif
nobase_include_HEADERS = \
user_channel/channel_layer.hpp \
diff --git a/configure.ac b/configure.ac
index 296165f..29f58e2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -255,6 +255,17 @@ AC_ARG_ENABLE([transport_oem],
)
AM_CONDITIONAL([FEATURE_TRANSPORT_OEM], [test x$transport_oem = xtrue])
+# IPMI whitelist mechanism is not needed by everyone; offer a way to disable it
+AC_ARG_ENABLE([ipmi-whitelist],
+ [ --enable-ipmi-whitelist Enable/disable IPMI whitelist filtering],
+ [case "${enableval}" in
+ yes) ipmi_whitelist=true ;;
+ no) ipmi_whitelist=false ;;
+ *) AC_MSG_ERROR([bad value ${enableval} for --enable-ipmi-whitelist]) ;;
+ esac],[ipmi_whitelist=true]
+ )
+AM_CONDITIONAL([FEATURE_IPMI_WHITELIST], [test x$ipmi_whitelist = xtrue])
+
# Create configured output
AC_CONFIG_FILES([
Makefile
OpenPOWER on IntegriCloud