diff options
| author | Vernon Mauery <vernon.mauery@linux.intel.com> | 2020-01-30 16:11:34 -0800 |
|---|---|---|
| committer | Vernon Mauery <vernon.mauery@linux.intel.com> | 2020-02-05 17:03:54 +0000 |
| commit | e9f8857a66c5df61a4e795a7d71b035fd89b92ef (patch) | |
| tree | 0ccd5461d3bbb0df479821a894ebab9e528418e0 | |
| parent | 930104a86aa997ba91bd6d588eb3abda39c2fa52 (diff) | |
| download | phosphor-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.am | 10 | ||||
| -rw-r--r-- | configure.ac | 11 |
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 |

