diff options
Diffstat (limited to 'src/sbus/sssd_dbus_interface.c')
-rw-r--r-- | src/sbus/sssd_dbus_interface.c | 20 |
1 files changed, 20 insertions, 0 deletions
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, |