summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJiri Moskovcak <jmoskovc@redhat.com>2009-11-02 15:37:30 +0100
committerJiri Moskovcak <jmoskovc@redhat.com>2009-11-02 15:37:30 +0100
commit90d6a5be050eac9d0f6dc7a7216e412227312bc5 (patch)
treeef1b16a843915004549c0c895717a84c5bf19c38 /src
parente1be4826551cc7aa396d0e4b28770fb8eb12946b (diff)
parent1eec1e1b5c5f5c7a032b32165139274b170ec06f (diff)
downloadabrt-90d6a5be050eac9d0f6dc7a7216e412227312bc5.tar.gz
abrt-90d6a5be050eac9d0f6dc7a7216e412227312bc5.tar.xz
abrt-90d6a5be050eac9d0f6dc7a7216e412227312bc5.zip
Merge branch 'master' of ssh://git.fedorahosted.org/git/abrt
Diffstat (limited to 'src')
-rw-r--r--src/Applet/Applet.cpp2
-rw-r--r--src/CLI/dbus.cpp8
-rw-r--r--src/Daemon/CommLayerServerDBus.cpp6
-rw-r--r--src/Daemon/Daemon.cpp15
-rw-r--r--src/Daemon/com.redhat.abrt.service8
5 files changed, 23 insertions, 16 deletions
diff --git a/src/Applet/Applet.cpp b/src/Applet/Applet.cpp
index c2d5467..ea58b25 100644
--- a/src/Applet/Applet.cpp
+++ b/src/Applet/Applet.cpp
@@ -246,7 +246,7 @@ int main(int argc, char** argv)
"Problem connecting to dbus, or applet is already running");
/* Show disabled icon if daemon is not running */
- if (!dbus_bus_name_has_owner(system_conn, CC_DBUS_NAME, &err))
+ if (!dbus_bus_name_has_owner(system_conn, ABRTD_DBUS_NAME, &err))
{
const char* msg = _("ABRT service is not running");
puts(msg);
diff --git a/src/CLI/dbus.cpp b/src/CLI/dbus.cpp
index f59633e..3f7b0ae 100644
--- a/src/CLI/dbus.cpp
+++ b/src/CLI/dbus.cpp
@@ -27,7 +27,7 @@ DBusConnection* s_dbus_conn;
/* helpers */
static DBusMessage* new_call_msg(const char* method)
{
- DBusMessage* msg = dbus_message_new_method_call(CC_DBUS_NAME, CC_DBUS_PATH, CC_DBUS_IFACE, method);
+ DBusMessage* msg = dbus_message_new_method_call(ABRTD_DBUS_NAME, ABRTD_DBUS_PATH, ABRTD_DBUS_IFACE, method);
if (!msg)
die_out_of_memory();
return msg;
@@ -72,7 +72,7 @@ static DBusMessage* send_get_reply_and_unref(DBusMessage* msg)
DBusError err;
dbus_error_init(&err);
- if (dbus_message_is_signal(received, CC_DBUS_IFACE, "Update"))
+ if (dbus_message_is_signal(received, ABRTD_DBUS_IFACE, "Update"))
{
const char *update_msg;
if (!dbus_message_get_args(received, &err,
@@ -83,7 +83,7 @@ static DBusMessage* send_get_reply_and_unref(DBusMessage* msg)
}
printf(">> %s\n", update_msg);
}
- else if (dbus_message_is_signal(received, CC_DBUS_IFACE, "Warning"))
+ else if (dbus_message_is_signal(received, ABRTD_DBUS_IFACE, "Warning"))
{
const char *warning_msg;
if (!dbus_message_get_args(received, &err,
@@ -181,5 +181,5 @@ void handle_dbus_err(bool error_flag, DBusError *err)
error_msg_and_die(
"error requesting DBus name %s, possible reasons: "
"abrt run by non-root; dbus config is incorrect",
- CC_DBUS_NAME);
+ ABRTD_DBUS_NAME);
}
diff --git a/src/Daemon/CommLayerServerDBus.cpp b/src/Daemon/CommLayerServerDBus.cpp
index dd904e4..7fa7531 100644
--- a/src/Daemon/CommLayerServerDBus.cpp
+++ b/src/Daemon/CommLayerServerDBus.cpp
@@ -28,7 +28,7 @@
static DBusMessage* new_signal_msg(const char* member, const char* peer = NULL)
{
/* path, interface, member name */
- DBusMessage* msg = dbus_message_new_signal(CC_DBUS_PATH, CC_DBUS_IFACE, member);
+ DBusMessage* msg = dbus_message_new_signal(ABRTD_DBUS_PATH, ABRTD_DBUS_IFACE, member);
if (!msg)
die_out_of_memory();
/* Send unicast dbus signal if peer is known */
@@ -537,7 +537,7 @@ static void handle_dbus_err(bool error_flag, DBusError *err)
error_msg_and_die(
"Error requesting DBus name %s, possible reasons: "
"abrt run by non-root; dbus config is incorrect",
- CC_DBUS_NAME);
+ ABRTD_DBUS_NAME);
}
CCommLayerServerDBus::CCommLayerServerDBus()
@@ -553,7 +553,7 @@ CCommLayerServerDBus::CCommLayerServerDBus()
attach_dbus_conn_to_glib_main_loop(conn, "/com/redhat/abrt", message_received);
VERB3 log("dbus_bus_request_name");
- int rc = dbus_bus_request_name(conn, CC_DBUS_NAME, DBUS_NAME_FLAG_REPLACE_EXISTING, &err);
+ int rc = dbus_bus_request_name(conn, ABRTD_DBUS_NAME, DBUS_NAME_FLAG_REPLACE_EXISTING, &err);
//maybe check that r == DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER instead?
handle_dbus_err(rc < 0, &err);
VERB3 log("dbus init done");
diff --git a/src/Daemon/Daemon.cpp b/src/Daemon/Daemon.cpp
index 188cd0d..0e81dfd 100644
--- a/src/Daemon/Daemon.cpp
+++ b/src/Daemon/Daemon.cpp
@@ -106,8 +106,9 @@ typedef struct cron_callback_data_t
} cron_callback_data_t;
-static uint8_t s_sig_caught;
+static uint8_t s_sig_caught; /* must be one byte */
static int s_signal_pipe[2];
+static int s_signal_pipe_write = -1;
static unsigned s_timeout;
static bool s_exiting;
@@ -443,10 +444,12 @@ static int Lock()
/* we leak opened lfd intentionally */
}
-static void handle_fatal_signal(int signal)
+static void handle_fatal_signal(int signo)
{
- s_sig_caught = signal;
- write(s_signal_pipe[1], &s_sig_caught, 1);
+ s_sig_caught = signo;
+ VERB3 log("Got signal %d", signo);
+ if (s_signal_pipe_write >= 0)
+ write(s_signal_pipe_write, &s_sig_caught, 1);
}
/* Signal pipe handler */
@@ -458,6 +461,7 @@ static gboolean handle_signal_cb(GIOChannel *gio, GIOCondition condition, gpoint
if (len == 1)
{
/* we did receive a signal */
+ VERB3 log("Got signal %d through signal pipe", signo);
s_exiting = 1;
return TRUE;
}
@@ -828,6 +832,9 @@ int main(int argc, char** argv)
start_syslog_logging();
}
+ /* Only now we want signal pipe to work */
+ s_signal_pipe_write = s_signal_pipe[1];
+
/* Enter the event loop */
try
{
diff --git a/src/Daemon/com.redhat.abrt.service b/src/Daemon/com.redhat.abrt.service
index e12c7ee..b251ef7 100644
--- a/src/Daemon/com.redhat.abrt.service
+++ b/src/Daemon/com.redhat.abrt.service
@@ -1,7 +1,7 @@
[D-BUS Service]
Name=com.redhat.abrt
-# We use small timeout of 33 seconds in order to make
-# "abrtd exited while clients existed but were idle" situations
-# to be triggered more often and thus better tested
-Exec=/usr/sbin/abrtd -ds -t33
+# For testing, you may add -t33 to use small timeout of 33 seconds.
+# This will make "abrtd exited while clients existed but were idle"
+# situations easy to trigger
+Exec=/usr/sbin/abrtd -ds
User=root