D-Bus: Make the CurrentAuthMode property getter more robust
[mech_eap.git] / wpa_supplicant / dbus / dbus_new_helpers.c
index 628c054..0115e32 100644 (file)
@@ -15,6 +15,7 @@
 #include "dbus_common_i.h"
 #include "dbus_new.h"
 #include "dbus_new_helpers.h"
+#include "dbus_new_handlers.h"
 #include "dbus_dict_helpers.h"
 
 
@@ -45,8 +46,13 @@ static dbus_bool_t fill_dict_with_properties(
                        goto error;
 
                /* An error getting a property fails the request entirely */
-               if (!dsc->getter(&entry_iter, error, user_data))
+               if (!dsc->getter(dsc, &entry_iter, error, user_data)) {
+                       wpa_printf(MSG_INFO,
+                                  "dbus: %s dbus_interface=%s dbus_property=%s getter failed",
+                                  __func__, dsc->dbus_interface,
+                                  dsc->dbus_property);
                        return FALSE;
+               }
 
                if (!dbus_message_iter_close_container(dict_iter, &entry_iter))
                        goto error;
@@ -80,19 +86,13 @@ static DBusMessage * get_all_properties(DBusMessage *message, char *interface,
        DBusError error;
 
        reply = dbus_message_new_method_return(message);
-       if (reply == NULL) {
-               wpa_printf(MSG_ERROR, "%s: out of memory creating dbus reply",
-                          __func__);
-               return NULL;
-       }
+       if (reply == NULL)
+               return wpas_dbus_error_no_memory(message);
 
        dbus_message_iter_init_append(reply, &iter);
        if (!wpa_dbus_dict_open_write(&iter, &dict_iter)) {
-               wpa_printf(MSG_ERROR, "%s: out of memory creating reply",
-                          __func__);
                dbus_message_unref(reply);
-               return dbus_message_new_error(message, DBUS_ERROR_NO_MEMORY,
-                                             "out of memory");
+               return wpas_dbus_error_no_memory(message);
        }
 
        dbus_error_init(&error);
@@ -108,8 +108,7 @@ static DBusMessage * get_all_properties(DBusMessage *message, char *interface,
 
        if (!wpa_dbus_dict_close_write(&iter, &dict_iter)) {
                dbus_message_unref(reply);
-               return dbus_message_new_error(message, DBUS_ERROR_NO_MEMORY,
-                                             "out of memory");
+               return wpas_dbus_error_no_memory(message);
        }
 
        return reply;
@@ -177,7 +176,7 @@ static DBusMessage * properties_get(DBusMessage *message,
        dbus_message_iter_init_append(reply, &iter);
 
        dbus_error_init(&error);
-       if (dsc->getter(&iter, &error, user_data) == FALSE) {
+       if (dsc->getter(dsc, &iter, &error, user_data) == FALSE) {
                dbus_message_unref(reply);
                reply = wpas_dbus_reply_new_from_error(
                        message, &error, DBUS_ERROR_FAILED,
@@ -214,7 +213,7 @@ static DBusMessage * properties_set(DBusMessage *message,
 
        /* Iter will now point to the property's new value */
        dbus_error_init(&error);
-       if (dsc->setter(&iter, &error, user_data) == TRUE) {
+       if (dsc->setter(dsc, &iter, &error, user_data) == TRUE) {
                /* Success */
                reply = dbus_message_new_method_return(message);
        } else {
@@ -628,7 +627,8 @@ static dbus_bool_t put_changed_properties(
                        return FALSE;
 
                dbus_error_init(&error);
-               if (!dsc->getter(&entry_iter, &error, obj_dsc->user_data)) {
+               if (!dsc->getter(dsc, &entry_iter, &error, obj_dsc->user_data))
+               {
                        if (dbus_error_is_set(&error)) {
                                wpa_printf(MSG_ERROR,
                                           "dbus: %s: Cannot get new value of property %s: (%s) %s",