summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/diagnostic/active-diagnostic-request.cpp5
-rw-r--r--src/diagnostic/active-diagnostic-request.hpp2
2 files changed, 5 insertions, 2 deletions
diff --git a/src/diagnostic/active-diagnostic-request.cpp b/src/diagnostic/active-diagnostic-request.cpp
index 5e43d7a..762cb61 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 74a969b..f18282f 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();