diff options
author | Karel Klic <kklic@redhat.com> | 2009-12-04 16:36:35 +0100 |
---|---|---|
committer | Karel Klic <kklic@redhat.com> | 2009-12-04 16:36:35 +0100 |
commit | b7ea0e53e3375de6298b2f510302f75ebef4be4e (patch) | |
tree | 5bb4e5d163a8f1c5f2e54292fa60192045dad312 /src/Daemon | |
parent | 7b0292edc52d031db91ba6e38ff626a350959e2d (diff) | |
parent | 230f151aa7e357c37040ed51bcbdbc1a766af82a (diff) | |
download | abrt-b7ea0e53e3375de6298b2f510302f75ebef4be4e.tar.gz abrt-b7ea0e53e3375de6298b2f510302f75ebef4be4e.tar.xz abrt-b7ea0e53e3375de6298b2f510302f75ebef4be4e.zip |
Merge branch 'master' of git://git.fedorahosted.org/git/abrt
Diffstat (limited to 'src/Daemon')
-rw-r--r-- | src/Daemon/CommLayerServerSocket.h | 2 | ||||
-rw-r--r-- | src/Daemon/CrashWatcher.cpp | 56 | ||||
-rw-r--r-- | src/Daemon/CrashWatcher.h | 4 | ||||
-rw-r--r-- | src/Daemon/Daemon.cpp | 16 | ||||
-rw-r--r-- | src/Daemon/MiddleWare.cpp | 24 | ||||
-rw-r--r-- | src/Daemon/MiddleWare.h | 11 |
6 files changed, 24 insertions, 89 deletions
diff --git a/src/Daemon/CommLayerServerSocket.h b/src/Daemon/CommLayerServerSocket.h index baca195d..d1f464cc 100644 --- a/src/Daemon/CommLayerServerSocket.h +++ b/src/Daemon/CommLayerServerSocket.h @@ -28,7 +28,7 @@ class CCommLayerServerSocket : public CCommLayerServer virtual vector_crash_infos_t GetCrashInfos(const std::string& pSender); virtual report_status_t Report(const map_crash_report_t& pReport, const std::string& pSender); - virtual bool DeleteDebugDump(const std::string& pUUID, const std::string& pSender); + virtual void DeleteDebugDump(const std::string& pUUID, const std::string& pSender); virtual void Crash(const std::string& arg1); }; diff --git a/src/Daemon/CrashWatcher.cpp b/src/Daemon/CrashWatcher.cpp index 7f19ea32..1606f86d 100644 --- a/src/Daemon/CrashWatcher.cpp +++ b/src/Daemon/CrashWatcher.cpp @@ -69,27 +69,15 @@ vector_crash_infos_t GetCrashInfos(const char *pUID) retval.push_back(info); break; case MW_ERROR: - error_msg("Can't find dump directory for UUID %s, deleting from database", uuid); - DeleteCrashInfoInDB(uuid, uid); - break; - case MW_FILE_ERROR: - error_msg("Can't open file in dump directory for UUID %s, deleting", uuid); - { - std::string debugDumpDir = DeleteCrashInfoInDB(uuid, uid); - delete_debug_dump_dir(debugDumpDir.c_str()); - } - break; - default: + error_msg("Dump directory for UUID %s doesn't exist or misses crucial files, deleting", uuid); + /* Deletes both DB record and dump dir */ + DeleteDebugDump(uuid, uid); break; } } } catch (CABRTException& e) { - if (e.type() == EXCEP_FATAL) - { - throw e; - } error_msg("%s", e.what()); } @@ -126,12 +114,9 @@ map_crash_report_t CreateReport(const char* pUUID, const char* pUID, int force) case MW_PLUGIN_ERROR: error_msg("Particular analyzer plugin isn't loaded or there is an error within plugin(s)"); break; - case MW_CORRUPTED: - case MW_FILE_ERROR: default: error_msg("Corrupted crash with UUID %s, deleting", pUUID); - std::string debugDumpDir = DeleteCrashInfoInDB(pUUID, pUID); - delete_debug_dump_dir(debugDumpDir.c_str()); + DeleteDebugDump(pUUID, pUID); break; } return crashReport; @@ -204,40 +189,39 @@ int CreateReportThread(const char* pUUID, const char* pUID, int force, const cha return r; } -bool DeleteDebugDump(const char *pUUID, const char *pUID) + +/* Remove dump dir and its DB record */ +void DeleteDebugDump(const char *pUUID, const char *pUID) { try { - std::string debugDumpDir = DeleteCrashInfoInDB(pUUID, pUID); - delete_debug_dump_dir(debugDumpDir.c_str()); + CDatabase* database = g_pPluginManager->GetDatabase(g_settings_sDatabase.c_str()); + database->Connect(); + database_row_t row = database->GetRow(pUUID, pUID); + database->DeleteRow(pUUID, pUID); + database->DisConnect(); + + delete_debug_dump_dir(row.m_sDebugDumpDir.c_str()); } catch (CABRTException& e) { - if (e.type() == EXCEP_FATAL) - { - throw e; - } error_msg("%s", e.what()); - return false; } - return true; } -bool DeleteDebugDump_by_dir(const char *dump_dir) +void DeleteDebugDump_by_dir(const char *dump_dir) { try { - DeleteCrashInfosInDB_by_dir(dump_dir); + CDatabase* database = g_pPluginManager->GetDatabase(g_settings_sDatabase.c_str()); + database->Connect(); + database->DeleteRows_by_dir(dump_dir); + database->DisConnect(); + delete_debug_dump_dir(dump_dir); } catch (CABRTException& e) { - if (e.type() == EXCEP_FATAL) - { - throw e; - } error_msg("%s", e.what()); - return false; } - return true; } diff --git a/src/Daemon/CrashWatcher.h b/src/Daemon/CrashWatcher.h index 3f543e18..a8064367 100644 --- a/src/Daemon/CrashWatcher.h +++ b/src/Daemon/CrashWatcher.h @@ -51,7 +51,7 @@ class CCrashWatcher vector_crash_infos_t GetCrashInfos(const char *pUID); int CreateReportThread(const char* pUUID, const char* pUID, int force, const char* pSender); map_crash_report_t CreateReport(const char* pUUID, const char* pUID, int force); -bool DeleteDebugDump(const char *pUUID, const char *pUID); -bool DeleteDebugDump_by_dir(const char *dump_dir); +void DeleteDebugDump(const char *pUUID, const char *pUID); +void DeleteDebugDump_by_dir(const char *dump_dir); #endif diff --git a/src/Daemon/Daemon.cpp b/src/Daemon/Daemon.cpp index aeeb0cd5..54fc93f4 100644 --- a/src/Daemon/Daemon.cpp +++ b/src/Daemon/Daemon.cpp @@ -343,11 +343,6 @@ static void FindNewDumps(const char* pPath) VERB1 log("Already saved crash %s, deleting", itt->c_str()); delete_debug_dump_dir(itt->c_str()); break; - case MW_BLACKLISTED: - case MW_CORRUPTED: - case MW_PACKAGE_ERROR: - case MW_GPG_ERROR: - case MW_FILE_ERROR: default: log("Corrupted or bad crash %s (res:%d), deleting", itt->c_str(), (int)res); delete_debug_dump_dir(itt->c_str()); @@ -356,10 +351,6 @@ static void FindNewDumps(const char* pPath) } catch (CABRTException& e) { - if (e.type() == EXCEP_FATAL) - { - throw e; - } error_msg("%s", e.what()); } } @@ -545,12 +536,7 @@ static gboolean handle_inotify_cb(GIOChannel *gio, GIOCondition condition, gpoin } catch (CABRTException& e) { - error_msg(e.what()); - if (e.type() == EXCEP_FATAL) - { - free(buf); - return -1; - } + error_msg("%s", e.what()); } catch (...) { diff --git a/src/Daemon/MiddleWare.cpp b/src/Daemon/MiddleWare.cpp index 676f168a..8528f644 100644 --- a/src/Daemon/MiddleWare.cpp +++ b/src/Daemon/MiddleWare.cpp @@ -520,26 +520,6 @@ report_status_t Report(const map_crash_report_t& pCrashReport, return ret; } -std::string DeleteCrashInfoInDB(const char *pUUID, - const char *pUID) -{ - CDatabase* database = g_pPluginManager->GetDatabase(g_settings_sDatabase.c_str()); - database->Connect(); - database_row_t row = database->GetRow(pUUID, pUID); - database->DeleteRow(pUUID, pUID); - database->DisConnect(); - - return row.m_sDebugDumpDir; -} - -void DeleteCrashInfosInDB_by_dir(const char *dump_dir) -{ - CDatabase* database = g_pPluginManager->GetDatabase(g_settings_sDatabase.c_str()); - database->Connect(); - database->DeleteRows_by_dir(dump_dir); - database->DisConnect(); -} - /** * Check whether particular debugdump directory is saved * in database. This check is done together with an UID of an user. @@ -861,10 +841,6 @@ mw_result_t FillCrashInfo(const char *pUUID, catch (CABRTException& e) { error_msg("%s", e.what()); - if (e.type() == EXCEP_DD_LOAD) - { - return MW_FILE_ERROR; - } return MW_ERROR; } diff --git a/src/Daemon/MiddleWare.h b/src/Daemon/MiddleWare.h index 44fa3b6b..b2b58dcd 100644 --- a/src/Daemon/MiddleWare.h +++ b/src/Daemon/MiddleWare.h @@ -105,17 +105,6 @@ report_status_t Report(const map_crash_report_t& pCrashReport, std::string getDebugDumpDir( const char *pUUID, const char *pUID); /** - * Deletes a row from database. If a deleting is - * successfull, it returns a debugdump directort, which is not - * deleted. Otherwise, it returns empty string. - * @param pUUID A local UUID of a crash. - * @param pUID An UID of an user. - * @return A debugdump directory. - */ -std::string DeleteCrashInfoInDB(const char *pUUID, - const char *pUID); -void DeleteCrashInfosInDB_by_dir(const char *dump_dir); -/** * Saves debugdump into database. If saving is successful, * it fills crash info. * @param pDebugDumpDir A debugdump directory. |