From d6f1b16baf8106d709e3fac585a12789dcb6bd29 Mon Sep 17 00:00:00 2001 From: Pavel Březina Date: Jun 27 2016 14:34:58 +0000 Subject: SBUS: Add string helper macros Reviewed-by: Jakub Hrozek --- diff --git a/src/providers/data_provider/dp_target_hostid.c b/src/providers/data_provider/dp_target_hostid.c index a47601f..93f9fda 100644 --- a/src/providers/data_provider/dp_target_hostid.c +++ b/src/providers/data_provider/dp_target_hostid.c @@ -46,7 +46,7 @@ errno_t dp_host_handler(struct sbus_request *sbus_req, } data->name = name; - data->alias = alias[0] == '\0' ? NULL : alias; + data->alias = SBUS_SET_STRING(alias); key = talloc_asprintf(data, "%s:%s", name, (data->alias == NULL ? "(null)" : data->alias)); diff --git a/src/providers/data_provider/dp_target_subdomains.c b/src/providers/data_provider/dp_target_subdomains.c index 85e37f0..e29a9b9 100644 --- a/src/providers/data_provider/dp_target_subdomains.c +++ b/src/providers/data_provider/dp_target_subdomains.c @@ -40,7 +40,7 @@ errno_t dp_subdomains_handler(struct sbus_request *sbus_req, } data->domain_hint = domain_hint; - key = domain_hint[0] == '\0' ? "" : domain_hint; + key = SBUS_IS_STRING_EMPTY(domain_hint) ? "" : domain_hint; dp_req_with_reply(dp_cli, NULL, "Subdomains", key, sbus_req, DPT_SUBDOMAINS, DPM_DOMAINS_HANDLER, 0, data, diff --git a/src/sbus/sssd_dbus.h b/src/sbus/sssd_dbus.h index 170b16b..fe1c4a7 100644 --- a/src/sbus/sssd_dbus.h +++ b/src/sbus/sssd_dbus.h @@ -61,6 +61,12 @@ struct sbus_request; */ #define SBUS_SUBTREE_SUFFIX "/*" +/** + * It is not possible to send NULL over D-Bus. We can only test if it + * is empty or not. + */ +#define SBUS_IS_STRING_EMPTY(str) ((str) == NULL || (str)[0] == '\0') +#define SBUS_SET_STRING(str) (SBUS_IS_STRING_EMPTY(str) ? NULL : (str)) typedef int (*sbus_msg_handler_fn)(struct sbus_request *dbus_req,