[PATCH 06/20] fwts_log_scan: move fwts_log_unique_label
Marcello Sylvester Bauer
info at marcellobauer.com
Tue Jun 26 13:10:52 UTC 2018
Note: label has been added as argument.
Signed-off-by: Marcello Sylvester Bauer <info at marcellobauer.com>
---
src/lib/include/fwts_log_scan.h | 1 +
src/lib/src/fwts_klog.c | 36 ++++++------------------------------
src/lib/src/fwts_log_scan.c | 35 +++++++++++++++++++++++++++++++++++
3 files changed, 42 insertions(+), 30 deletions(-)
diff --git a/src/lib/include/fwts_log_scan.h b/src/lib/include/fwts_log_scan.h
index e4326188..caf1e8f0 100644
--- a/src/lib/include/fwts_log_scan.h
+++ b/src/lib/include/fwts_log_scan.h
@@ -45,5 +45,6 @@ void fwts_log_free(fwts_list *list);
fwts_list *fwts_log_find_changes(fwts_list *log_old, fwts_list *log_new);
char *fwts_log_remove_timestamp(char *text);
int fwts_log_scan(fwts_framework *fw, fwts_list *log, fwts_log_scan_func callback, fwts_log_progress_func progress, void *private, int *errors, bool remove_timestamp);
+char *fwts_log_unique_label(const char *str, const char *label);
#endif
diff --git a/src/lib/src/fwts_klog.c b/src/lib/src/fwts_klog.c
index 94195261..cfb76d7f 100644
--- a/src/lib/src/fwts_klog.c
+++ b/src/lib/src/fwts_klog.c
@@ -35,6 +35,11 @@
*/
#define KLOG_DATA_JSON_FILE "klog.json"
+/*
+ * match unique strings in the kernel log
+ */
+#define UNIQUE_KLOG_LABEL "Klog"
+
/*
* fwts_klog_free()
* free kernel log list
@@ -98,36 +103,7 @@ int fwts_klog_scan(fwts_framework *fw,
char *fwts_klog_unique_label(const char *str)
{
- static char buffer[1024];
- const char *src = str;
- char *dst;
- int count = 0;
- bool forceupper = true;
-
- strcpy(buffer, "Klog");
- dst = buffer + 4;
-
- while ((dst < (buffer + sizeof(buffer) - 1)) &&
- (count < 4) && (*src)) {
- if ((*src == '|') ||
- (*src == '/') ||
- (*src == ' ')) {
- src++;
- count++;
- forceupper = true;
- continue;
- }
- if (!isalnum(*src)) {
- src++;
- continue;
- }
- *dst++ = forceupper ? toupper(*src) : *src;
- src++;
-
- forceupper = false;
- }
- *dst = '\0';
- return buffer;
+ return fwts_log_unique_label(str, UNIQUE_KLOG_LABEL);
}
void fwts_klog_scan_patterns(fwts_framework *fw,
diff --git a/src/lib/src/fwts_log_scan.c b/src/lib/src/fwts_log_scan.c
index 9b9e9457..4ef02061 100644
--- a/src/lib/src/fwts_log_scan.c
+++ b/src/lib/src/fwts_log_scan.c
@@ -205,3 +205,38 @@ int fwts_log_scan(fwts_framework *fw,
return FWTS_OK;
}
+
+char *fwts_log_unique_label(const char *str, const char *label)
+{
+ static char buffer[1024];
+ const char *src = str;
+ char *dst;
+ int count = 0;
+ bool forceupper = true;
+
+ strncpy(buffer, label, sizeof(buffer)-1);
+ buffer[sizeof(buffer)-1] = '\0';
+ dst = buffer + strlen(label);
+
+ while ((dst < (buffer + sizeof(buffer) - 1)) &&
+ (count < 4) && (*src)) {
+ if ((*src == '|') ||
+ (*src == '/') ||
+ (*src == ' ')) {
+ src++;
+ count++;
+ forceupper = true;
+ continue;
+ }
+ if (!isalnum(*src)) {
+ src++;
+ continue;
+ }
+ *dst++ = forceupper ? toupper(*src) : *src;
+ src++;
+
+ forceupper = false;
+ }
+ *dst = '\0';
+ return buffer;
+}
--
2.16.4
More information about the fwts-devel
mailing list