diff options
-rw-r--r-- | src/diagnostic/active-diagnostic-request.cpp | 5 | ||||
-rw-r--r-- | src/diagnostic/active-diagnostic-request.hpp | 2 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/diagnostic/active-diagnostic-request.cpp b/src/diagnostic/active-diagnostic-request.cpp index 5e43d7ab..762cb61c 100644 --- a/src/diagnostic/active-diagnostic-request.cpp +++ b/src/diagnostic/active-diagnostic-request.cpp @@ -15,6 +15,8 @@ * limitations under the License. */ +#include <fnmatch.h> + #include "active-diagnostic-request.hpp" std::string active_diagnostic_request_t::prefix_ = "diagnostic_messages"; @@ -131,7 +133,8 @@ void active_diagnostic_request_t::set_in_flight(bool val) */ bool active_diagnostic_request_t::is_diagnostic_signal(const std::string& name) { - if(name.find_first_of(prefix_.c_str(), 0, prefix_.size())) + const std::string p = active_diagnostic_request_t::prefix_ + "*"; + if(::fnmatch(p.c_str(), name.c_str(), FNM_CASEFOLD) == 0) return true; return false; } diff --git a/src/diagnostic/active-diagnostic-request.hpp b/src/diagnostic/active-diagnostic-request.hpp index 74a969bc..f18282f6 100644 --- a/src/diagnostic/active-diagnostic-request.hpp +++ b/src/diagnostic/active-diagnostic-request.hpp @@ -92,7 +92,7 @@ public: uint32_t get_id() const; std::shared_ptr<can_bus_dev_t> get_can_bus_dev(); DiagnosticRequestHandle* get_handle(); - std::string& get_name(); + const std::string get_name() const; static std::string& get_prefix(); DiagnosticResponseDecoder& get_decoder(); DiagnosticResponseCallback& get_callback(); |