Change way to check prefix of signals name.
authorRomain Forlot <romain.forlot@iot.bzh>
Tue, 14 Mar 2017 23:49:55 +0000 (00:49 +0100)
committerRomain Forlot <romain.forlot@iot.bzh>
Thu, 16 Mar 2017 16:21:57 +0000 (17:21 +0100)
Change-Id: I9a0726ab41c4801e7a5305731ce78ddd03aff9e1
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
src/diagnostic/active-diagnostic-request.cpp
src/diagnostic/active-diagnostic-request.hpp

index 5e43d7a..762cb61 100644 (file)
@@ -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;
 }
index 74a969b..f18282f 100644 (file)
@@ -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();