diff options
author | Pavel Březina <pbrezina@redhat.com> | 2014-12-16 15:25:38 +0100 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2015-01-23 21:45:46 +0100 |
commit | ca6dd8e7ac91c7f8e3b4d55206d4f39791ab7149 (patch) | |
tree | c298cebafb9554c1359550bac842f7a5c4036409 /src/sbus | |
parent | 3a8f6b575f4019f21c9425a26f1b346c08a197ae (diff) | |
download | sssd-ca6dd8e7ac91c7f8e3b4d55206d4f39791ab7149.tar.gz sssd-ca6dd8e7ac91c7f8e3b4d55206d4f39791ab7149.tar.xz sssd-ca6dd8e7ac91c7f8e3b4d55206d4f39791ab7149.zip |
sbus: add sbus_opath_get_object_name()
This function assumes that the last component of the object path
is an object name. It will return the part unescaped.
Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
Diffstat (limited to 'src/sbus')
-rw-r--r-- | src/sbus/sssd_dbus.h | 5 | ||||
-rw-r--r-- | src/sbus/sssd_dbus_interface.c | 20 |
2 files changed, 25 insertions, 0 deletions
diff --git a/src/sbus/sssd_dbus.h b/src/sbus/sssd_dbus.h index 355d617fe..0f7562e6b 100644 --- a/src/sbus/sssd_dbus.h +++ b/src/sbus/sssd_dbus.h @@ -193,6 +193,11 @@ const char * sbus_opath_strip_prefix(const char *object_path, const char *prefix); +char * +sbus_opath_get_object_name(TALLOC_CTX *mem_ctx, + const char *object_path, + const char *base_path); + bool sbus_conn_disconnecting(struct sbus_connection *conn); /* max_retries < 0: retry forever diff --git a/src/sbus/sssd_dbus_interface.c b/src/sbus/sssd_dbus_interface.c index 09e160227..d4ddce0ac 100644 --- a/src/sbus/sssd_dbus_interface.c +++ b/src/sbus/sssd_dbus_interface.c @@ -365,6 +365,26 @@ sbus_opath_strip_prefix(const char *object_path, return NULL; } +char * +sbus_opath_get_object_name(TALLOC_CTX *mem_ctx, + const char *object_path, + const char *base_path) +{ + const char *name; + + name = sbus_opath_strip_prefix(object_path, base_path); + if (name == NULL || name[0] == '\0') { + return NULL; + } + + /* if base_path did not end with / */ + if (name[0] == '/') { + name = name + 1; + } + + return sbus_opath_unescape_part(mem_ctx, name); +} + static void sbus_opath_hash_delete_cb(hash_entry_t *item, hash_destroy_enum deltype, |