dbus: Refactor callback helper struct
authorDaniel Wagner <daniel.wagner@bmw-carit.de>
Thu, 18 Apr 2013 07:07:26 +0000 (09:07 +0200)
committerPatrik Flykt <patrik.flykt@linux.intel.com>
Thu, 18 Apr 2013 11:17:09 +0000 (14:17 +0300)
The helper struct will be used by a new dbus function which uses
a different callback signature. Therefore, we need to use a
void pointer for storing the callback.

src/dbus.c

index 70af617..590bafa 100644 (file)
@@ -406,8 +406,8 @@ dbus_bool_t __connman_dbus_append_objpath_dict_array(DBusMessage *msg,
        return TRUE;
 }
 
-struct selinux_data {
-       connman_dbus_get_context_cb_t func;
+struct callback_data {
+       void *cb;
        void *user_data;
 };
 
@@ -448,7 +448,8 @@ static unsigned char *parse_context(DBusMessage *msg)
 
 static void selinux_get_context_reply(DBusPendingCall *call, void *user_data)
 {
-       struct selinux_data *data = user_data;
+       struct callback_data *data = user_data;
+       connman_dbus_get_context_cb_t cb = data->cb;
        DBusMessage *reply;
        unsigned char *context = NULL;
        int err = 0;
@@ -470,7 +471,7 @@ static void selinux_get_context_reply(DBusPendingCall *call, void *user_data)
        context = parse_context(reply);
 
 done:
-       (*data->func)(context, data->user_data, err);
+       (*cb)(context, data->user_data, err);
 
        g_free(context);
 
@@ -484,7 +485,7 @@ int connman_dbus_get_selinux_context(DBusConnection *connection,
                                connman_dbus_get_context_cb_t func,
                                void *user_data)
 {
-       struct selinux_data *data;
+       struct callback_data *data;
        DBusPendingCall *call;
        DBusMessage *msg = NULL;
        int err;
@@ -492,7 +493,7 @@ int connman_dbus_get_selinux_context(DBusConnection *connection,
        if (func == NULL)
                return -EINVAL;
 
-       data = g_try_new0(struct selinux_data, 1);
+       data = g_try_new0(struct callback_data, 1);
        if (data == NULL) {
                DBG("Can't allocate data structure");
                return -ENOMEM;
@@ -523,7 +524,7 @@ int connman_dbus_get_selinux_context(DBusConnection *connection,
                goto err;
        }
 
-       data->func = func;
+       data->cb = func;
        data->user_data = user_data;
 
        dbus_pending_call_set_notify(call, selinux_get_context_reply,