removed debugging and added simple_pattern cleanup
Costa Tsaousis (ktsaou) committed
Jan 15, 2017 at 06:16 UTC
81599bbabe2b2881a7cb65ca79a387bac399b50f
2 files changed
+26
src/simple_pattern.c
+25
@@ -11,7 +11,10 @@ struct simple_pattern {
11
};
12
13
static inline struct simple_pattern *parse_pattern(const char *str, NETDATA_SIMPLE_PREFIX_MODE default_mode) {
14
+ /*
15
+ * DEBUG
16
info(">>>> PARSE: '%s'", str);
17
+ */
18
19
NETDATA_SIMPLE_PREFIX_MODE mode;
20
struct simple_pattern *child = NULL;
@@ -66,6 +69,8 @@ static inline struct simple_pattern *parse_pattern(const char *str, NETDATA_SIMP
69
70
free(buf);
71
72
+ /*
73
+ * DEBUG
74
info("PATTERN '%s' is composed by", str);
75
struct simple_pattern *p;
76
for(p = m; p ; p = p->child)
@@ -75,6 +80,7 @@ static inline struct simple_pattern *parse_pattern(const char *str, NETDATA_SIMP
80
(p->mode == NETDATA_SIMPLE_PATTERN_MODE_PREFIX || p->mode == NETDATA_SIMPLE_PATTERN_MODE_SUBSTRING)?"*":"",
81
p->len,
82
p->mode);
83
+ */
84
85
return m;
86
}
@@ -129,11 +135,15 @@ NETDATA_SIMPLE_PATTERN *netdata_simple_pattern_list_create(const char *list, NET
135
}
136
137
static inline int match_pattern(struct simple_pattern *m, const char *str, size_t len) {
138
+ /*
139
+ * DEBUG
140
+ *
141
info("CHECK string '%s' (len %zu) with pattern '%s%s%s' (len %zu type %u)", str, len,
142
(m->mode == NETDATA_SIMPLE_PATTERN_MODE_SUFFIX || m->mode == NETDATA_SIMPLE_PATTERN_MODE_SUBSTRING)?"*":"",
143
m->match,
144
(m->mode == NETDATA_SIMPLE_PATTERN_MODE_PREFIX || m->mode == NETDATA_SIMPLE_PATTERN_MODE_SUBSTRING)?"*":"",
145
m->len, m->mode);
146
+ */
147
148
char *s;
149
@@ -182,6 +192,9 @@ int netdata_simple_pattern_list_matches(NETDATA_SIMPLE_PATTERN *list, const char
192
size_t len = strlen(str);
193
for(m = root; m ; m = m->next)
194
if(match_pattern(m, str, len)) {
195
+ /*
196
+ * DEBUG
197
+ *
198
info("MATCHED string '%s' (len %zu) with pattern '%s%s%s' (len %zu type %u)", str, len,
199
(m->mode == NETDATA_SIMPLE_PATTERN_MODE_SUFFIX || m->mode == NETDATA_SIMPLE_PATTERN_MODE_SUBSTRING)?"*":"",
200
m->match,
@@ -196,9 +209,21 @@ int netdata_simple_pattern_list_matches(NETDATA_SIMPLE_PATTERN *list, const char
209
(p->mode == NETDATA_SIMPLE_PATTERN_MODE_PREFIX || p->mode == NETDATA_SIMPLE_PATTERN_MODE_SUBSTRING)?"*":"",
210
p->len,
211
p->mode);
212
+ */
213
214
return 1;
215
}
216
217
return 0;
218
}
219
+
220
+static inline void free_pattern(struct simple_pattern *m) {
221
+ if(m->next) free_pattern(m->next);
222
+ if(m->child) free_pattern(m->child);
223
+ freez((void *)m->match);
224
+ freez(m);
225
+}
226
+
227
+void netdata_simple_pattern_free(NETDATA_SIMPLE_PATTERN *list) {
228
+ free_pattern(((struct simple_pattern *)list)->next);
229
+}
src/simple_pattern.h
+1
@@ -11,5 +11,6 @@ typedef enum {
11
typedef void NETDATA_SIMPLE_PATTERN;
12
extern NETDATA_SIMPLE_PATTERN *netdata_simple_pattern_list_create(const char *list, NETDATA_SIMPLE_PREFIX_MODE default_mode);
13
extern int netdata_simple_pattern_list_matches(NETDATA_SIMPLE_PATTERN *list, const char *str);
14
+extern void netdata_simple_pattern_free(NETDATA_SIMPLE_PATTERN *list);
15
16
#endif //NETDATA_SIMPLE_PATTERN_H