[PATCH 11/20] fwts_log_scan: move fwts_log_regex_find
Marcello Sylvester Bauer
info at marcellobauer.com
Wed Jun 20 12:14:37 UTC 2018
Signed-off-by: Marcello Sylvester Bauer <info at marcellobauer.com>
---
src/lib/include/fwts_log_scan.h | 1 +
src/lib/src/fwts_klog.c | 27 +--------------------------
src/lib/src/fwts_log_scan.c | 35 +++++++++++++++++++++++++++++++++++
3 files changed, 37 insertions(+), 26 deletions(-)
diff --git a/src/lib/include/fwts_log_scan.h b/src/lib/include/fwts_log_scan.h
index b2364791..438dceb2 100644
--- a/src/lib/include/fwts_log_scan.h
+++ b/src/lib/include/fwts_log_scan.h
@@ -52,5 +52,6 @@ void fwts_log_scan_patterns(fwts_framework *fw, char *line, int repeated,
fwts_compare_mode fwts_log_compare_mode_str_to_val(const char *str);
const char *fwts_json_str(fwts_framework *fw, const char *table, int index, json_object *obj, const char *key, bool log_error);
int fwts_log_check(fwts_framework *fw, const char *table, fwts_log_scan_func fwts_log_scan_patterns, fwts_log_progress_func progress, fwts_list *log, int *errors, const char *json_data_path, const char *label, bool remove_timestamp);
+int fwts_log_regex_find(fwts_framework *fw, fwts_list *log, char *pattern, bool remove_timestamp);
#endif
diff --git a/src/lib/src/fwts_klog.c b/src/lib/src/fwts_klog.c
index ea8d4ed7..fe4f2728 100644
--- a/src/lib/src/fwts_klog.c
+++ b/src/lib/src/fwts_klog.c
@@ -160,27 +160,6 @@ int fwts_klog_pm_check(fwts_framework *fw, fwts_klog_progress_func progress,
progress, klog, errors);
}
-static void fwts_klog_regex_find_callback(fwts_framework *fw, char *line, int repeated,
- char *prev, void *pattern, int *match)
-{
- int rc;
- regex_t compiled;
-
- FWTS_UNUSED(fw);
- FWTS_UNUSED(repeated);
- FWTS_UNUSED(prev);
-
- rc = regcomp(&compiled, (char *)pattern, REG_EXTENDED);
- if (rc) {
- fwts_log_error(fw, "Regex %s failed to compile: %d.", (char *)pattern, rc);
- } else {
- rc = regexec(&compiled, line, 0, NULL, 0);
- regfree(&compiled);
- if (!rc)
- (*match)++;
- }
-}
-
/*
* fwts_klog_regex_find()
* scan a kernel log list of lines for a given regex pattern
@@ -188,11 +167,7 @@ static void fwts_klog_regex_find_callback(fwts_framework *fw, char *line, int re
*/
int fwts_klog_regex_find(fwts_framework *fw, fwts_list *klog, char *pattern)
{
- int found = 0;
-
- fwts_klog_scan(fw, klog, fwts_klog_regex_find_callback, NULL, pattern, &found);
-
- return found;
+ return fwts_log_regex_find(fw, klog, pattern, true);
}
/*
diff --git a/src/lib/src/fwts_log_scan.c b/src/lib/src/fwts_log_scan.c
index 79979ff1..2ba23177 100644
--- a/src/lib/src/fwts_log_scan.c
+++ b/src/lib/src/fwts_log_scan.c
@@ -464,3 +464,38 @@ fail_put:
return ret;
}
+
+static void fwts_log_regex_find_callback(fwts_framework *fw, char *line, int repeated,
+ char *prev, void *pattern, int *match)
+{
+ int rc;
+ regex_t compiled;
+
+ FWTS_UNUSED(fw);
+ FWTS_UNUSED(repeated);
+ FWTS_UNUSED(prev);
+
+ rc = regcomp(&compiled, (char *)pattern, REG_EXTENDED);
+ if (rc) {
+ fwts_log_error(fw, "Regex %s failed to compile: %d.", (char *)pattern, rc);
+ } else {
+ rc = regexec(&compiled, line, 0, NULL, 0);
+ regfree(&compiled);
+ if (!rc)
+ (*match)++;
+ }
+}
+
+/*
+ * fwts_log_regex_find()
+ * scan a log list of lines for a given regex pattern
+ * uses fwts_log_regex_find_callback() callback
+ */
+int fwts_log_regex_find(fwts_framework *fw, fwts_list *log, char *pattern, bool remove_timestamp)
+{
+ int found = 0;
+
+ fwts_log_scan(fw, log, fwts_log_regex_find_callback, NULL, pattern, &found, remove_timestamp);
+
+ return found;
+}
--
2.16.4
More information about the fwts-devel
mailing list