diff options
| author | Jiri Moskovcak <jmoskovc@redhat.com> | 2009-11-02 15:37:30 +0100 |
|---|---|---|
| committer | Jiri Moskovcak <jmoskovc@redhat.com> | 2009-11-02 15:37:30 +0100 |
| commit | 90d6a5be050eac9d0f6dc7a7216e412227312bc5 (patch) | |
| tree | ef1b16a843915004549c0c895717a84c5bf19c38 /src | |
| parent | e1be4826551cc7aa396d0e4b28770fb8eb12946b (diff) | |
| parent | 1eec1e1b5c5f5c7a032b32165139274b170ec06f (diff) | |
| download | abrt-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.cpp | 2 | ||||
| -rw-r--r-- | src/CLI/dbus.cpp | 8 | ||||
| -rw-r--r-- | src/Daemon/CommLayerServerDBus.cpp | 6 | ||||
| -rw-r--r-- | src/Daemon/Daemon.cpp | 15 | ||||
| -rw-r--r-- | src/Daemon/com.redhat.abrt.service | 8 |
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 |
