summaryrefslogtreecommitdiffstats
path: root/lib/plugins/KerneloopsScanner.cpp
diff options
context:
space:
mode:
authorNikola Pajkovsky <npajkovs@redhat.com>2010-09-30 18:56:38 +0200
committerNikola Pajkovsky <npajkovs@redhat.com>2010-10-06 11:22:14 +0200
commit43c4ec48451330d8290d28c6ad1d2793ac3207fa (patch)
tree7085ab00b6e46bf4f396efc5366e22e5dd5e5a6c /lib/plugins/KerneloopsScanner.cpp
parent888577a1086f07f74692ca58d8a46a413a59ec2f (diff)
downloadabrt-43c4ec48451330d8290d28c6ad1d2793ac3207fa.tar.gz
abrt-43c4ec48451330d8290d28c6ad1d2793ac3207fa.tar.xz
abrt-43c4ec48451330d8290d28c6ad1d2793ac3207fa.zip
Kerneloops*.cpp and dumpoops.cpp uses GList
vector_string_t was replaced by glist in these files Signed-off-by: Nikola Pajkovsky <npajkovs@redhat.com>
Diffstat (limited to 'lib/plugins/KerneloopsScanner.cpp')
-rw-r--r--lib/plugins/KerneloopsScanner.cpp28
1 files changed, 16 insertions, 12 deletions
diff --git a/lib/plugins/KerneloopsScanner.cpp b/lib/plugins/KerneloopsScanner.cpp
index e0e64438..0e7d4dc3 100644
--- a/lib/plugins/KerneloopsScanner.cpp
+++ b/lib/plugins/KerneloopsScanner.cpp
@@ -22,6 +22,7 @@
*/
#include <syslog.h>
#include <asm/unistd.h> /* __NR_syslog */
+#include <glib.h>
#include "abrtlib.h"
#include "abrt_exception.h"
#include "comm_layer_inner.h"
@@ -30,7 +31,7 @@
// TODO: https://fedorahosted.org/abrt/ticket/78
-static int scan_dmesg(vector_string_t& oopsList)
+static int scan_dmesg(GList **oopsList)
{
VERB1 log("Scanning dmesg");
@@ -51,7 +52,7 @@ static int scan_dmesg(vector_string_t& oopsList)
/* "dumpoops" tool uses these two functions too */
extern "C" {
-int scan_syslog_file(vector_string_t& oopsList, const char *filename, time_t *last_changed_p)
+int scan_syslog_file(GList **oopsList, const char *filename, time_t *last_changed_p)
{
VERB1 log("Scanning syslog file '%s'", filename);
@@ -111,10 +112,10 @@ int scan_syslog_file(vector_string_t& oopsList, const char *filename, time_t *la
}
/* returns number of errors */
-int save_oops_to_debug_dump(const vector_string_t& oopsList)
+int save_oops_to_debug_dump(GList **oopsList)
{
unsigned countdown = 16; /* do not report hundreds of oopses */
- unsigned idx = oopsList.size();
+ unsigned idx = g_list_length(*oopsList);
time_t t = time(NULL);
pid_t my_pid = getpid();
@@ -127,8 +128,7 @@ int save_oops_to_debug_dump(const vector_string_t& oopsList)
char path[sizeof(DEBUG_DUMPS_DIR"/kerneloops-%lu-%lu-%lu") + 3 * sizeof(long)*3];
sprintf(path, DEBUG_DUMPS_DIR"/kerneloops-%lu-%lu-%lu", (long)t, (long)my_pid, (long)idx);
- std::string oops = oopsList.at(--idx);
- const char *first_line = oops.c_str();
+ char *first_line = (char*)g_list_nth_data(*oopsList,--idx);
char *second_line = (char*)strchr(first_line, '\n'); /* never NULL */
*second_line++ = '\0';
@@ -161,11 +161,11 @@ CKerneloopsScanner::CKerneloopsScanner()
m_syslog_last_change = 0;
/* Scan dmesg, on first call only */
- vector_string_t oopsList;
- cnt_FoundOopses = scan_dmesg(oopsList);
+ GList *oopsList = NULL;
+ cnt_FoundOopses = scan_dmesg(&oopsList);
if (cnt_FoundOopses > 0)
{
- int errors = save_oops_to_debug_dump(oopsList);
+ int errors = save_oops_to_debug_dump(&oopsList);
if (errors > 0)
log("%d errors while dumping oopses", errors);
}
@@ -178,11 +178,11 @@ void CKerneloopsScanner::Run(const char *pActionDir, const char *pArgs, int forc
if (it != m_pSettings.end())
syslog_file = it->second.c_str();
- vector_string_t oopsList;
- int cnt_FoundOopses = scan_syslog_file(oopsList, syslog_file, &m_syslog_last_change);
+ GList *oopsList = NULL;
+ int cnt_FoundOopses = scan_syslog_file(&oopsList, syslog_file, &m_syslog_last_change);
if (cnt_FoundOopses > 0)
{
- int errors = save_oops_to_debug_dump(oopsList);
+ int errors = save_oops_to_debug_dump(&oopsList);
if (errors > 0)
log("%d errors while dumping oopses", errors);
/*
@@ -198,6 +198,10 @@ void CKerneloopsScanner::Run(const char *pActionDir, const char *pArgs, int forc
cnt_FoundOopses);
closelog();
}
+
+ for (GList *li = oopsList; li != NULL; li = g_list_next(li))
+ free((char*)li->data);
+ g_list_free(oopsList);
}
PLUGIN_INFO(ACTION,