]> arthur.barton.de Git - netdata.git/blobdiff - src/simple_pattern.c
dns_query_time plugin: replace "." with "_" in dimensions
[netdata.git] / src / simple_pattern.c
index 6bed558548f697fa718f92418f2baf719246ec22..f72a42d06e6e53c01eb3e5d4cd76637d728bd902 100644 (file)
@@ -147,7 +147,7 @@ static inline int match_pattern(struct simple_pattern *m, const char *str, size_
                 break;
 
             case SIMPLE_PATTERN_SUFFIX:
-                if(unlikely(strsame(&str[len - m->len], m->match) == 0)) {
+                if(unlikely(strcmp(&str[len - m->len], m->match) == 0)) {
                     if(!m->child) return 1;
                     return 0;
                 }
@@ -155,7 +155,7 @@ static inline int match_pattern(struct simple_pattern *m, const char *str, size_
 
             case SIMPLE_PATTERN_EXACT:
             default:
-                if(unlikely(strsame(str, m->match) == 0)) {
+                if(unlikely(strcmp(str, m->match) == 0)) {
                     if(!m->child) return 1;
                     return 0;
                 }
@@ -169,7 +169,7 @@ static inline int match_pattern(struct simple_pattern *m, const char *str, size_
 int simple_pattern_matches(SIMPLE_PATTERN *list, const char *str) {
     struct simple_pattern *m, *root = (struct simple_pattern *)list;
 
-    if(unlikely(!root)) return 0;
+    if(unlikely(!root || !str || !*str)) return 0;
 
     size_t len = strlen(str);
     for(m = root; m ; m = m->next)
@@ -184,8 +184,8 @@ int simple_pattern_matches(SIMPLE_PATTERN *list, const char *str) {
 static inline void free_pattern(struct simple_pattern *m) {
     if(!m) return;
 
-    if(m->next) free_pattern(m->next);
-    if(m->child) free_pattern(m->child);
+    free_pattern(m->child);
+    free_pattern(m->next);
     freez((void *)m->match);
     freez(m);
 }
@@ -193,5 +193,5 @@ static inline void free_pattern(struct simple_pattern *m) {
 void simple_pattern_free(SIMPLE_PATTERN *list) {
     if(!list) return;
 
-    free_pattern(((struct simple_pattern *)list)->next);
+    free_pattern(((struct simple_pattern *)list));
 }