Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6967935e authored by Greg Hackmann's avatar Greg Hackmann Committed by Colin Cross
Browse files

libcutils: reimplement property_list() using __system_property_foreach()



Signed-off-by: default avatarGreg Hackmann <ghackmann@google.com>

(cherry picked from commit e7bb159d)

Change-Id: I0f66144eb8a4a48e04e4fcd125ad37f19ad94b8e
parent d92e35eb
Loading
Loading
Loading
Loading
+19 −10
Original line number Diff line number Diff line
@@ -52,19 +52,28 @@ int property_get(const char *key, char *value, const char *default_value)
    return len;
}

int property_list(void (*propfn)(const char *key, const char *value, void *cookie), 
                  void *cookie)
struct property_list_callback_data
{
    void (*propfn)(const char *key, const char *value, void *cookie);
    void *cookie;
};

static void property_list_callback(const prop_info *pi, void *cookie)
{
    char name[PROP_NAME_MAX];
    char value[PROP_VALUE_MAX];
    const prop_info *pi;
    unsigned n;
    struct property_list_callback_data *data = cookie;

    for(n = 0; (pi = __system_property_find_nth(n)); n++) {
    __system_property_read(pi, name, value);
        propfn(name, value, cookie);
    data->propfn(name, value, data->cookie);
}
    return 0;

int property_list(
        void (*propfn)(const char *key, const char *value, void *cookie),
        void *cookie)
{
    struct property_list_callback_data data = { propfn, cookie };
    return __system_property_foreach(property_list_callback, &data);
}

#elif defined(HAVE_SYSTEM_PROPERTY_SERVER)