>From df4caf808582ec0fd5f2303ee400281858e18e10 Mon Sep 17 00:00:00 2001 From: Jakub Hrozek Date: Fri, 7 Aug 2015 17:13:02 +0200 Subject: [PATCH 2/2] sbus: Add a special error code for messages sent by the bus itself --- src/sbus/sssd_dbus_request.c | 5 +++++ src/sbus/sssd_dbus_signals.c | 4 +++- src/util/util_errors.c | 1 + src/util/util_errors.h | 1 + 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/sbus/sssd_dbus_request.c b/src/sbus/sssd_dbus_request.c index 888a0eeb53ed62f45ab4f95eec4508e960a6ca40..552bb5da86668f4e94c0fb7699753706a0698c43 100644 --- a/src/sbus/sssd_dbus_request.c +++ b/src/sbus/sssd_dbus_request.c @@ -327,6 +327,11 @@ struct tevent_req *sbus_get_sender_id_send(TALLOC_CTX *mem_ctx, goto immediate; } + if (strcmp(sender, "org.freedesktop.DBus") == 0) { + ret = ERR_SBUS_SENDER_BUS; + goto immediate; + } + state->sender = talloc_strdup(state, sender); if (state->sender == NULL) { ret = ENOMEM; diff --git a/src/sbus/sssd_dbus_signals.c b/src/sbus/sssd_dbus_signals.c index 5ecc9f1f60ab00cf69da3fa7791a0c15a9cc7038..1dc08ae25761881f23a81e7871a8af626497a9a3 100644 --- a/src/sbus/sssd_dbus_signals.c +++ b/src/sbus/sssd_dbus_signals.c @@ -267,7 +267,9 @@ sbus_signal_handler_got_caller_id(struct tevent_req *req) signal = tevent_req_callback_data(req, struct sbus_incoming_signal); ret = sbus_get_sender_id_recv(req, &signal->client); - if (ret != EOK) { + if (ret == ERR_SBUS_SENDER_BUS) { + DEBUG(SSSDBG_TRACE_FUNC, "Got a signal from the bus..\n"); + } else if (ret != EOK) { DEBUG(SSSDBG_CRIT_FAILURE, "Failed to resolve caller's ID: %s\n", sss_strerror(ret)); goto done; diff --git a/src/util/util_errors.c b/src/util/util_errors.c index 735f6dcfc7af33edcc886fd106cb3655bcc9566a..bae62f02c26d4b7dba424512c48ac0ce36fd8c06 100644 --- a/src/util/util_errors.c +++ b/src/util/util_errors.c @@ -79,6 +79,7 @@ struct err_string error_to_str[] = { { "Retrieving keytab failed" }, /* ERR_IPA_GETKEYTAB_FAILED */ { "Trusted forest root unknown" }, /* ERR_TRUST_FOREST_UNKNOWN */ { "p11_child failed" }, /* ERR_P11_CHILD */ + { "Message sender is the bus" }, /* ERR_SBUS_SENDER_BUS */ { "ERR_LAST" } /* ERR_LAST */ }; diff --git a/src/util/util_errors.h b/src/util/util_errors.h index fbfbdef334be1fb8a525b78ab6336d616b31a189..5528b5bb3ab8bfff1d8cd4722def31a60cb8c24d 100644 --- a/src/util/util_errors.h +++ b/src/util/util_errors.h @@ -101,6 +101,7 @@ enum sssd_errors { ERR_IPA_GETKEYTAB_FAILED, ERR_TRUST_FOREST_UNKNOWN, ERR_P11_CHILD, + ERR_SBUS_SENDER_BUS, ERR_LAST /* ALWAYS LAST */ }; -- 2.4.3