summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2010-02-08 11:53:35 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2010-02-08 11:53:35 +0100
commit1b2aba4cb8da1b2f0bcc3d59da73206d6586e27f (patch)
tree2096fd119f3f0715edc915f4160db0d452f9822f
parente2d0d8ce56b2ac3ab993897e1a7ea8a24790a9df (diff)
parent3406715e343774dfc0329c81f35fcfdd4e23ff10 (diff)
Merge branch 'master' into rhel6
-rw-r--r--abrt.init17
-rw-r--r--src/Daemon/MiddleWare.cpp25
2 files changed, 29 insertions, 13 deletions
diff --git a/abrt.init b/abrt.init
index f1dc410..6256767 100644
--- a/abrt.init
+++ b/abrt.init
@@ -16,7 +16,8 @@
# Source function library.
. /etc/rc.d/init.d/functions
-
+ABRT_BIN="/usr/sbin/abrtd"
+LOCK="/var/lock/subsys/abrtd"
RETVAL=0
#
@@ -28,7 +29,7 @@ check() {
[ `id -u` = 0 ] || exit 4
# Check if abrt is executable
- test -x /usr/sbin/abrtd || exit 5
+ test -x $ABRT_BIN || exit 5
}
start() {
@@ -36,11 +37,11 @@ start() {
check
# Check if it is already running
- if [ ! -f /var/lock/subsys/abrt ]; then
+ if [ ! -f $LOCK ]; then
echo -n $"Starting abrt daemon: "
- daemon /usr/sbin/abrtd
+ daemon $ABRT_BIN
RETVAL=$?
- [ $RETVAL -eq 0 ] && touch /var/lock/subsys/abrt
+ [ $RETVAL -eq 0 ] && touch $LOCK
echo
fi
return $RETVAL
@@ -51,9 +52,9 @@ stop() {
check
echo -n $"Stopping abrt daemon: "
- killproc /usr/sbin/abrtd
+ killproc $ABRT_BIN
RETVAL=$?
- [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/abrt
+ [ $RETVAL -eq 0 ] && rm -f $LOCK
echo
return $RETVAL
}
@@ -86,7 +87,7 @@ restart)
restart
;;
condrestart)
- if [ -f /var/lock/subsys/abrt ]; then
+ if [ -f $LOCK ]; then
restart
fi
;;
diff --git a/src/Daemon/MiddleWare.cpp b/src/Daemon/MiddleWare.cpp
index e0687fd..28066f5 100644
--- a/src/Daemon/MiddleWare.cpp
+++ b/src/Daemon/MiddleWare.cpp
@@ -414,6 +414,25 @@ report_status_t Report(const map_crash_data_t& client_report,
}
}
+ /* Remove BIN filenames from stored_report if they are not present in client's data */
+ map_crash_data_t::const_iterator its = stored_report.begin();
+ while (its != stored_report.end())
+ {
+ if (its->second[CD_TYPE] == CD_BIN)
+ {
+ std::string key = its->first;
+ if (get_crash_data_item_content_or_NULL(client_report, key.c_str()) == NULL)
+ {
+ /* client does not have it -> does not want it passed to reporters */
+ VERB3 log("Won't report BIN file %s:'%s'", key.c_str(), its->second[CD_CONTENT].c_str());
+ its++; /* move off the element we will erase */
+ stored_report.erase(key);
+ continue;
+ }
+ }
+ its++;
+ }
+
const std::string& analyzer = get_crash_data_item_content(stored_report, FILENAME_ANALYZER);
std::string dup_hash = GetGlobalUUID(analyzer.c_str(), pDumpDir.c_str());
@@ -733,10 +752,6 @@ bool analyzer_has_AutoReportUIDs(const char *analyzer_name, const char *uid_str)
if (it == settings.end())
return false;
- if ((strcmp(analyzer_name, "Kerneloops") == 0) && (strcmp(uid_str, "-1") == 0))
- return true;
-
-/*
vector_string_t logins;
parse_args(it->second.c_str(), logins);
@@ -750,7 +765,7 @@ bool analyzer_has_AutoReportUIDs(const char *analyzer_name, const char *uid_str)
if (pw->pw_uid == uid)
return true;
}
-*/
+
return false;
}