diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2010-03-05 17:03:32 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2010-03-05 17:03:32 +0100 |
commit | dbbc2df18f5441d7b298c5d32e4199aa56f08ce0 (patch) | |
tree | adf4bce0a6a02d29da010f91c8264c4dd38ca465 /src/Daemon/MiddleWare.cpp | |
parent | 9e7602b032c2187887c8164fa23c37d6daf28ac0 (diff) | |
download | abrt-dbbc2df18f5441d7b298c5d32e4199aa56f08ce0.tar.gz abrt-dbbc2df18f5441d7b298c5d32e4199aa56f08ce0.tar.xz abrt-dbbc2df18f5441d7b298c5d32e4199aa56f08ce0.zip |
add ProcessUnpackaged option to abrt.conf
Based on patch by Pekka Pietikainen <pp@ee.oulu.fi>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'src/Daemon/MiddleWare.cpp')
-rw-r--r-- | src/Daemon/MiddleWare.cpp | 34 |
1 files changed, 27 insertions, 7 deletions
diff --git a/src/Daemon/MiddleWare.cpp b/src/Daemon/MiddleWare.cpp index 1ed13e86..770ed927 100644 --- a/src/Daemon/MiddleWare.cpp +++ b/src/Daemon/MiddleWare.cpp @@ -654,19 +654,41 @@ static mw_result_t SavePackageDescriptionToDebugDump( { std::string package; std::string packageName; + std::string component; std::string scriptName; /* only if "interpreter /path/to/script" */ if (strcmp(pExecutable, "kernel") == 0) { - packageName = package = "kernel"; + component = packageName = package = "kernel"; } else { char *rpm_pkg = GetPackage(pExecutable); if (rpm_pkg == NULL) { - log("Executable '%s' doesn't belong to any package", pExecutable); - return MW_PACKAGE_ERROR; + if (g_settings_bProcessUnpackaged) + { + VERB2 log("Crash in unpackaged executable '%s', proceeding without packaging information", pExecutable); + try + { + CDebugDump dd; + dd.Open(pDebugDumpDir); + dd.SaveText(FILENAME_PACKAGE, ""); + dd.SaveText(FILENAME_COMPONENT, ""); + dd.SaveText(FILENAME_DESCRIPTION, "Crashed executable does not belong to any installed package"); + return MW_OK; + } + catch (CABRTException& e) + { + error_msg("%s", e.what()); + return MW_ERROR; + } + } + else + { + log("Executable '%s' doesn't belong to any package", pExecutable); + return MW_PACKAGE_ERROR; + } } /* Check well-known interpreter names */ @@ -738,19 +760,17 @@ static mw_result_t SavePackageDescriptionToDebugDump( } */ } + component = GetComponent(pExecutable); } std::string description = GetDescription(packageName.c_str()); - std::string component = GetComponent(pExecutable); try { CDebugDump dd; dd.Open(pDebugDumpDir); dd.SaveText(FILENAME_PACKAGE, package.c_str()); dd.SaveText(FILENAME_DESCRIPTION, description.c_str()); - /* For oopses, pExecutable == "kernel" gives "" here. Don't write it */ - if (component.size() != 0) - dd.SaveText(FILENAME_COMPONENT, component.c_str()); + dd.SaveText(FILENAME_COMPONENT, component.c_str()); } catch (CABRTException& e) { |