From d478271b2b793856eb098a0c580d44f02efc4837 Mon Sep 17 00:00:00 2001 From: Mark Salyzyn Date: Tue, 29 Oct 2019 09:32:09 -0700 Subject: [PATCH] libmodprobe: add strict bool argument to LoadListedModules Continue loading remaining modules after error if strict flag false. Test: libmodprobe_test Bug: 141311820 Change-Id: Ib21d4eade1254b16621e7bf2c9efaa173092e7c7 --- libmodprobe/include/modprobe/modprobe.h | 2 +- libmodprobe/libmodprobe.cpp | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/libmodprobe/include/modprobe/modprobe.h b/libmodprobe/include/modprobe/modprobe.h index 421d82644..333fc5506 100644 --- a/libmodprobe/include/modprobe/modprobe.h +++ b/libmodprobe/include/modprobe/modprobe.h @@ -26,7 +26,7 @@ class Modprobe { public: Modprobe(const std::vector&); - bool LoadListedModules(); + bool LoadListedModules(bool strict = true); bool LoadWithAliases(const std::string& module_name, bool strict, const std::string& parameters = ""); bool Remove(const std::string& module_name); diff --git a/libmodprobe/libmodprobe.cpp b/libmodprobe/libmodprobe.cpp index 3c78ec999..6b9107fd5 100644 --- a/libmodprobe/libmodprobe.cpp +++ b/libmodprobe/libmodprobe.cpp @@ -360,13 +360,15 @@ bool Modprobe::LoadWithAliases(const std::string& module_name, bool strict, return true; } -bool Modprobe::LoadListedModules() { +bool Modprobe::LoadListedModules(bool strict) { + auto ret = true; for (const auto& module : module_load_) { if (!LoadWithAliases(module, true)) { - return false; + ret = false; + if (strict) break; } } - return true; + return ret; } bool Modprobe::Remove(const std::string& module_name) {