diff options
| author | Denys Vlasenko <dvlasenk@redhat.com> | 2010-11-02 13:29:36 +0100 |
|---|---|---|
| committer | Denys Vlasenko <dvlasenk@redhat.com> | 2010-11-02 13:29:36 +0100 |
| commit | 098324df56d2cb27ea90174a11b5aeb5a110b86a (patch) | |
| tree | a2a055b65ed868ee2e7fd51013d4cba54479126c /src | |
| parent | ec16fd0d010b40d2bde85a4167543bd3fa5823b0 (diff) | |
| download | abrt-098324df56d2cb27ea90174a11b5aeb5a110b86a.tar.gz abrt-098324df56d2cb27ea90174a11b5aeb5a110b86a.tar.xz abrt-098324df56d2cb27ea90174a11b5aeb5a110b86a.zip | |
remove AutoReportUIDs support
abrt_action.conf provides a way to configure that behaviour.
This change adds a commented-out example how to do it
for kerneloops.
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Diffstat (limited to 'src')
| -rw-r--r-- | src/daemon/Daemon.cpp | 28 | ||||
| -rw-r--r-- | src/daemon/MiddleWare.cpp | 41 | ||||
| -rw-r--r-- | src/daemon/MiddleWare.h | 4 | ||||
| -rw-r--r-- | src/daemon/abrt_action.conf | 15 |
4 files changed, 10 insertions, 78 deletions
diff --git a/src/daemon/Daemon.cpp b/src/daemon/Daemon.cpp index d94f8a9b..929fcd0b 100644 --- a/src/daemon/Daemon.cpp +++ b/src/daemon/Daemon.cpp @@ -668,34 +668,6 @@ static gboolean handle_inotify_cb(GIOChannel *gio, GIOCondition condition, gpoin const char *analyzer = get_crash_data_item_content(crashinfo, FILENAME_ANALYZER).c_str(); const char *uid_str = get_crash_data_item_content(crashinfo, CD_UID).c_str(); - /* Autoreport it if configured to do so */ - if (res != MW_REPORTED - && analyzer_has_AutoReportUIDs(analyzer, uid_str) - ) { - VERB1 log("Reporting the crash automatically"); - map_crash_data_t crash_report; - string crash_id = ssprintf("%s:%s", uid_str, get_crash_data_item_content(crashinfo, CD_UUID).c_str()); - mw_result_t crash_result = CreateCrashReport( - crash_id.c_str(), - /*caller_uid:*/ 0, - /*force:*/ 0, - crash_report - ); - if (crash_result == MW_OK) - { - map_analyzer_actions_and_reporters_t::const_iterator it = g_settings_mapAnalyzerActionsAndReporters.find(analyzer); - map_analyzer_actions_and_reporters_t::const_iterator end = g_settings_mapAnalyzerActionsAndReporters.end(); - if (it != end) - { - vector_pair_string_string_t keys = it->second; - unsigned size = keys.size(); - for (unsigned ii = 0; ii < size; ii++) - { - autoreport(keys[ii], crash_report); - } - } - } - } /* Send dbus signal */ if (analyzer_has_InformAllUsers(analyzer)) uid_str = NULL; diff --git a/src/daemon/MiddleWare.cpp b/src/daemon/MiddleWare.cpp index 43ac9637..e66f9f6c 100644 --- a/src/daemon/MiddleWare.cpp +++ b/src/daemon/MiddleWare.cpp @@ -126,7 +126,6 @@ static void run_analyser_CreateReport(const char *pAnalyzer, * Called in three cases: * (1) by StartJob dbus call -> CreateReportThread(), in the thread * (2) by CreateReport dbus call - * (3) by daemon if AutoReportUID is set for this user's crashes */ mw_result_t CreateCrashReport(const char *crash_id, long caller_uid, @@ -523,46 +522,6 @@ bool analyzer_has_InformAllUsers(const char *analyzer_name) return string_to_bool(it->second.c_str()); } -bool analyzer_has_AutoReportUIDs(const char *analyzer_name, const char *uid_str) -{ - CAnalyzer* analyzer = g_pPluginManager->GetAnalyzer(analyzer_name); - if (!analyzer) - { - return false; - } - map_plugin_settings_t settings = analyzer->GetSettings(); - map_plugin_settings_t::const_iterator it = settings.find("AutoReportUIDs"); - if (it == settings.end()) - return false; - - vector_string_t logins; - parse_args(it->second.c_str(), logins); - - uid_t uid = xatoi_u(uid_str); - unsigned size = logins.size(); - for (unsigned ii = 0; ii < size; ii++) - { - struct passwd* pw = getpwnam(logins[ii].c_str()); - if (!pw) - continue; - if (pw->pw_uid == uid) - return true; - } - - return false; -} - -void autoreport(const pair_string_string_t& reporter_options, const map_crash_data_t& crash_report) -{ - CReporter* reporter = g_pPluginManager->GetReporter(reporter_options.first.c_str()); - if (!reporter) - { - return; - } - map_plugin_settings_t plugin_settings; - /*std::string res =*/ reporter->Report(crash_report, plugin_settings, reporter_options.second.c_str()); -} - /** * Execute all action plugins, which are associated to * particular analyzer plugin. diff --git a/src/daemon/MiddleWare.h b/src/daemon/MiddleWare.h index b132fb95..efe354f2 100644 --- a/src/daemon/MiddleWare.h +++ b/src/daemon/MiddleWare.h @@ -145,8 +145,4 @@ void AddActionOrReporter(const char *pActionOrReporter, const char *pArgs); bool analyzer_has_InformAllUsers(const char *analyzer_name); - -bool analyzer_has_AutoReportUIDs(const char *analyzer_name, const char *uid_str); - -void autoreport(const pair_string_string_t& reporter_options, const map_crash_data_t& crash_report); #endif /*MIDDLEWARE_H_*/ diff --git a/src/daemon/abrt_action.conf b/src/daemon/abrt_action.conf index 6b4bd50a..a8df2896 100644 --- a/src/daemon/abrt_action.conf +++ b/src/daemon/abrt_action.conf @@ -30,12 +30,17 @@ EVENT=post-create abrt-action-save-package-data EVENT=post-create analyzer=CCpp abrt-action-analyze-c EVENT=post-create analyzer=python abrt-action-analyze-python EVENT=post-create analyzer=oops abrt-action-analyze-oops +# If you want behavior similar to one provided by kerneloops daemon +# distributed by kerneloops.org - that is, if you want +# oopses to be reported automatically and immediately without +# user interaction, uncomment this line: +#EVENT=post-create analyzer=oops abrt-action-kerneloops EVENT=analyze analyzer=CCpp abrt-action-install-debuginfo "$DUMP_DIR/coredump" "/var/run/abrt/$$-$RANDOM" /var/cache/abrt-di EVENT=analyze analyzer=CCpp abrt-action-generate-backtrace -EVENT=report analyzer=oops abrt-action-kerneloops -EVENT=report analyzer=CCpp abrt-action-bugzilla -EVENT=report analyzer=CCpp abrt-action-print >/var/log/abrt.log -EVENT=report analyzer=python abrt-action-bugzilla -EVENT=report analyzer=python abrt-action-print >/var/log/abrt.log +EVENT=report analyzer=oops abrt-action-kerneloops +EVENT=report_Bugzilla analyzer=CCpp abrt-action-bugzilla +EVENT=report_Logger analyzer=CCpp abrt-action-print >/var/log/abrt.log +EVENT=report_Bugzilla analyzer=python abrt-action-bugzilla +EVENT=report_Logger analyzer=python abrt-action-print >/var/log/abrt.log |
