summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPavel Březina <pbrezina@redhat.com>2016-06-27 11:56:52 +0200
committerJakub Hrozek <jhrozek@redhat.com>2016-06-27 16:34:58 +0200
commitd6f1b16baf8106d709e3fac585a12789dcb6bd29 (patch)
tree28801fa7204da45112d57f60f524adc9b95ded4e /src
parent725c291ccfa46b08d2713133c227ac8d7203eb2f (diff)
downloadsssd-d6f1b16baf8106d709e3fac585a12789dcb6bd29.tar.gz
sssd-d6f1b16baf8106d709e3fac585a12789dcb6bd29.tar.xz
sssd-d6f1b16baf8106d709e3fac585a12789dcb6bd29.zip
SBUS: Add string helper macros
Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
Diffstat (limited to 'src')
-rw-r--r--src/providers/data_provider/dp_target_hostid.c2
-rw-r--r--src/providers/data_provider/dp_target_subdomains.c2
-rw-r--r--src/sbus/sssd_dbus.h6
3 files changed, 8 insertions, 2 deletions
diff --git a/src/providers/data_provider/dp_target_hostid.c b/src/providers/data_provider/dp_target_hostid.c
index a47601f0b..93f9fdac5 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 85e37f063..e29a9b942 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' ? "<ALL>" : domain_hint;
+ key = SBUS_IS_STRING_EMPTY(domain_hint) ? "<ALL>" : 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 170b16bf9..fe1c4a7e1 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,