diff options
author | Jiřà Klimeš <jklimes@redhat.com> | 2011-02-15 17:34:11 +0100 |
---|---|---|
committer | Jiřà Klimeš <jklimes@redhat.com> | 2011-02-15 17:34:11 +0100 |
commit | d6905a8d66eb09cec6136b25b208e69fb9fe4f54 (patch) | |
tree | 3ba62ae3bb282946b671d2bafdab36149eb0e17d /libnm-glib | |
parent | ec115ed4421fb9101bf923eb76cbeb3d2ebf5021 (diff) | |
download | NetworkManager-d6905a8d66eb09cec6136b25b208e69fb9fe4f54.tar.gz |
libnm-glib: add GError parameter to _nm_object_get_... functions
It allows us to get the error back and have control over printing
the error.
Diffstat (limited to 'libnm-glib')
-rw-r--r-- | libnm-glib/Makefile.am | 2 | ||||
-rw-r--r-- | libnm-glib/nm-access-point.c | 29 | ||||
-rw-r--r-- | libnm-glib/nm-active-connection.c | 20 | ||||
-rw-r--r-- | libnm-glib/nm-client.c | 32 | ||||
-rw-r--r-- | libnm-glib/nm-device-bt.c | 11 | ||||
-rw-r--r-- | libnm-glib/nm-device-ethernet.c | 14 | ||||
-rw-r--r-- | libnm-glib/nm-device-wifi.c | 20 | ||||
-rw-r--r-- | libnm-glib/nm-device-wimax.c | 25 | ||||
-rw-r--r-- | libnm-glib/nm-device.c | 34 | ||||
-rw-r--r-- | libnm-glib/nm-dhcp4-config.c | 5 | ||||
-rw-r--r-- | libnm-glib/nm-dhcp6-config.c | 5 | ||||
-rw-r--r-- | libnm-glib/nm-ip4-config.c | 17 | ||||
-rw-r--r-- | libnm-glib/nm-ip6-config.c | 14 | ||||
-rw-r--r-- | libnm-glib/nm-object-private.h | 55 | ||||
-rw-r--r-- | libnm-glib/nm-object.c | 78 | ||||
-rw-r--r-- | libnm-glib/nm-vpn-connection.c | 8 | ||||
-rw-r--r-- | libnm-glib/nm-wimax-nsp.c | 13 |
17 files changed, 235 insertions, 147 deletions
diff --git a/libnm-glib/Makefile.am b/libnm-glib/Makefile.am index 4878e81315..185e405aa4 100644 --- a/libnm-glib/Makefile.am +++ b/libnm-glib/Makefile.am @@ -140,7 +140,7 @@ libnm_glib_la_LIBADD = \ $(GUDEV_LIBS) libnm_glib_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libnm-glib.ver \ - -version-info "3:0:0" + -version-info "3:1:0" noinst_PROGRAMS = libnm-glib-test diff --git a/libnm-glib/nm-access-point.c b/libnm-glib/nm-access-point.c index 777e41de6b..d08bd00daf 100644 --- a/libnm-glib/nm-access-point.c +++ b/libnm-glib/nm-access-point.c @@ -18,7 +18,7 @@ * Boston, MA 02110-1301 USA. * * Copyright (C) 2007 - 2008 Novell, Inc. - * Copyright (C) 2007 - 2008 Red Hat, Inc. + * Copyright (C) 2007 - 2011 Red Hat, Inc. */ #include <string.h> @@ -114,7 +114,8 @@ nm_access_point_get_flags (NMAccessPoint *ap) if (!priv->flags) { priv->flags = _nm_object_get_uint_property (NM_OBJECT (ap), NM_DBUS_INTERFACE_ACCESS_POINT, - DBUS_PROP_FLAGS); + DBUS_PROP_FLAGS, + NULL); } return priv->flags; @@ -139,7 +140,8 @@ nm_access_point_get_wpa_flags (NMAccessPoint *ap) if (!priv->wpa_flags) { priv->wpa_flags = _nm_object_get_uint_property (NM_OBJECT (ap), NM_DBUS_INTERFACE_ACCESS_POINT, - DBUS_PROP_WPA_FLAGS); + DBUS_PROP_WPA_FLAGS, + NULL); } return priv->wpa_flags; @@ -164,7 +166,8 @@ nm_access_point_get_rsn_flags (NMAccessPoint *ap) if (!priv->rsn_flags) { priv->rsn_flags = _nm_object_get_uint_property (NM_OBJECT (ap), NM_DBUS_INTERFACE_ACCESS_POINT, - DBUS_PROP_RSN_FLAGS); + DBUS_PROP_RSN_FLAGS, + NULL); } return priv->rsn_flags; @@ -190,7 +193,8 @@ nm_access_point_get_ssid (NMAccessPoint *ap) if (!priv->ssid) { priv->ssid = _nm_object_get_byte_array_property (NM_OBJECT (ap), NM_DBUS_INTERFACE_ACCESS_POINT, - DBUS_PROP_SSID); + DBUS_PROP_SSID, + NULL); } return priv->ssid; @@ -215,7 +219,8 @@ nm_access_point_get_frequency (NMAccessPoint *ap) if (!priv->frequency) { priv->frequency = _nm_object_get_uint_property (NM_OBJECT (ap), NM_DBUS_INTERFACE_ACCESS_POINT, - DBUS_PROP_FREQUENCY); + DBUS_PROP_FREQUENCY, + NULL); } return priv->frequency; @@ -241,7 +246,8 @@ nm_access_point_get_hw_address (NMAccessPoint *ap) if (!priv->hw_address) { priv->hw_address = _nm_object_get_string_property (NM_OBJECT (ap), NM_DBUS_INTERFACE_ACCESS_POINT, - DBUS_PROP_HW_ADDRESS); + DBUS_PROP_HW_ADDRESS, + NULL); } return priv->hw_address; @@ -266,7 +272,8 @@ nm_access_point_get_mode (NMAccessPoint *ap) if (!priv->mode) { priv->mode = _nm_object_get_uint_property (NM_OBJECT (ap), NM_DBUS_INTERFACE_ACCESS_POINT, - DBUS_PROP_MODE); + DBUS_PROP_MODE, + NULL); } return priv->mode; @@ -291,7 +298,8 @@ nm_access_point_get_max_bitrate (NMAccessPoint *ap) if (!priv->max_bitrate) { priv->max_bitrate = _nm_object_get_uint_property (NM_OBJECT (ap), NM_DBUS_INTERFACE_ACCESS_POINT, - DBUS_PROP_MAX_BITRATE); + DBUS_PROP_MAX_BITRATE, + NULL); } return priv->max_bitrate; @@ -316,7 +324,8 @@ nm_access_point_get_strength (NMAccessPoint *ap) if (!priv->strength) { priv->strength = _nm_object_get_byte_property (NM_OBJECT (ap), NM_DBUS_INTERFACE_ACCESS_POINT, - DBUS_PROP_STRENGTH); + DBUS_PROP_STRENGTH, + NULL); } return priv->strength; diff --git a/libnm-glib/nm-active-connection.c b/libnm-glib/nm-active-connection.c index 46ca12f5c0..86936ec96a 100644 --- a/libnm-glib/nm-active-connection.c +++ b/libnm-glib/nm-active-connection.c @@ -17,7 +17,7 @@ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA. * - * Copyright (C) 2007 - 2010 Red Hat, Inc. + * Copyright (C) 2007 - 2011 Red Hat, Inc. * Copyright (C) 2008 Novell, Inc. */ @@ -111,7 +111,8 @@ nm_active_connection_get_connection (NMActiveConnection *connection) if (!priv->connection) { priv->connection = _nm_object_get_string_property (NM_OBJECT (connection), NM_DBUS_INTERFACE_ACTIVE_CONNECTION, - DBUS_PROP_CONNECTION); + DBUS_PROP_CONNECTION, + NULL); } return priv->connection; @@ -137,7 +138,8 @@ nm_active_connection_get_specific_object (NMActiveConnection *connection) if (!priv->specific_object) { priv->specific_object = _nm_object_get_string_property (NM_OBJECT (connection), NM_DBUS_INTERFACE_ACTIVE_CONNECTION, - DBUS_PROP_SPECIFIC_OBJECT); + DBUS_PROP_SPECIFIC_OBJECT, + NULL); } return priv->specific_object; @@ -167,7 +169,8 @@ nm_active_connection_get_devices (NMActiveConnection *connection) if (!_nm_object_get_property (NM_OBJECT (connection), NM_DBUS_INTERFACE_ACTIVE_CONNECTION, DBUS_PROP_DEVICES, - &value)) { + &value, + NULL)) { return NULL; } @@ -196,7 +199,8 @@ nm_active_connection_get_state (NMActiveConnection *connection) if (!priv->state) { priv->state = _nm_object_get_uint_property (NM_OBJECT (connection), NM_DBUS_INTERFACE_ACTIVE_CONNECTION, - DBUS_PROP_STATE); + DBUS_PROP_STATE, + NULL); } return priv->state; @@ -222,7 +226,8 @@ nm_active_connection_get_default (NMActiveConnection *connection) if (!priv->is_default) { priv->is_default = _nm_object_get_boolean_property (NM_OBJECT (connection), NM_DBUS_INTERFACE_ACTIVE_CONNECTION, - DBUS_PROP_DEFAULT); + DBUS_PROP_DEFAULT, + NULL); } return priv->is_default; @@ -248,7 +253,8 @@ nm_active_connection_get_default6 (NMActiveConnection *connection) if (!priv->is_default6) { priv->is_default6 = _nm_object_get_boolean_property (NM_OBJECT (connection), NM_DBUS_INTERFACE_ACTIVE_CONNECTION, - DBUS_PROP_DEFAULT6); + DBUS_PROP_DEFAULT6, + NULL); } return priv->is_default6; diff --git a/libnm-glib/nm-client.c b/libnm-glib/nm-client.c index 687b15b184..b37e710e2f 100644 --- a/libnm-glib/nm-client.c +++ b/libnm-glib/nm-client.c @@ -157,8 +157,9 @@ update_wireless_status (NMClient *client, gboolean notify) gboolean poke = FALSE; val = _nm_object_get_boolean_property (NM_OBJECT (client), - NM_DBUS_INTERFACE, - "WirelessHardwareEnabled"); + NM_DBUS_INTERFACE, + "WirelessHardwareEnabled", + NULL); if (val != priv->wireless_hw_enabled) { priv->wireless_hw_enabled = val; poke = TRUE; @@ -170,8 +171,9 @@ update_wireless_status (NMClient *client, gboolean notify) val = FALSE; else val = _nm_object_get_boolean_property (NM_OBJECT (client), - NM_DBUS_INTERFACE, - "WirelessEnabled"); + NM_DBUS_INTERFACE, + "WirelessEnabled", + NULL); if (val != priv->wireless_enabled) { priv->wireless_enabled = val; poke = TRUE; @@ -197,7 +199,8 @@ update_wwan_status (NMClient *client, gboolean notify) val = _nm_object_get_boolean_property (NM_OBJECT (client), NM_DBUS_INTERFACE, - "WwanHardwareEnabled"); + "WwanHardwareEnabled", + NULL); if (val != priv->wwan_hw_enabled) { priv->wwan_hw_enabled = val; if (notify) @@ -209,7 +212,8 @@ update_wwan_status (NMClient *client, gboolean notify) else { val = _nm_object_get_boolean_property (NM_OBJECT (client), NM_DBUS_INTERFACE, - "WwanEnabled"); + "WwanEnabled", + NULL); } if (val != priv->wwan_enabled) { @@ -228,7 +232,8 @@ update_wimax_status (NMClient *client, gboolean notify) val = _nm_object_get_boolean_property (NM_OBJECT (client), NM_DBUS_INTERFACE, - "WimaxHardwareEnabled"); + "WimaxHardwareEnabled", + NULL); if (val != priv->wimax_hw_enabled) { priv->wimax_hw_enabled = val; if (notify) @@ -240,7 +245,8 @@ update_wimax_status (NMClient *client, gboolean notify) else { val = _nm_object_get_boolean_property (NM_OBJECT (client), NM_DBUS_INTERFACE, - "WimaxEnabled"); + "WimaxEnabled", + NULL); } if (val != priv->wimax_enabled) { @@ -1275,11 +1281,12 @@ nm_client_get_active_connections (NMClient *client) if (!_nm_object_get_property (NM_OBJECT (client), "org.freedesktop.NetworkManager", "ActiveConnections", - &value)) { + &value, + NULL)) { return NULL; } - demarshal_active_connections (NM_OBJECT (client), NULL, &value, &priv->active_connections); + demarshal_active_connections (NM_OBJECT (client), NULL, &value, &priv->active_connections); g_value_unset (&value); return handle_ptr_array_return (priv->active_connections); @@ -1471,7 +1478,7 @@ nm_client_get_state (NMClient *client) return NM_STATE_UNKNOWN; if (priv->state == NM_STATE_UNKNOWN) - priv->state = _nm_object_get_uint_property (NM_OBJECT (client), NM_DBUS_INTERFACE, "State"); + priv->state = _nm_object_get_uint_property (NM_OBJECT (client), NM_DBUS_INTERFACE, "State", NULL); return priv->state; } @@ -1497,7 +1504,8 @@ nm_client_networking_get_enabled (NMClient *client) if (!priv->networking_enabled) { priv->networking_enabled = _nm_object_get_boolean_property (NM_OBJECT (client), NM_DBUS_INTERFACE, - "NetworkingEnabled"); + "NetworkingEnabled", + NULL); priv->have_networking_enabled = TRUE; } } diff --git a/libnm-glib/nm-device-bt.c b/libnm-glib/nm-device-bt.c index 0451f2b0f6..b85d4ec087 100644 --- a/libnm-glib/nm-device-bt.c +++ b/libnm-glib/nm-device-bt.c @@ -18,7 +18,7 @@ * Boston, MA 02110-1301 USA. * * Copyright (C) 2007 - 2008 Novell, Inc. - * Copyright (C) 2007 - 2009 Red Hat, Inc. + * Copyright (C) 2007 - 2011 Red Hat, Inc. */ #include "nm-device-bt.h" @@ -96,7 +96,8 @@ nm_device_bt_get_hw_address (NMDeviceBt *device) if (!priv->hw_address) { priv->hw_address = _nm_object_get_string_property (NM_OBJECT (device), NM_DBUS_INTERFACE_DEVICE_BLUETOOTH, - DBUS_PROP_HW_ADDRESS); + DBUS_PROP_HW_ADDRESS, + NULL); } return priv->hw_address; @@ -121,7 +122,8 @@ nm_device_bt_get_name (NMDeviceBt *device) if (!priv->name) { priv->name = _nm_object_get_string_property (NM_OBJECT (device), NM_DBUS_INTERFACE_DEVICE_BLUETOOTH, - DBUS_PROP_NAME); + DBUS_PROP_NAME, + NULL); } return priv->name; @@ -146,7 +148,8 @@ nm_device_bt_get_capabilities (NMDeviceBt *device) if (!priv->bt_capabilities_valid) { priv->bt_capabilities = _nm_object_get_uint_property (NM_OBJECT (device), NM_DBUS_INTERFACE_DEVICE_BLUETOOTH, - DBUS_PROP_BT_CAPABILITIES); + DBUS_PROP_BT_CAPABILITIES, + NULL); priv->bt_capabilities_valid = TRUE; } diff --git a/libnm-glib/nm-device-ethernet.c b/libnm-glib/nm-device-ethernet.c index 44b2742765..dfe606a478 100644 --- a/libnm-glib/nm-device-ethernet.c +++ b/libnm-glib/nm-device-ethernet.c @@ -18,7 +18,7 @@ * Boston, MA 02110-1301 USA. * * Copyright (C) 2007 - 2008 Novell, Inc. - * Copyright (C) 2007 - 2010 Red Hat, Inc. + * Copyright (C) 2007 - 2011 Red Hat, Inc. */ #include "nm-device-ethernet.h" @@ -99,7 +99,8 @@ nm_device_ethernet_get_hw_address (NMDeviceEthernet *device) if (!priv->hw_address) { priv->hw_address = _nm_object_get_string_property (NM_OBJECT (device), NM_DBUS_INTERFACE_DEVICE_WIRED, - DBUS_PROP_HW_ADDRESS); + DBUS_PROP_HW_ADDRESS, + NULL); } return priv->hw_address; @@ -125,7 +126,8 @@ nm_device_ethernet_get_permanent_hw_address (NMDeviceEthernet *device) if (!priv->perm_hw_address) { priv->perm_hw_address = _nm_object_get_string_property (NM_OBJECT (device), NM_DBUS_INTERFACE_DEVICE_WIRED, - DBUS_PROP_PERM_HW_ADDRESS); + DBUS_PROP_PERM_HW_ADDRESS, + NULL); } return priv->perm_hw_address; @@ -150,7 +152,8 @@ nm_device_ethernet_get_speed (NMDeviceEthernet *device) if (!priv->speed) { priv->speed = _nm_object_get_uint_property (NM_OBJECT (device), NM_DBUS_INTERFACE_DEVICE_WIRED, - DBUS_PROP_SPEED); + DBUS_PROP_SPEED, + NULL); } return priv->speed; @@ -175,7 +178,8 @@ nm_device_ethernet_get_carrier (NMDeviceEthernet *device) if (!priv->carrier_valid) { priv->carrier = _nm_object_get_boolean_property (NM_OBJECT (device), NM_DBUS_INTERFACE_DEVICE_WIRED, - DBUS_PROP_CARRIER); + DBUS_PROP_CARRIER, + NULL); priv->carrier_valid = TRUE; } diff --git a/libnm-glib/nm-device-wifi.c b/libnm-glib/nm-device-wifi.c index be5b987693..ebc504bc73 100644 --- a/libnm-glib/nm-device-wifi.c +++ b/libnm-glib/nm-device-wifi.c @@ -18,7 +18,7 @@ * Boston, MA 02110-1301 USA. * * Copyright (C) 2007 - 2008 Novell, Inc. - * Copyright (C) 2007 - 2010 Red Hat, Inc. + * Copyright (C) 2007 - 2011 Red Hat, Inc. */ #include <string.h> @@ -125,7 +125,8 @@ nm_device_wifi_get_hw_address (NMDeviceWifi *device) if (!priv->hw_address) { priv->hw_address = _nm_object_get_string_property (NM_OBJECT (device), NM_DBUS_INTERFACE_DEVICE_WIRELESS, - DBUS_PROP_HW_ADDRESS); + DBUS_PROP_HW_ADDRESS, + NULL); } return priv->hw_address; @@ -151,7 +152,8 @@ nm_device_wifi_get_permanent_hw_address (NMDeviceWifi *device) if (!priv->perm_hw_address) { priv->perm_hw_address = _nm_object_get_string_property (NM_OBJECT (device), NM_DBUS_INTERFACE_DEVICE_WIRELESS, - DBUS_PROP_PERM_HW_ADDRESS); + DBUS_PROP_PERM_HW_ADDRESS, + NULL); } return priv->perm_hw_address; @@ -176,7 +178,8 @@ nm_device_wifi_get_mode (NMDeviceWifi *device) if (!priv->mode) { priv->mode = _nm_object_get_uint_property (NM_OBJECT (device), NM_DBUS_INTERFACE_DEVICE_WIRELESS, - DBUS_PROP_MODE); + DBUS_PROP_MODE, + NULL); } return priv->mode; @@ -215,7 +218,8 @@ nm_device_wifi_get_bitrate (NMDeviceWifi *device) if (!priv->rate) { priv->rate = _nm_object_get_uint_property (NM_OBJECT (device), NM_DBUS_INTERFACE_DEVICE_WIRELESS, - DBUS_PROP_BITRATE); + DBUS_PROP_BITRATE, + NULL); } return priv->rate; @@ -240,7 +244,8 @@ nm_device_wifi_get_capabilities (NMDeviceWifi *device) if (!priv->wireless_caps) { priv->wireless_caps = _nm_object_get_uint_property (NM_OBJECT (device), NM_DBUS_INTERFACE_DEVICE_WIRELESS, - DBUS_PROP_WIRELESS_CAPABILITIES); + DBUS_PROP_WIRELESS_CAPABILITIES, + NULL); } return priv->wireless_caps; @@ -285,7 +290,8 @@ nm_device_wifi_get_active_access_point (NMDeviceWifi *device) path = _nm_object_get_object_path_property (NM_OBJECT (device), NM_DBUS_INTERFACE_DEVICE_WIRELESS, - DBUS_PROP_ACTIVE_ACCESS_POINT); + DBUS_PROP_ACTIVE_ACCESS_POINT, + NULL); if (path) { g_value_init (&value, DBUS_TYPE_G_OBJECT_PATH); g_value_take_boxed (&value, path); diff --git a/libnm-glib/nm-device-wimax.c b/libnm-glib/nm-device-wimax.c index 4e7ebe8d84..fd6aff714c 100644 --- a/libnm-glib/nm-device-wimax.c +++ b/libnm-glib/nm-device-wimax.c @@ -125,8 +125,9 @@ nm_device_wimax_get_hw_address (NMDeviceWimax *wimax) priv = NM_DEVICE_WIMAX_GET_PRIVATE (wimax); if (!priv->hw_address) { priv->hw_address = _nm_object_get_string_property (NM_OBJECT (wimax), - NM_DBUS_INTERFACE_DEVICE_WIMAX, - DBUS_PROP_HW_ADDRESS); + NM_DBUS_INTERFACE_DEVICE_WIMAX, + DBUS_PROP_HW_ADDRESS, + NULL); } return priv->hw_address; @@ -170,8 +171,9 @@ nm_device_wimax_get_active_nsp (NMDeviceWimax *wimax) return NULL; path = _nm_object_get_object_path_property (NM_OBJECT (wimax), - NM_DBUS_INTERFACE_DEVICE_WIMAX, - DBUS_PROP_ACTIVE_NSP); + NM_DBUS_INTERFACE_DEVICE_WIMAX, + DBUS_PROP_ACTIVE_NSP, + NULL); if (path) { g_value_init (&value, DBUS_TYPE_G_OBJECT_PATH); g_value_take_boxed (&value, path); @@ -359,7 +361,8 @@ nm_device_wimax_get_center_frequency (NMDeviceWimax *self) if (!priv->center_freq) { priv->center_freq = _nm_object_get_uint_property (NM_OBJECT (self), NM_DBUS_INTERFACE_DEVICE_WIMAX, - DBUS_PROP_CENTER_FREQUENCY); + DBUS_PROP_CENTER_FREQUENCY, + NULL); } return priv->center_freq; } @@ -386,7 +389,8 @@ nm_device_wimax_get_rssi (NMDeviceWimax *self) if (!priv->rssi) { priv->rssi = _nm_object_get_int_property (NM_OBJECT (self), NM_DBUS_INTERFACE_DEVICE_WIMAX, - DBUS_PROP_RSSI); + DBUS_PROP_RSSI, + NULL); } return priv->rssi; } @@ -412,7 +416,8 @@ nm_device_wimax_get_cinr (NMDeviceWimax *self) if (!priv->cinr) { priv->cinr = _nm_object_get_int_property (NM_OBJECT (self), NM_DBUS_INTERFACE_DEVICE_WIMAX, - DBUS_PROP_CINR); + DBUS_PROP_CINR, + NULL); } return priv->cinr; } @@ -438,7 +443,8 @@ nm_device_wimax_get_tx_power (NMDeviceWimax *self) if (!priv->tx_power) { priv->tx_power = _nm_object_get_int_property (NM_OBJECT (self), NM_DBUS_INTERFACE_DEVICE_WIMAX, - DBUS_PROP_TX_POWER); + DBUS_PROP_TX_POWER, + NULL); } return priv->tx_power; } @@ -462,7 +468,8 @@ nm_device_wimax_get_bsid (NMDeviceWimax *self) if (!priv->bsid) { priv->bsid = _nm_object_get_string_property (NM_OBJECT (self), NM_DBUS_INTERFACE_DEVICE_WIMAX, - DBUS_PROP_BSID); + DBUS_PROP_BSID, + NULL); } return priv->bsid; } diff --git a/libnm-glib/nm-device.c b/libnm-glib/nm-device.c index 6a39c77fdf..d1b34cfb2a 100644 --- a/libnm-glib/nm-device.c +++ b/libnm-glib/nm-device.c @@ -18,7 +18,7 @@ * Boston, MA 02110-1301 USA. * * Copyright (C) 2007 - 2008 Novell, Inc. - * Copyright (C) 2007 - 2010 Red Hat, Inc. + * Copyright (C) 2007 - 2011 Red Hat, Inc. */ #include <string.h> @@ -765,7 +765,8 @@ nm_device_get_iface (NMDevice *device) if (!priv->iface) { priv->iface = _nm_object_get_string_property (NM_OBJECT (device), NM_DBUS_INTERFACE_DEVICE, - "Interface"); + "Interface", + NULL); } return priv->iface; @@ -792,7 +793,8 @@ nm_device_get_ip_iface (NMDevice *device) if (!priv->ip_iface) { priv->ip_iface = _nm_object_get_string_property (NM_OBJECT (device), NM_DBUS_INTERFACE_DEVICE, - "IpInterface"); + "IpInterface", + NULL); } return priv->ip_iface; @@ -819,7 +821,8 @@ nm_device_get_udi (NMDevice *device) if (!priv->udi) { priv->udi = _nm_object_get_string_property (NM_OBJECT (device), NM_DBUS_INTERFACE_DEVICE, - "Udi"); + "Udi", + NULL); } return priv->udi; @@ -845,7 +848,8 @@ nm_device_get_driver (NMDevice *device) if (!priv->driver) { priv->driver = _nm_object_get_string_property (NM_OBJECT (device), NM_DBUS_INTERFACE_DEVICE, - "Driver"); + "Driver", + NULL); } return priv->driver; @@ -870,7 +874,8 @@ nm_device_get_capabilities (NMDevice *device) if (!priv->capabilities) { priv->capabilities = _nm_object_get_uint_property (NM_OBJECT (device), NM_DBUS_INTERFACE_DEVICE, - "Capabilities"); + "Capabilities", + NULL); } return priv->capabilities; @@ -895,7 +900,8 @@ nm_device_get_managed (NMDevice *device) if (!priv->managed) { priv->managed = _nm_object_get_boolean_property (NM_OBJECT (device), NM_DBUS_INTERFACE_DEVICE, - "Managed"); + "Managed", + NULL); } return priv->managed; @@ -922,7 +928,8 @@ nm_device_get_firmware_missing (NMDevice *device) if (!priv->firmware_missing) { priv->firmware_missing = _nm_object_get_boolean_property (NM_OBJECT (device), NM_DBUS_INTERFACE_DEVICE, - "FirmwareMissing"); + "FirmwareMissing", + NULL); } return priv->firmware_missing; @@ -951,7 +958,7 @@ nm_device_get_ip4_config (NMDevice *device) if (priv->null_ip4_config) return NULL; - path = _nm_object_get_object_path_property (NM_OBJECT (device), NM_DBUS_INTERFACE_DEVICE, "Ip4Config"); + path = _nm_object_get_object_path_property (NM_OBJECT (device), NM_DBUS_INTERFACE_DEVICE, "Ip4Config", NULL); if (path) { g_value_init (&value, DBUS_TYPE_G_OBJECT_PATH); g_value_take_boxed (&value, path); @@ -986,7 +993,7 @@ nm_device_get_dhcp4_config (NMDevice *device) if (priv->null_dhcp4_config) return NULL; - path = _nm_object_get_object_path_property (NM_OBJECT (device), NM_DBUS_INTERFACE_DEVICE, "Dhcp4Config"); + path = _nm_object_get_object_path_property (NM_OBJECT (device), NM_DBUS_INTERFACE_DEVICE, "Dhcp4Config", NULL); if (path) { g_value_init (&value, DBUS_TYPE_G_OBJECT_PATH); g_value_take_boxed (&value, path); @@ -1020,7 +1027,7 @@ nm_device_get_ip6_config (NMDevice *device) if (priv->null_ip6_config) return NULL; - path = _nm_object_get_object_path_property (NM_OBJECT (device), NM_DBUS_INTERFACE_DEVICE, "Ip6Config"); + path = _nm_object_get_object_path_property (NM_OBJECT (device), NM_DBUS_INTERFACE_DEVICE, "Ip6Config", NULL); if (path) { g_value_init (&value, DBUS_TYPE_G_OBJECT_PATH); g_value_take_boxed (&value, path); @@ -1055,7 +1062,7 @@ nm_device_get_dhcp6_config (NMDevice *device) if (priv->null_dhcp6_config) return NULL; - path = _nm_object_get_object_path_property (NM_OBJECT (device), NM_DBUS_INTERFACE_DEVICE, "Dhcp6Config"); + path = _nm_object_get_object_path_property (NM_OBJECT (device), NM_DBUS_INTERFACE_DEVICE, "Dhcp6Config", NULL); if (path) { g_value_init (&value, DBUS_TYPE_G_OBJECT_PATH); g_value_take_boxed (&value, path); @@ -1085,7 +1092,8 @@ nm_device_get_state (NMDevice *device) if (priv->state == NM_DEVICE_STATE_UNKNOWN) { priv->state = _nm_object_get_uint_property (NM_OBJECT (device), NM_DBUS_INTERFACE_DEVICE, - "State"); + "State", + NULL); } return priv->state; diff --git a/libnm-glib/nm-dhcp4-config.c b/libnm-glib/nm-dhcp4-config.c index 45d48345c0..d17578ab31 100644 --- a/libnm-glib/nm-dhcp4-config.c +++ b/libnm-glib/nm-dhcp4-config.c @@ -17,7 +17,7 @@ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA. * - * Copyright (C) 2008 - 2010 Red Hat, Inc. + * Copyright (C) 2008 - 2011 Red Hat, Inc. * Copyright (C) 2008 Novell, Inc. */ @@ -218,7 +218,8 @@ nm_dhcp4_config_get_options (NMDHCP4Config *config) if (!_nm_object_get_property (NM_OBJECT (config), NM_DBUS_INTERFACE_DHCP4_CONFIG, "Options", - &value)) + &value, + NULL)) goto out; demarshal_dhcp4_options (NM_OBJECT (config), NULL, &value, &priv->options); diff --git a/libnm-glib/nm-dhcp6-config.c b/libnm-glib/nm-dhcp6-config.c index dbcf4c682e..8b85595c05 100644 --- a/libnm-glib/nm-dhcp6-config.c +++ b/libnm-glib/nm-dhcp6-config.c @@ -17,7 +17,7 @@ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA. * - * Copyright (C) 2008 - 2010 Red Hat, Inc. + * Copyright (C) 2008 - 2011 Red Hat, Inc. * Copyright (C) 2008 Novell, Inc. */ @@ -218,7 +218,8 @@ nm_dhcp6_config_get_options (NMDHCP6Config *config) if (!_nm_object_get_property (NM_OBJECT (config), NM_DBUS_INTERFACE_DHCP6_CONFIG, "Options", - &value)) + &value, + NULL)) goto out; demarshal_dhcp6_options (NM_OBJECT (config), NULL, &value, &priv->options); diff --git a/libnm-glib/nm-ip4-config.c b/libnm-glib/nm-ip4-config.c index bc93a2c121..78d89801bd 100644 --- a/libnm-glib/nm-ip4-config.c +++ b/libnm-glib/nm-ip4-config.c @@ -17,7 +17,7 @@ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA. * - * Copyright (C) 2007 - 2008 Novell, Inc. + * Copyright (C) 2007 - 2011 Novell, Inc. * Copyright (C) 2008 Red Hat, Inc. */ @@ -355,7 +355,8 @@ nm_ip4_config_get_addresses (NMIP4Config *config) if (!_nm_object_get_property (NM_OBJECT (config), NM_DBUS_INTERFACE_IP4_CONFIG, "Addresses", - &value)) { + &value, + NULL)) { return NULL; } @@ -402,7 +403,8 @@ nm_ip4_config_get_nameservers (NMIP4Config *config) if (_nm_object_get_property (NM_OBJECT (config), NM_DBUS_INTERFACE_IP4_CONFIG, "Nameservers", - &value)) { + &value, + NULL)) { array = (GArray *) g_value_get_boxed (&value); if (array && array->len) { priv->nameservers = g_array_sized_new (FALSE, TRUE, sizeof (guint32), array->len); @@ -439,7 +441,8 @@ nm_ip4_config_get_domains (NMIP4Config *config) if (_nm_object_get_property (NM_OBJECT (config), NM_DBUS_INTERFACE_IP4_CONFIG, "Domains", - &value)) { + &value, + NULL)) { char **array = NULL, **p; array = (char **) g_value_get_boxed (&value); @@ -477,7 +480,8 @@ nm_ip4_config_get_wins_servers (NMIP4Config *config) if (_nm_object_get_property (NM_OBJECT (config), NM_DBUS_INTERFACE_IP4_CONFIG, "Nameservers", - &value)) { + &value, + NULL)) { array = (GArray *) g_value_get_boxed (&value); if (array && array->len) { priv->nameservers = g_array_sized_new (FALSE, TRUE, sizeof (guint32), array->len); @@ -515,7 +519,8 @@ nm_ip4_config_get_routes (NMIP4Config *config) if (!_nm_object_get_property (NM_OBJECT (config), NM_DBUS_INTERFACE_IP4_CONFIG, "Routes", - &value)) { + &value, + NULL)) { return NULL; } diff --git a/libnm-glib/nm-ip6-config.c b/libnm-glib/nm-ip6-config.c index fce6430e47..ddaea66a6f 100644 --- a/libnm-glib/nm-ip6-config.c +++ b/libnm-glib/nm-ip6-config.c @@ -18,7 +18,7 @@ * Boston, MA 02110-1301 USA. * * Copyright (C) 2007 - 2008 Novell, Inc. - * Copyright (C) 2008 Red Hat, Inc. + * Copyright (C) 2008 - 2011 Red Hat, Inc. */ #include <string.h> @@ -165,7 +165,8 @@ nm_ip6_config_get_addresses (NMIP6Config *config) if (!_nm_object_get_property (NM_OBJECT (config), NM_DBUS_INTERFACE_IP6_CONFIG, "Addresses", - &value)) { + &value, + NULL)) { return NULL; } @@ -202,7 +203,8 @@ nm_ip6_config_get_nameservers (NMIP6Config *config) if (!_nm_object_get_property (NM_OBJECT (config), NM_DBUS_INTERFACE_IP6_CONFIG, "Nameservers", - &value)) { + &value, + NULL)) { return NULL; } @@ -237,7 +239,8 @@ nm_ip6_config_get_domains (NMIP6Config *config) if (!_nm_object_get_property (NM_OBJECT (config), NM_DBUS_INTERFACE_IP6_CONFIG, "Domains", - &value)) { + &value, + NULL)) { return NULL; } @@ -272,7 +275,8 @@ nm_ip6_config_get_routes (NMIP6Config *config) if (!_nm_object_get_property (NM_OBJECT (config), NM_DBUS_INTERFACE_IP6_CONFIG, "Routes", - &value)) { + &value, + NULL)) { return NULL; } diff --git a/libnm-glib/nm-object-private.h b/libnm-glib/nm-object-private.h index 93514cbe41..03dd6db7f2 100644 --- a/libnm-glib/nm-object-private.h +++ b/libnm-glib/nm-object-private.h @@ -17,7 +17,7 @@ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA. * - * Copyright (C) 2008 Red Hat, Inc. + * Copyright (C) 2008 - 2011 Red Hat, Inc. */ #ifndef NM_OBJECT_PRIVATE_H @@ -48,46 +48,55 @@ void _nm_object_queue_notify (NMObject *object, const char *property); /* DBus property accessors */ gboolean _nm_object_get_property (NMObject *object, - const char *interface, - const char *prop_name, - GValue *value); + const char *interface, + const char *prop_name, + GValue *value, + GError **error); void _nm_object_set_property (NMObject *object, - const char *interface, - const char *prop_name, - GValue *value); + const char *interface, + const char *prop_name, + GValue *value); char *_nm_object_get_string_property (NMObject *object, - const char *interface, - const char *prop_name); + const char *interface, + const char *prop_name, + GError **error); char *_nm_object_get_object_path_property (NMObject *object, - const char *interface, - const char *prop_name); + const char *interface, + const char *prop_name, + GError **error); gint32 _nm_object_get_int_property (NMObject *object, - const char *interface, - const char *prop_name); + const char *interface, + const char *prop_name, + GError **error); guint32 _nm_object_get_uint_property (NMObject *object, - const char *interface, - const char *prop_name); + const char *interface, + const char *prop_name, + GError **error); gboolean _nm_object_get_boolean_property (NMObject *object, - const char *interface, - const char *prop_name); + const char *interface, + const char *prop_name, + GError **error); gint8 _nm_object_get_byte_property (NMObject *object, - const char *interface, - const char *prop_name); + const char *interface, + const char *prop_name, + GError **error); gdouble _nm_object_get_double_property (NMObject *object, - const char *interface, - const char *prop_name); + const char *interface, + const char *prop_name, + GError **error); GByteArray *_nm_object_get_byte_array_property (NMObject *object, - const char *interface, - const char *prop_name); + const char *interface, + const char *prop_name, + GError **error); static inline const GPtrArray * handle_ptr_array_return (GPtrArray *array) diff --git a/libnm-glib/nm-object.c b/libnm-glib/nm-object.c index 78b46388a4..757dc6d2ed 100644 --- a/libnm-glib/nm-object.c +++ b/libnm-glib/nm-object.c @@ -18,7 +18,7 @@ * Boston, MA 02110-1301 USA. * * Copyright (C) 2007 - 2008 Novell, Inc. - * Copyright (C) 2007 - 2008 Red Hat, Inc. + * Copyright (C) 2007 - 2011 Red Hat, Inc. */ #include <string.h> @@ -480,9 +480,10 @@ done: gboolean _nm_object_get_property (NMObject *object, - const char *interface, - const char *prop_name, - GValue *value) + const char *interface, + const char *prop_name, + GValue *value, + GError **error) { GError *err = NULL; @@ -490,6 +491,7 @@ _nm_object_get_property (NMObject *object, g_return_val_if_fail (interface != NULL, FALSE); g_return_val_if_fail (prop_name != NULL, FALSE); g_return_val_if_fail (value != NULL, FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); if (!dbus_g_proxy_call_with_timeout (NM_OBJECT_GET_PRIVATE (object)->properties_proxy, "Get", 15000, &err, @@ -500,8 +502,10 @@ _nm_object_get_property (NMObject *object, G_TYPE_INVALID)) { /* Don't warn about D-Bus no reply/timeout errors; it's mostly noise and * happens for example when NM quits and the applet is still running. - */ - if (!(err->domain == DBUS_GERROR && err->code == DBUS_GERROR_NO_REPLY)) { + * And don't warn when 'error' is not NULL, rather propagate 'err' so the caller + * can do something with it. */ + if ( !error + && !(err->domain == DBUS_GERROR && err->code == DBUS_GERROR_NO_REPLY)) { g_warning ("%s: Error getting '%s' for %s: (%d) %s\n", __func__, prop_name, @@ -509,7 +513,7 @@ _nm_object_get_property (NMObject *object, err->code, err->message); } - g_error_free (err); + g_propagate_error (error, err); return FALSE; } @@ -542,13 +546,14 @@ _nm_object_set_property (NMObject *object, char * _nm_object_get_string_property (NMObject *object, - const char *interface, - const char *prop_name) + const char *interface, + const char *prop_name, + GError **error) { char *str = NULL; GValue value = {0,}; - if (_nm_object_get_property (object, interface, prop_name, &value)) { + if (_nm_object_get_property (object, interface, prop_name, &value, error)) { if (G_VALUE_HOLDS_STRING (&value)) str = g_strdup (g_value_get_string (&value)); else if (G_VALUE_HOLDS (&value, DBUS_TYPE_G_OBJECT_PATH)) @@ -561,13 +566,14 @@ _nm_object_get_string_property (NMObject *object, char * _nm_object_get_object_path_property (NMObject *object, - const char *interface, - const char *prop_name) + const char *interface, + const char *prop_name, + GError **error) { char *path = NULL; GValue value = {0,}; - if (_nm_object_get_property (object, interface, prop_name, &value)) { + if (_nm_object_get_property (object, interface, prop_name, &value, error)) { path = g_strdup (g_value_get_boxed (&value)); g_value_unset (&value); } @@ -577,13 +583,14 @@ _nm_object_get_object_path_property (NMObject *object, gint32 _nm_object_get_int_property (NMObject *object, - const char *interface, - const char *prop_name) + const char *interface, + const char *prop_name, + GError **error) { gint32 i = 0; GValue value = {0,}; - if (_nm_object_get_property (object, interface, prop_name, &value)) { + if (_nm_object_get_property (object, interface, prop_name, &value, error)) { i = g_value_get_int (&value); g_value_unset (&value); } @@ -593,13 +600,14 @@ _nm_object_get_int_property (NMObject *object, guint32 _nm_object_get_uint_property (NMObject *object, - const char *interface, - const char *prop_name) + const char *interface, + const char *prop_name, + GError **error) { guint32 i = 0; GValue value = {0,}; - if (_nm_object_get_property (object, interface, prop_name, &value)) { + if (_nm_object_get_property (object, interface, prop_name, &value, error)) { i = g_value_get_uint (&value); g_value_unset (&value); } @@ -609,13 +617,14 @@ _nm_object_get_uint_property (NMObject *object, gboolean _nm_object_get_boolean_property (NMObject *object, - const char *interface, - const char *prop_name) + const char *interface, + const char *prop_name, + GError **error) { - gboolean b = FALSE; // FIXME: somehow convey failure if needed + gboolean b = FALSE; GValue value = {0,}; - if (_nm_object_get_property (object, interface, prop_name, &value)) { + if (_nm_object_get_property (object, interface, prop_name, &value, error)) { b = g_value_get_boolean (&value); g_value_unset (&value); } @@ -625,13 +634,14 @@ _nm_object_get_boolean_property (NMObject *object, gint8 _nm_object_get_byte_property (NMObject *object, - const char *interface, - const char *prop_name) + const char *interface, + const char *prop_name, + GError **error) { gint8 b = G_MAXINT8; GValue value = {0,}; - if (_nm_object_get_property (object, interface, prop_name, &value)) { + if (_nm_object_get_property (object, interface, prop_name, &value, error)) { b = g_value_get_uchar (&value); g_value_unset (&value); } @@ -641,13 +651,14 @@ _nm_object_get_byte_property (NMObject *object, gdouble _nm_object_get_double_property (NMObject *object, - const char *interface, - const char *prop_name) + const char *interface, + const char *prop_name, + GError **error) { gdouble d = G_MAXDOUBLE; GValue value = {0,}; - if (_nm_object_get_property (object, interface, prop_name, &value)) { + if (_nm_object_get_property (object, interface, prop_name, &value, error)) { d = g_value_get_double (&value); g_value_unset (&value); } @@ -657,13 +668,14 @@ _nm_object_get_double_property (NMObject *object, GByteArray * _nm_object_get_byte_array_property (NMObject *object, - const char *interface, - const char *prop_name) + const char *interface, + const char *prop_name, + GError **error) { - GByteArray * array = NULL; + GByteArray *array = NULL; GValue value = {0,}; - if (_nm_object_get_property (object, interface, prop_name, &value)) { + if (_nm_object_get_property (object, interface, prop_name, &value, error)) { GArray * tmp = g_value_get_boxed (&value); int i; unsigned char byte; diff --git a/libnm-glib/nm-vpn-connection.c b/libnm-glib/nm-vpn-connection.c index 6910b6f63c..d0acb5d6c7 100644 --- a/libnm-glib/nm-vpn-connection.c +++ b/libnm-glib/nm-vpn-connection.c @@ -18,7 +18,7 @@ * Boston, MA 02110-1301 USA. * * Copyright (C) 2007 - 2008 Novell, Inc. - * Copyright (C) 2007 - 2010 Red Hat, Inc. + * Copyright (C) 2007 - 2011 Red Hat, Inc. */ #include <string.h> @@ -86,7 +86,8 @@ nm_vpn_connection_get_banner (NMVPNConnection *vpn) if (!priv->banner) { priv->banner = _nm_object_get_string_property (NM_OBJECT (vpn), NM_DBUS_INTERFACE_VPN_CONNECTION, - DBUS_PROP_BANNER); + DBUS_PROP_BANNER, + NULL); if (priv->banner && !strlen (priv->banner)) { g_free (priv->banner); priv->banner = NULL; @@ -106,7 +107,8 @@ nm_vpn_connection_get_vpn_state (NMVPNConnection *vpn) if (priv->vpn_state == NM_VPN_CONNECTION_STATE_UNKNOWN) { priv->vpn_state = _nm_object_get_uint_property (NM_OBJECT (vpn), NM_DBUS_INTERFACE_VPN_CONNECTION, - DBUS_PROP_VPN_STATE); + DBUS_PROP_VPN_STATE, + NULL); } return priv->vpn_state; } diff --git a/libnm-glib/nm-wimax-nsp.c b/libnm-glib/nm-wimax-nsp.c index eebdbaaac9..4d2c152f89 100644 --- a/libnm-glib/nm-wimax-nsp.c +++ b/libnm-glib/nm-wimax-nsp.c @@ -17,7 +17,7 @@ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA. * - * Copyright (C) 2009 Novell, Inc. + * Copyright (C) 2011 Red Hat, Inc. */ #include <string.h> @@ -92,8 +92,9 @@ nm_wimax_nsp_get_name (NMWimaxNsp *nsp) priv = NM_WIMAX_NSP_GET_PRIVATE (nsp); if (!priv->name) priv->name = _nm_object_get_string_property (NM_OBJECT (nsp), - NM_DBUS_INTERFACE_WIMAX_NSP, - DBUS_PROP_NAME); + NM_DBUS_INTERFACE_WIMAX_NSP, + DBUS_PROP_NAME, + NULL); return priv->name; } @@ -117,7 +118,8 @@ nm_wimax_nsp_get_signal_quality (NMWimaxNsp *nsp) if (!priv->signal_quality) { priv->signal_quality = _nm_object_get_uint_property (NM_OBJECT (nsp), NM_DBUS_INTERFACE_WIMAX_NSP, - DBUS_PROP_SIGNAL_QUALITY); + DBUS_PROP_SIGNAL_QUALITY, + NULL); } return priv->signal_quality; @@ -142,7 +144,8 @@ nm_wimax_nsp_get_network_type (NMWimaxNsp *nsp) if (!priv->network_type) { priv->network_type = _nm_object_get_uint_property (NM_OBJECT (nsp), NM_DBUS_INTERFACE_WIMAX_NSP, - DBUS_PROP_NETWORK_TYPE); + DBUS_PROP_NETWORK_TYPE, + NULL); } return priv->network_type; |