diff options
author | Jakub Hrozek <jhrozek@redhat.com> | 2014-06-24 14:28:51 +0200 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2014-07-08 20:35:11 +0200 |
commit | 0c1d65998907930678da2d091789446f2c344d5d (patch) | |
tree | c0b95ab34b61d48f4644b7bde3cb2a8266958c7c /src | |
parent | 1f2507e1fd089f2bf3458cfb4faeaa9669d72f98 (diff) | |
download | sssd-0c1d65998907930678da2d091789446f2c344d5d.tar.gz sssd-0c1d65998907930678da2d091789446f2c344d5d.tar.xz sssd-0c1d65998907930678da2d091789446f2c344d5d.zip |
IFP: Return a specific value on failure connecting to the system bus
We need to treat the failure to connect to the system bus as non-fatal.
In this commit, we introduce a special error code and only print a DEBUG
message when this error code is returned from the startup function.
Reviewed-by: Pavel Březina <pbrezina@redhat.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/responder/ifp/ifpsrv.c | 8 | ||||
-rw-r--r-- | src/util/util_errors.c | 1 | ||||
-rw-r--r-- | src/util/util_errors.h | 1 |
3 files changed, 8 insertions, 2 deletions
diff --git a/src/responder/ifp/ifpsrv.c b/src/responder/ifp/ifpsrv.c index 5dc5652b6..9014c3e85 100644 --- a/src/responder/ifp/ifpsrv.c +++ b/src/responder/ifp/ifpsrv.c @@ -192,7 +192,7 @@ sysbus_init(TALLOC_CTX *mem_ctx, DEBUG(SSSDBG_CRIT_FAILURE, "Failed to connect to D-BUS system bus: [%s]\n", dbus_error.message); - ret = EIO; + ret = ERR_NO_SYSBUS; goto fail; } dbus_connection_set_exit_on_disconnect(conn, FALSE); @@ -372,7 +372,11 @@ int ifp_process_init(TALLOC_CTX *mem_ctx, INFOPIPE_IFACE, ifp_ifaces, ifp_ctx, &ifp_ctx->sysbus); - if (ret != EOK) { + if (ret == ERR_NO_SYSBUS) { + DEBUG(SSSDBG_MINOR_FAILURE, + "The system bus is not available..\n"); + /* Explicitly ignore, the D-Bus daemon will start us */ + } else if (ret != EOK) { DEBUG(SSSDBG_CRIT_FAILURE, "Failed to connect to the system message bus\n"); talloc_free(ifp_ctx); diff --git a/src/util/util_errors.c b/src/util/util_errors.c index 113567423..aa5693190 100644 --- a/src/util/util_errors.c +++ b/src/util/util_errors.c @@ -60,6 +60,7 @@ struct err_string error_to_str[] = { { "Bus message has no sender" }, /* ERR_SBUS_NO_SENDER */ { "User/Group SIDs not found" }, /* ERR_NO_SIDS */ { "Bus method not supported" }, /* ERR_SBUS_NOSUP */ + { "Cannot connect to system bus" }, /* ERR_NO_SYSBUS */ }; diff --git a/src/util/util_errors.h b/src/util/util_errors.h index b88c7969b..f68409eed 100644 --- a/src/util/util_errors.h +++ b/src/util/util_errors.h @@ -82,6 +82,7 @@ enum sssd_errors { ERR_SBUS_NO_SENDER, ERR_NO_SIDS, ERR_SBUS_NOSUP, + ERR_NO_SYSBUS, ERR_LAST /* ALWAYS LAST */ }; |