Author: dcbw
Date: Wed Jan  9 18:41:42 2008
New Revision: 3226
URL: http://svn.gnome.org/viewvc/NetworkManager?rev=3226&view=rev

Log:
2008-01-09  Dan Williams  <[EMAIL PROTECTED]>

        * src/NetworkManager.c
                - (nm_killswitch_getpower_reply_cb): handle different HAL 
versions
                        better by matching the variable type with the D-Bus 
argument type



Modified:
   branches/NETWORKMANAGER_0_6_0_RELEASE/ChangeLog
   branches/NETWORKMANAGER_0_6_0_RELEASE/src/NetworkManager.c

Modified: branches/NETWORKMANAGER_0_6_0_RELEASE/src/NetworkManager.c
==============================================================================
--- branches/NETWORKMANAGER_0_6_0_RELEASE/src/NetworkManager.c  (original)
+++ branches/NETWORKMANAGER_0_6_0_RELEASE/src/NetworkManager.c  Wed Jan  9 
18:41:42 2008
@@ -341,7 +341,8 @@
 {
        DBusError               err;
        DBusMessage *   reply = NULL;
-       gint32                  status;
+       gint32                  int_status = 1;
+       guint32                 uint_status = 1;
 
        g_return_if_fail (pcall != NULL);
        g_return_if_fail (data != NULL);
@@ -364,8 +365,11 @@
                goto out;
        }
 
-       if (!dbus_message_get_args (reply, &err, DBUS_TYPE_UINT32, &status, 
DBUS_TYPE_INVALID)) {
-               if (!dbus_message_get_args (reply, &err, DBUS_TYPE_INT32, 
&status, DBUS_TYPE_INVALID)) {
+       /* Handle both HAL <= 0.5.9 which uses UINT and HAL >= 0.5.10 which
+        * uses INT.
+        */
+       if (!dbus_message_get_args (reply, &err, DBUS_TYPE_UINT32, 
&uint_status, DBUS_TYPE_INVALID)) {
+               if (!dbus_message_get_args (reply, &err, DBUS_TYPE_INT32, 
&int_status, DBUS_TYPE_INVALID)) {
                        if (!ks_err_message || strcmp (ks_err_message, 
err.message)) {
                                nm_info ("Error getting killswitch power 
arguments: %s - %s", err.name, err.message);
                                g_free (ks_err_message);
@@ -373,12 +377,15 @@
                        }
                        dbus_error_free (&err);
                        goto out;
+               } else {
+                       if (int_status == 0)
+                               data->tmp_hw_rf_enabled = FALSE;
                }
+       } else {
+               if (uint_status == 0)
+                       data->tmp_hw_rf_enabled = FALSE;
        }
 
-       if (status == 0)
-               data->tmp_hw_rf_enabled = FALSE;
-
 out:
        if (reply)
                dbus_message_unref (reply);
_______________________________________________
SVN-commits-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/svn-commits-list

Reply via email to