summaryrefslogtreecommitdiffstats
path: root/src/Daemon
diff options
context:
space:
mode:
authorKarel Klic <kklic@redhat.com>2009-12-14 10:41:51 +0100
committerKarel Klic <kklic@redhat.com>2009-12-14 10:41:51 +0100
commita24d2906c51e3740e6e0acf8f0093827b4e35bc3 (patch)
tree1022bf70766a88d45dc71d6ea413ccd0fa14d07c /src/Daemon
parentb7ea0e53e3375de6298b2f510302f75ebef4be4e (diff)
parent42f0375d09931903965b36c87f17f805def956bf (diff)
downloadabrt-a24d2906c51e3740e6e0acf8f0093827b4e35bc3.tar.gz
abrt-a24d2906c51e3740e6e0acf8f0093827b4e35bc3.tar.xz
abrt-a24d2906c51e3740e6e0acf8f0093827b4e35bc3.zip
Merge branch 'master' of git://git.fedorahosted.org/git/abrt
Diffstat (limited to 'src/Daemon')
-rw-r--r--src/Daemon/CommLayerServer.h4
-rw-r--r--src/Daemon/CommLayerServerDBus.cpp45
-rw-r--r--src/Daemon/CommLayerServerDBus.h4
-rw-r--r--src/Daemon/CommLayerServerSocket.cpp4
-rw-r--r--src/Daemon/CommLayerServerSocket.h8
-rw-r--r--src/Daemon/CrashWatcher.cpp12
-rw-r--r--src/Daemon/CrashWatcher.h2
-rw-r--r--src/Daemon/Daemon.cpp10
-rw-r--r--src/Daemon/Makefile.am3
-rw-r--r--src/Daemon/MiddleWare.cpp22
-rw-r--r--src/Daemon/PluginManager.cpp18
-rw-r--r--src/Daemon/RPM.cpp2
-rwxr-xr-xsrc/Daemon/abrt-debuginfo-install2
-rw-r--r--src/Daemon/abrt.conf2
-rw-r--r--src/Daemon/abrtd.825
15 files changed, 95 insertions, 68 deletions
diff --git a/src/Daemon/CommLayerServer.h b/src/Daemon/CommLayerServer.h
index 21c1b304..367c0956 100644
--- a/src/Daemon/CommLayerServer.h
+++ b/src/Daemon/CommLayerServer.h
@@ -17,8 +17,8 @@ class CCommLayerServer {
virtual void JobDone(const char* pDest, const char* pUUID) = 0;
virtual void QuotaExceed(const char* str) {}
- virtual void Update(const std::string& pMessage, const char* peer, uint64_t pJobID) {};
- virtual void Warning(const std::string& pMessage, const char* peer, uint64_t pJobID) {};
+ virtual void Update(const char* pMessage, const char* peer, uint64_t pJobID) {};
+ virtual void Warning(const char* pMessage, const char* peer, uint64_t pJobID) {};
};
#endif
diff --git a/src/Daemon/CommLayerServerDBus.cpp b/src/Daemon/CommLayerServerDBus.cpp
index 27a18c24..9222c594 100644
--- a/src/Daemon/CommLayerServerDBus.cpp
+++ b/src/Daemon/CommLayerServerDBus.cpp
@@ -88,23 +88,21 @@ void CCommLayerServerDBus::JobDone(const char* peer, const char* pUUID)
send_flush_and_unref(msg);
}
-void CCommLayerServerDBus::Update(const std::string& pMessage, const char* peer, uint64_t job_id)
+void CCommLayerServerDBus::Update(const char* pMessage, const char* peer, uint64_t job_id)
{
DBusMessage* msg = new_signal_msg("Update", peer);
- const char* c_message = pMessage.c_str();
dbus_message_append_args(msg,
- DBUS_TYPE_STRING, &c_message,
+ DBUS_TYPE_STRING, &pMessage,
DBUS_TYPE_UINT64, &job_id, /* TODO: redundant parameter, remove from API */
DBUS_TYPE_INVALID);
send_flush_and_unref(msg);
}
-void CCommLayerServerDBus::Warning(const std::string& pMessage, const char* peer, uint64_t job_id)
+void CCommLayerServerDBus::Warning(const char* pMessage, const char* peer, uint64_t job_id)
{
DBusMessage* msg = new_signal_msg("Warning", peer);
- const char* c_message = pMessage.c_str();
dbus_message_append_args(msg,
- DBUS_TYPE_STRING, &c_message,
+ DBUS_TYPE_STRING, &pMessage,
DBUS_TYPE_UINT64, &job_id, /* TODO: redundant parameter, remove from API */
DBUS_TYPE_INVALID);
send_flush_and_unref(msg);
@@ -137,9 +135,9 @@ static int handle_GetCrashInfos(DBusMessage* call, DBusMessage* reply)
long unix_uid = get_remote_uid(call);
vector_crash_infos_t argout1 = GetCrashInfos(to_string(unix_uid).c_str());
- DBusMessageIter iter;
- dbus_message_iter_init_append(reply, &iter);
- store_val(&iter, argout1);
+ DBusMessageIter out_iter;
+ dbus_message_iter_init_append(reply, &out_iter);
+ store_val(&out_iter, argout1);
send_flush_and_unref(reply);
return 0;
@@ -315,7 +313,11 @@ static int handle_DeleteDebugDump(DBusMessage* call, DBusMessage* reply)
}
long unix_uid = get_remote_uid(call);
- DeleteDebugDump(argin1, to_string(unix_uid).c_str());
+ int32_t result = DeleteDebugDump(argin1, to_string(unix_uid).c_str());
+
+ DBusMessageIter out_iter;
+ dbus_message_iter_init_append(reply, &out_iter);
+ store_val(&out_iter, result);
send_flush_and_unref(reply);
return 0;
@@ -325,9 +327,9 @@ static int handle_GetPluginsInfo(DBusMessage* call, DBusMessage* reply)
{
vector_map_string_t plugins_info = g_pPluginManager->GetPluginsInfo();
- DBusMessageIter iter;
- dbus_message_iter_init_append(reply, &iter);
- store_val(&iter, plugins_info);
+ DBusMessageIter out_iter;
+ dbus_message_iter_init_append(reply, &out_iter);
+ store_val(&out_iter, plugins_info);
send_flush_and_unref(reply);
return 0;
@@ -350,9 +352,10 @@ static int handle_GetPluginSettings(DBusMessage* call, DBusMessage* reply)
VERB1 log("got %s('%s') call from uid %ld", "GetPluginSettings", PluginName, unix_uid);
map_plugin_settings_t plugin_settings = g_pPluginManager->GetPluginSettings(PluginName, to_string(unix_uid).c_str());
- DBusMessageIter iter;
- dbus_message_iter_init_append(reply, &iter);
- store_val(&iter, plugin_settings);
+ DBusMessageIter out_iter;
+ dbus_message_iter_init_append(reply, &out_iter);
+ store_val(&out_iter, plugin_settings);
+
send_flush_and_unref(reply);
return 0;
}
@@ -434,9 +437,10 @@ static int handle_GetSettings(DBusMessage* call, DBusMessage* reply)
{
map_abrt_settings_t result = GetSettings();
- DBusMessageIter iter;
- dbus_message_iter_init_append(reply, &iter);
- store_val(&iter, result);
+ DBusMessageIter out_iter;
+ dbus_message_iter_init_append(reply, &out_iter);
+ store_val(&out_iter, result);
+
send_flush_and_unref(reply);
return 0;
}
@@ -540,7 +544,8 @@ static void handle_dbus_err(bool error_flag, DBusError *err)
return;
error_msg_and_die(
"Error requesting DBus name %s, possible reasons: "
- "abrt run by non-root; dbus config is incorrect",
+ "abrt run by non-root; dbus config is incorrect; "
+ "or dbus daemon needs to be restarted to reload dbus config",
ABRTD_DBUS_NAME);
}
diff --git a/src/Daemon/CommLayerServerDBus.h b/src/Daemon/CommLayerServerDBus.h
index f159c732..9bd77666 100644
--- a/src/Daemon/CommLayerServerDBus.h
+++ b/src/Daemon/CommLayerServerDBus.h
@@ -15,8 +15,8 @@ class CCommLayerServerDBus
virtual void JobDone(const char* pDest, const char* pUUID);
virtual void QuotaExceed(const char* str);
- virtual void Update(const std::string& pMessage, const char* peer, uint64_t pJobID);
- virtual void Warning(const std::string& pMessage, const char* peer, uint64_t pJobID);
+ virtual void Update(const char* pMessage, const char* peer, uint64_t pJobID);
+ virtual void Warning(const char* pMessage, const char* peer, uint64_t pJobID);
};
#endif
diff --git a/src/Daemon/CommLayerServerSocket.cpp b/src/Daemon/CommLayerServerSocket.cpp
index ee775c6d..0c5f2e31 100644
--- a/src/Daemon/CommLayerServerSocket.cpp
+++ b/src/Daemon/CommLayerServerSocket.cpp
@@ -40,7 +40,7 @@ std::string CCommLayerServerSocket::GetSenderUID(int pSenderSocket)
socklen_t len = sizeof(creds);
if (getsockopt(pSenderSocket, SOL_SOCKET, SO_PEERCRED, &creds, &len) == -1)
{
- throw CABRTException(EXCEP_ERROR, "CCommLayerServerSocket::GetSenderUID(): Error can get sender uid.");
+ throw CABRTException(EXCEP_ERROR, "CCommLayerServerSocket::GetSenderUID(): error getting sender uid");
}
return to_string(creds.uid);
}
@@ -219,7 +219,7 @@ vector_crash_infos_t CCommLayerServerSocket::GetCrashInfos(const std::string &pS
}
//reimplement as CreateReportThread(...)?
-//map_crash_report_t CCommLayerServerSocket::CreateReport(const std::string &pUUID,const std::string &pSender)
+//map_crash_report_t CCommLayerServerSocket::CreateReport(const std::string &pUUID, const std::string &pSender)
//{
// map_crash_report_t crashReport;
// crashReport = ::CreateReport(pUUID, pSender);
diff --git a/src/Daemon/CommLayerServerSocket.h b/src/Daemon/CommLayerServerSocket.h
index d1f464cc..753b67af 100644
--- a/src/Daemon/CommLayerServerSocket.h
+++ b/src/Daemon/CommLayerServerSocket.h
@@ -26,9 +26,9 @@ class CCommLayerServerSocket : public CCommLayerServer
CCommLayerServerSocket();
virtual ~CCommLayerServerSocket();
- 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 void DeleteDebugDump(const std::string& pUUID, const std::string& pSender);
+ virtual vector_crash_infos_t GetCrashInfos(const char *pSender);
+ virtual report_status_t Report(const map_crash_report_t& pReport, const char *pSender);
+ virtual void DeleteDebugDump(const char *pUUID, const char *pSender);
- virtual void Crash(const std::string& arg1);
+ virtual void Crash(const char *arg1);
};
diff --git a/src/Daemon/CrashWatcher.cpp b/src/Daemon/CrashWatcher.cpp
index 1606f86d..88c058b0 100644
--- a/src/Daemon/CrashWatcher.cpp
+++ b/src/Daemon/CrashWatcher.cpp
@@ -73,6 +73,8 @@ vector_crash_infos_t GetCrashInfos(const char *pUID)
/* Deletes both DB record and dump dir */
DeleteDebugDump(uuid, uid);
break;
+ default:
+ break;
}
}
}
@@ -191,7 +193,7 @@ int CreateReportThread(const char* pUUID, const char* pUID, int force, const cha
/* Remove dump dir and its DB record */
-void DeleteDebugDump(const char *pUUID, const char *pUID)
+int DeleteDebugDump(const char *pUUID, const char *pUID)
{
try
{
@@ -201,12 +203,18 @@ void DeleteDebugDump(const char *pUUID, const char *pUID)
database->DeleteRow(pUUID, pUID);
database->DisConnect();
- delete_debug_dump_dir(row.m_sDebugDumpDir.c_str());
+ const char *dump_dir = row.m_sDebugDumpDir.c_str();
+ if (dump_dir[0] != '\0')
+ {
+ delete_debug_dump_dir(dump_dir);
+ return 0; /* success */
+ }
}
catch (CABRTException& e)
{
error_msg("%s", e.what());
}
+ return -1; /* failure */
}
void DeleteDebugDump_by_dir(const char *dump_dir)
diff --git a/src/Daemon/CrashWatcher.h b/src/Daemon/CrashWatcher.h
index a8064367..8d56c4ec 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);
-void DeleteDebugDump(const char *pUUID, const char *pUID);
+int 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 54fc93f4..3971a2cc 100644
--- a/src/Daemon/Daemon.cpp
+++ b/src/Daemon/Daemon.cpp
@@ -64,7 +64,7 @@
* "Please report this crash": calls Report() of all registered reporter plugins.
* Returns report_status_t (map_vector_string_t) - the status of each call.
* 2nd parameter is the contents of user's abrt.conf.
- * - DeleteDebugDump(UUID): delete corresponding /var/cache/abrt/DIR. Returns bool
+ * - DeleteDebugDump(UUID): delete it from DB and delete corresponding /var/cache/abrt/DIR
* - GetPluginsInfo(): returns vector_map_string_t
* - GetPluginSettings(PluginName): returns map_plugin_settings_t (map_string_t)
* - SetPluginSettings(PluginName, map_plugin_settings_t): returns void
@@ -456,6 +456,12 @@ static gboolean handle_inotify_cb(GIOChannel *gio, GIOCondition condition, gpoin
continue;
}
+//TODO: make it possible to detect when ccpp didn't finish dumping yet.
+//We are seeing it *before* ccpp finished, and it can take LONG time
+//(users saw 100+ seconds).
+//This floods syslog with "Lock file 'XXXXXX' is locked by process NNN"
+//Maybe ccpp should use XXXXXX.new name for incomplete dumps
+//and abrtd should watch for renames XXXXXX.new -> XXXXXX?
log("Directory '%s' creation detected", name);
std::string worst_dir;
@@ -667,7 +673,7 @@ int main(int argc, char** argv)
int opt;
int parent_pid = getpid();
- setlocale(LC_ALL,"");
+ setlocale(LC_ALL, "");
#if ENABLE_NLS
bindtextdomain(PACKAGE, LOCALEDIR);
diff --git a/src/Daemon/Makefile.am b/src/Daemon/Makefile.am
index fc4f5e20..18fcd816 100644
--- a/src/Daemon/Makefile.am
+++ b/src/Daemon/Makefile.am
@@ -26,7 +26,8 @@ abrtd_CPPFLAGS = \
$(DBUS_CFLAGS) \
$(XMLRPC_CFLAGS) $(XMLRPC_CLIENT_CFLAGS) \
$(ENABLE_SOCKET_OR_DBUS) \
- -D_GNU_SOURCE
+ -D_GNU_SOURCE \
+ -Wall
abrtd_LDADD = \
../../lib/Utils/libABRTUtils.la \
../../lib/Utils/libABRTdUtils.la \
diff --git a/src/Daemon/MiddleWare.cpp b/src/Daemon/MiddleWare.cpp
index 8528f644..5235c172 100644
--- a/src/Daemon/MiddleWare.cpp
+++ b/src/Daemon/MiddleWare.cpp
@@ -348,7 +348,7 @@ void RunActionsAndReporters(const char *pDebugDumpDir)
map_crash_report_t crashReport;
DebugDumpToCrashReport(pDebugDumpDir, crashReport);
VERB2 log("%s.Report(...)", it_ar->first.c_str());
- reporter->Report(crashReport, plugin_settings, it_ar->second);
+ reporter->Report(crashReport, plugin_settings, it_ar->second.c_str());
}
else if (tp == ACTION)
{
@@ -427,12 +427,12 @@ report_status_t Report(const map_crash_report_t& pCrashReport,
std::string packageNVR = pCrashReport.find(FILENAME_PACKAGE)->second[CD_CONTENT];
std::string packageName = packageNVR.substr(0, packageNVR.rfind("-", packageNVR.rfind("-") - 1));
- // Save comments and how to reproduciton
+ // Save comment and "how to reproduce"
map_crash_report_t::const_iterator it_comment = pCrashReport.find(CD_COMMENT);
map_crash_report_t::const_iterator it_reproduce = pCrashReport.find(CD_REPRODUCE);
- std::string pDumpDir = getDebugDumpDir(UUID.c_str(), UID.c_str());
-
+ if (it_comment != pCrashReport.end() || it_reproduce != pCrashReport.end())
{
+ std::string pDumpDir = getDebugDumpDir(UUID.c_str(), UID.c_str());
CDebugDump dd;
dd.Open(pDumpDir.c_str());
if (it_comment != pCrashReport.end())
@@ -490,7 +490,7 @@ report_status_t Report(const map_crash_report_t& pCrashReport,
}
#endif
map_plugin_settings_t plugin_settings = pSettings[pluginName];
- std::string res = reporter->Report(pCrashReport, plugin_settings, it_r->second);
+ std::string res = reporter->Report(pCrashReport, plugin_settings, it_r->second.c_str());
#if 0 /* Using ~user/.abrt/ is bad wrt security */
if (home != "")
@@ -498,15 +498,15 @@ report_status_t Report(const map_crash_report_t& pCrashReport,
reporter->SetSettings(oldSettings);
}
#endif
- ret[pluginName].push_back("1");
- ret[pluginName].push_back(res);
+ ret[pluginName].push_back("1"); // REPORT_STATUS_IDX_FLAG
+ ret[pluginName].push_back(res); // REPORT_STATUS_IDX_MSG
message += res + "\n";
}
}
catch (CABRTException& e)
{
- ret[pluginName].push_back("0");
- ret[pluginName].push_back(e.what());
+ ret[pluginName].push_back("0"); // REPORT_STATUS_IDX_FLAG
+ ret[pluginName].push_back(e.what()); // REPORT_STATUS_IDX_MSG
update_client("Reporting via '%s' was not successful: %s", pluginName.c_str(), e.what());
}
}
@@ -604,6 +604,8 @@ static mw_result_t SavePackageDescriptionToDebugDump(const char *pExecutable,
}
std::string description = GetDescription(packageName.c_str());
+//TODO: if executable in /usr/bin/python, /bin/sh and such,
+//we need to extract component using argv[1]
std::string component = GetComponent(pExecutable);
try
@@ -688,7 +690,7 @@ void autoreport(const pair_string_string_t& reporter_options, const map_crash_re
}
map_plugin_settings_t plugin_settings;
- std::string res = reporter->Report(crash_report, plugin_settings, reporter_options.second);
+ std::string res = reporter->Report(crash_report, plugin_settings, reporter_options.second.c_str());
}
/**
diff --git a/src/Daemon/PluginManager.cpp b/src/Daemon/PluginManager.cpp
index 58151b29..82f22e85 100644
--- a/src/Daemon/PluginManager.cpp
+++ b/src/Daemon/PluginManager.cpp
@@ -286,11 +286,11 @@ CAnalyzer* CPluginManager::GetAnalyzer(const char *pName)
map_plugins_t::iterator plugin = m_mapPlugins.find(pName);
if (plugin == m_mapPlugins.end())
{
- throw CABRTException(EXCEP_PLUGIN, ssprintf("Plugin '%s' is not registered", pName));
+ throw CABRTException(EXCEP_PLUGIN, "Plugin '%s' is not registered", pName);
}
if (m_mapABRTPlugins[pName]->GetType() != ANALYZER)
{
- throw CABRTException(EXCEP_PLUGIN, ssprintf("Plugin '%s' is not an analyzer plugin", pName));
+ throw CABRTException(EXCEP_PLUGIN, "Plugin '%s' is not an analyzer plugin", pName);
}
return (CAnalyzer*)(plugin->second);
}
@@ -300,11 +300,11 @@ CReporter* CPluginManager::GetReporter(const char *pName)
map_plugins_t::iterator plugin = m_mapPlugins.find(pName);
if (plugin == m_mapPlugins.end())
{
- throw CABRTException(EXCEP_PLUGIN, ssprintf("Plugin '%s' is not registered", pName));
+ throw CABRTException(EXCEP_PLUGIN, "Plugin '%s' is not registered", pName);
}
if (m_mapABRTPlugins[pName]->GetType() != REPORTER)
{
- throw CABRTException(EXCEP_PLUGIN, ssprintf("Plugin '%s' is not a reporter plugin", pName));
+ throw CABRTException(EXCEP_PLUGIN, "Plugin '%s' is not a reporter plugin", pName);
}
return (CReporter*)(plugin->second);
}
@@ -314,11 +314,11 @@ CAction* CPluginManager::GetAction(const char *pName)
map_plugins_t::iterator plugin = m_mapPlugins.find(pName);
if (plugin == m_mapPlugins.end())
{
- throw CABRTException(EXCEP_PLUGIN, ssprintf("Plugin '%s' is not registered", pName));
+ throw CABRTException(EXCEP_PLUGIN, "Plugin '%s' is not registered", pName);
}
if (m_mapABRTPlugins[pName]->GetType() != ACTION)
{
- throw CABRTException(EXCEP_PLUGIN, ssprintf("Plugin '%s' is not an action plugin", pName));
+ throw CABRTException(EXCEP_PLUGIN, "Plugin '%s' is not an action plugin", pName);
}
return (CAction*)(plugin->second);
}
@@ -328,11 +328,11 @@ CDatabase* CPluginManager::GetDatabase(const char *pName)
map_plugins_t::iterator plugin = m_mapPlugins.find(pName);
if (plugin == m_mapPlugins.end())
{
- throw CABRTException(EXCEP_PLUGIN, ssprintf("Plugin '%s' is not registered", pName));
+ throw CABRTException(EXCEP_PLUGIN, "Plugin '%s' is not registered", pName);
}
if (m_mapABRTPlugins[pName]->GetType() != DATABASE)
{
- throw CABRTException(EXCEP_PLUGIN, ssprintf("Plugin '%s' is not a database plugin", pName));
+ throw CABRTException(EXCEP_PLUGIN, "Plugin '%s' is not a database plugin", pName);
}
return (CDatabase*)(plugin->second);
}
@@ -342,7 +342,7 @@ plugin_type_t CPluginManager::GetPluginType(const char *pName)
map_plugins_t::iterator plugin = m_mapPlugins.find(pName);
if (plugin == m_mapPlugins.end())
{
- throw CABRTException(EXCEP_PLUGIN, ssprintf("Plugin '%s' is not registered", pName));
+ throw CABRTException(EXCEP_PLUGIN, "Plugin '%s' is not registered", pName);
}
return m_mapABRTPlugins[pName]->GetType();
}
diff --git a/src/Daemon/RPM.cpp b/src/Daemon/RPM.cpp
index 4a819b5d..b3cf2c1c 100644
--- a/src/Daemon/RPM.cpp
+++ b/src/Daemon/RPM.cpp
@@ -146,7 +146,7 @@ std::string GetComponent(const char* pFileName)
if (header != NULL)
{
rpmtd td = rpmtdNew();
- headerGet(header,RPMTAG_SOURCERPM, td, HEADERGET_DEFAULT);
+ headerGet(header, RPMTAG_SOURCERPM, td, HEADERGET_DEFAULT);
const char * srpm = rpmtdGetString(td);
if (srpm != NULL)
{
diff --git a/src/Daemon/abrt-debuginfo-install b/src/Daemon/abrt-debuginfo-install
index 23379b46..6278b63c 100755
--- a/src/Daemon/abrt-debuginfo-install
+++ b/src/Daemon/abrt-debuginfo-install
@@ -148,7 +148,7 @@ print_package_names() {
yumopts="-C"
echo "`count_words $missing_debuginfo_files` missing debuginfos, getting package list from cache" >&2
else
- echo "`count_words $missing_debuginfo_files` missing debuginfos, getting package list" >&2
+ echo "`count_words $missing_debuginfo_files` missing debuginfos, getting package list from repositories" >&2
fi
local cmd="yum $yumopts --enablerepo=*debuginfo* --quiet provides $missing_debuginfo_files"
echo "$cmd" >"yum_provides.$1.OUT"
diff --git a/src/Daemon/abrt.conf b/src/Daemon/abrt.conf
index 028f582d..ee034a6c 100644
--- a/src/Daemon/abrt.conf
+++ b/src/Daemon/abrt.conf
@@ -4,7 +4,7 @@
[ Common ]
# With this option set to "yes",
# only crashes in signed packages will be analyzed.
-OpenGPGCheck = no
+OpenGPGCheck = yes
# GPG keys
OpenGPGPublicKeys = /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
# Blacklisted packages
diff --git a/src/Daemon/abrtd.8 b/src/Daemon/abrtd.8
index b106041d..150f0c3d 100644
--- a/src/Daemon/abrtd.8
+++ b/src/Daemon/abrtd.8
@@ -1,10 +1,10 @@
-.TH abrt "8" "28 May 2009" ""
+.TH abrtd "8" "28 May 2009" ""
.SH NAME
-abrt \- an automated bug-reporting tool
+abrtd \- automated bug reporting tool's daemon
.SH SYNOPSIS
-.B abrt [ -d ]
+.B abrtd [-dsv[v]...]
.SH DESCRIPTION
-.I abrt
+.I abrtd
is a daemon that watches for application crashes. When a crash occurs,
it collects the crash data (core file, application's command line etc.)
and takes action according to the type of application that
@@ -17,17 +17,22 @@ respective plugins.
.SH OPTIONS
.TP
-
.B "\-d"
-This option causes
-.I abrt
-to print more debugging information when the daemon is started.
+Stay in the foreground and log to standard error.
+.TP
+.B "\-s"
+
+Log to system log even with option -d.
+.TP
+.B "\-v"
+
+Log more detailed debugging information.
.SH CAVEATS
-When you use some other crash-catching tool, specific for an application
+When you use some other crash-catching tool specific for an application
or an application type (for example BugBuddy for GNOME applications),
crashes of this type will be handled by that tool and
-not by \fIabrt\fP. If you want \fIabrt\fP to handle these crashes,
+not by \fIabrtd\fP. If you want \fIabrtd\fP to handle these crashes,
turn off the higher-level crash-catching tool.
.SH "SEE ALSO"
.IR abrt.conf (5),