libnm: merge branch 'th/libnm-no-empty-string-properties-rh1380424'

https://bugzilla.redhat.com/show_bug.cgi?id=1380424
This commit is contained in:
Thomas Haller 2016-10-24 10:08:40 +02:00
commit 8cca81bbb0
23 changed files with 79 additions and 77 deletions

View file

@ -170,7 +170,7 @@ nm_access_point_get_bssid (NMAccessPoint *ap)
{
g_return_val_if_fail (NM_IS_ACCESS_POINT (ap), NULL);
return NM_ACCESS_POINT_GET_PRIVATE (ap)->bssid;
return nm_str_not_empty (NM_ACCESS_POINT_GET_PRIVATE (ap)->bssid);
}
/**

View file

@ -129,7 +129,7 @@ nm_active_connection_get_id (NMActiveConnection *connection)
{
g_return_val_if_fail (NM_IS_ACTIVE_CONNECTION (connection), NULL);
return NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->id;
return nm_str_not_empty (NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->id);
}
/**
@ -146,7 +146,7 @@ nm_active_connection_get_uuid (NMActiveConnection *connection)
{
g_return_val_if_fail (NM_IS_ACTIVE_CONNECTION (connection), NULL);
return NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->uuid;
return nm_str_not_empty (NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->uuid);
}
/**
@ -163,7 +163,7 @@ nm_active_connection_get_connection_type (NMActiveConnection *connection)
{
g_return_val_if_fail (NM_IS_ACTIVE_CONNECTION (connection), NULL);
return NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->type;
return nm_str_not_empty (NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->type);
}
/**
@ -461,6 +461,7 @@ get_property (GObject *object,
static gboolean
demarshal_specific_object_path (NMObject *object, GParamSpec *pspec, GVariant *value, gpointer field)
{
const char *v;
char **param = (char **) field;
/* We have to demarshal this manually, because the D-Bus property name
@ -471,8 +472,10 @@ demarshal_specific_object_path (NMObject *object, GParamSpec *pspec, GVariant *v
if (!g_variant_is_of_type (value, G_VARIANT_TYPE_OBJECT_PATH))
return FALSE;
v = g_variant_get_string (value, NULL);
g_free (*param);
*param = g_variant_dup_string (value, NULL);
*param = nm_streq0 (v, "/") ? NULL : g_strdup (v);
return TRUE;
}

View file

@ -64,7 +64,7 @@ nm_device_bond_get_hw_address (NMDeviceBond *device)
{
g_return_val_if_fail (NM_IS_DEVICE_BOND (device), NULL);
return NM_DEVICE_BOND_GET_PRIVATE (device)->hw_address;
return nm_str_not_empty (NM_DEVICE_BOND_GET_PRIVATE (device)->hw_address);
}
/**

View file

@ -64,7 +64,7 @@ nm_device_bridge_get_hw_address (NMDeviceBridge *device)
{
g_return_val_if_fail (NM_IS_DEVICE_BRIDGE (device), NULL);
return NM_DEVICE_BRIDGE_GET_PRIVATE (device)->hw_address;
return nm_str_not_empty (NM_DEVICE_BRIDGE_GET_PRIVATE (device)->hw_address);
}
/**

View file

@ -65,7 +65,7 @@ nm_device_bt_get_hw_address (NMDeviceBt *device)
{
g_return_val_if_fail (NM_IS_DEVICE_BT (device), NULL);
return NM_DEVICE_BT_GET_PRIVATE (device)->hw_address;
return nm_str_not_empty (NM_DEVICE_BT_GET_PRIVATE (device)->hw_address);
}
/**

View file

@ -69,7 +69,7 @@ nm_device_ethernet_get_hw_address (NMDeviceEthernet *device)
{
g_return_val_if_fail (NM_IS_DEVICE_ETHERNET (device), NULL);
return NM_DEVICE_ETHERNET_GET_PRIVATE (device)->hw_address;
return nm_str_not_empty (NM_DEVICE_ETHERNET_GET_PRIVATE (device)->hw_address);
}
/**
@ -86,7 +86,7 @@ nm_device_ethernet_get_permanent_hw_address (NMDeviceEthernet *device)
{
g_return_val_if_fail (NM_IS_DEVICE_ETHERNET (device), NULL);
return NM_DEVICE_ETHERNET_GET_PRIVATE (device)->perm_hw_address;
return nm_str_not_empty (NM_DEVICE_ETHERNET_GET_PRIVATE (device)->perm_hw_address);
}
/**

View file

@ -59,7 +59,7 @@ nm_device_generic_get_hw_address (NMDeviceGeneric *device)
{
g_return_val_if_fail (NM_IS_DEVICE_GENERIC (device), NULL);
return NM_DEVICE_GENERIC_GET_PRIVATE (device)->hw_address;
return nm_str_not_empty (NM_DEVICE_GENERIC_GET_PRIVATE (device)->hw_address);
}
/*****************************************************************************/
@ -69,7 +69,7 @@ get_type_description (NMDevice *device)
{
NMDeviceGenericPrivate *priv = NM_DEVICE_GENERIC_GET_PRIVATE (device);
return priv->type_description;
return nm_str_not_empty (priv->type_description);
}
static const char *
@ -150,14 +150,15 @@ get_property (GObject *object,
GValue *value,
GParamSpec *pspec)
{
NMDeviceGenericPrivate *priv = NM_DEVICE_GENERIC_GET_PRIVATE (object);
NMDeviceGeneric *self = NM_DEVICE_GENERIC (object);
NMDeviceGenericPrivate *priv = NM_DEVICE_GENERIC_GET_PRIVATE (self);
switch (prop_id) {
case PROP_HW_ADDRESS:
g_value_set_string (value, priv->hw_address);
break;
case PROP_TYPE_DESCRIPTION:
g_value_set_string (value, priv->type_description);
g_value_set_string (value, get_type_description ((NMDevice *) self));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);

View file

@ -61,7 +61,7 @@ nm_device_infiniband_get_hw_address (NMDeviceInfiniband *device)
{
g_return_val_if_fail (NM_IS_DEVICE_INFINIBAND (device), NULL);
return NM_DEVICE_INFINIBAND_GET_PRIVATE (device)->hw_address;
return nm_str_not_empty (NM_DEVICE_INFINIBAND_GET_PRIVATE (device)->hw_address);
}
/**

View file

@ -111,7 +111,7 @@ nm_device_ip_tunnel_get_local (NMDeviceIPTunnel *device)
{
g_return_val_if_fail (NM_IS_DEVICE_IP_TUNNEL (device), NULL);
return NM_DEVICE_IP_TUNNEL_GET_PRIVATE (device)->local;
return nm_str_not_empty (NM_DEVICE_IP_TUNNEL_GET_PRIVATE (device)->local);
}
/**
@ -127,7 +127,7 @@ nm_device_ip_tunnel_get_remote (NMDeviceIPTunnel *device)
{
g_return_val_if_fail (NM_IS_DEVICE_IP_TUNNEL (device), NULL);
return NM_DEVICE_IP_TUNNEL_GET_PRIVATE (device)->remote;
return nm_str_not_empty (NM_DEVICE_IP_TUNNEL_GET_PRIVATE (device)->remote);
}
/**
@ -192,7 +192,7 @@ nm_device_ip_tunnel_get_input_key (NMDeviceIPTunnel *device)
{
g_return_val_if_fail (NM_IS_DEVICE_IP_TUNNEL (device), NULL);
return NM_DEVICE_IP_TUNNEL_GET_PRIVATE (device)->input_key;
return nm_str_not_empty (NM_DEVICE_IP_TUNNEL_GET_PRIVATE (device)->input_key);
}
/**
@ -208,7 +208,7 @@ nm_device_ip_tunnel_get_output_key (NMDeviceIPTunnel *device)
{
g_return_val_if_fail (NM_IS_DEVICE_IP_TUNNEL (device), NULL);
return NM_DEVICE_IP_TUNNEL_GET_PRIVATE (device)->output_key;
return nm_str_not_empty (NM_DEVICE_IP_TUNNEL_GET_PRIVATE (device)->output_key);
}
/**

View file

@ -86,7 +86,7 @@ nm_device_macvlan_get_mode (NMDeviceMacvlan *device)
{
g_return_val_if_fail (NM_IS_DEVICE_MACVLAN (device), NULL);
return NM_DEVICE_MACVLAN_GET_PRIVATE (device)->mode;
return nm_str_not_empty (NM_DEVICE_MACVLAN_GET_PRIVATE (device)->mode);
}
/**
@ -141,7 +141,7 @@ nm_device_macvlan_get_hw_address (NMDeviceMacvlan *device)
{
g_return_val_if_fail (NM_IS_DEVICE_MACVLAN (device), NULL);
return NM_DEVICE_MACVLAN_GET_PRIVATE (device)->hw_address;
return nm_str_not_empty (NM_DEVICE_MACVLAN_GET_PRIVATE (device)->hw_address);
}

View file

@ -63,7 +63,7 @@ nm_device_olpc_mesh_get_hw_address (NMDeviceOlpcMesh *device)
{
g_return_val_if_fail (NM_IS_DEVICE_OLPC_MESH (device), NULL);
return NM_DEVICE_OLPC_MESH_GET_PRIVATE (device)->hw_address;
return nm_str_not_empty (NM_DEVICE_OLPC_MESH_GET_PRIVATE (device)->hw_address);
}
/**

View file

@ -66,7 +66,7 @@ nm_device_team_get_hw_address (NMDeviceTeam *device)
{
g_return_val_if_fail (NM_IS_DEVICE_TEAM (device), NULL);
return NM_DEVICE_TEAM_GET_PRIVATE (device)->hw_address;
return nm_str_not_empty (NM_DEVICE_TEAM_GET_PRIVATE (device)->hw_address);
}
/**
@ -119,7 +119,7 @@ nm_device_team_get_config (NMDeviceTeam *device)
{
g_return_val_if_fail (NM_IS_DEVICE_TEAM (device), NULL);
return NM_DEVICE_TEAM_GET_PRIVATE (device)->config;
return nm_str_not_empty (NM_DEVICE_TEAM_GET_PRIVATE (device)->config);
}
static const char *

View file

@ -74,7 +74,7 @@ nm_device_tun_get_hw_address (NMDeviceTun *device)
{
g_return_val_if_fail (NM_IS_DEVICE_TUN (device), NULL);
return NM_DEVICE_TUN_GET_PRIVATE (device)->hw_address;
return nm_str_not_empty (NM_DEVICE_TUN_GET_PRIVATE (device)->hw_address);
}
/**
@ -92,7 +92,7 @@ nm_device_tun_get_mode (NMDeviceTun *device)
{
g_return_val_if_fail (NM_IS_DEVICE_TUN (device), NULL);
return NM_DEVICE_TUN_GET_PRIVATE (device)->mode;
return nm_str_not_empty (NM_DEVICE_TUN_GET_PRIVATE (device)->mode);
}
/**

View file

@ -66,7 +66,7 @@ nm_device_vlan_get_hw_address (NMDeviceVlan *device)
{
g_return_val_if_fail (NM_IS_DEVICE_VLAN (device), NULL);
return NM_DEVICE_VLAN_GET_PRIVATE (device)->hw_address;
return nm_str_not_empty (NM_DEVICE_VLAN_GET_PRIVATE (device)->hw_address);
}
/**
@ -116,6 +116,7 @@ nm_device_vlan_get_vlan_id (NMDeviceVlan *device)
static gboolean
connection_compatible (NMDevice *device, NMConnection *connection, GError **error)
{
NMDeviceVlanPrivate *priv;
NMSettingVlan *s_vlan;
NMSettingWired *s_wired;
const char *setting_hwaddr;
@ -142,8 +143,10 @@ connection_compatible (NMDevice *device, NMConnection *connection, GError **erro
else
setting_hwaddr = NULL;
if (setting_hwaddr) {
if (!nm_utils_hwaddr_matches (setting_hwaddr, -1,
NM_DEVICE_VLAN_GET_PRIVATE (device)->hw_address, -1)) {
priv = NM_DEVICE_VLAN_GET_PRIVATE (device);
if ( !priv->hw_address
|| !nm_utils_hwaddr_matches (setting_hwaddr, -1,
priv->hw_address, -1)) {
g_set_error_literal (error, NM_DEVICE_ERROR, NM_DEVICE_ERROR_INCOMPATIBLE_CONNECTION,
_("The hardware address of the device and the connection didn't match."));
}

View file

@ -95,7 +95,7 @@ nm_device_vxlan_get_hw_address (NMDeviceVxlan *device)
{
g_return_val_if_fail (NM_IS_DEVICE_VXLAN (device), NULL);
return NM_DEVICE_VXLAN_GET_PRIVATE (device)->hw_address;
return nm_str_not_empty (NM_DEVICE_VXLAN_GET_PRIVATE (device)->hw_address);
}
/**
@ -162,7 +162,7 @@ nm_device_vxlan_get_group (NMDeviceVxlan *device)
{
g_return_val_if_fail (NM_IS_DEVICE_VXLAN (device), NULL);
return NM_DEVICE_VXLAN_GET_PRIVATE (device)->group;
return nm_str_not_empty (NM_DEVICE_VXLAN_GET_PRIVATE (device)->group);
}
/**
@ -178,7 +178,7 @@ nm_device_vxlan_get_local (NMDeviceVxlan *device)
{
g_return_val_if_fail (NM_IS_DEVICE_VXLAN (device), NULL);
return NM_DEVICE_VXLAN_GET_PRIVATE (device)->local;
return nm_str_not_empty (NM_DEVICE_VXLAN_GET_PRIVATE (device)->local);
}
/**
@ -458,6 +458,8 @@ finalize (GObject *object)
g_free (priv->hw_address);
g_clear_object (&priv->parent);
g_free (priv->group);
g_free (priv->local);
G_OBJECT_CLASS (nm_device_vxlan_parent_class)->finalize (object);
}

View file

@ -100,7 +100,7 @@ nm_device_wifi_get_hw_address (NMDeviceWifi *device)
{
g_return_val_if_fail (NM_IS_DEVICE_WIFI (device), NULL);
return NM_DEVICE_WIFI_GET_PRIVATE (device)->hw_address;
return nm_str_not_empty (NM_DEVICE_WIFI_GET_PRIVATE (device)->hw_address);
}
/**
@ -117,7 +117,7 @@ nm_device_wifi_get_permanent_hw_address (NMDeviceWifi *device)
{
g_return_val_if_fail (NM_IS_DEVICE_WIFI (device), NULL);
return NM_DEVICE_WIFI_GET_PRIVATE (device)->perm_hw_address;
return nm_str_not_empty (NM_DEVICE_WIFI_GET_PRIVATE (device)->perm_hw_address);
}
/**
@ -520,10 +520,7 @@ clean_up_aps (NMDeviceWifi *self, gboolean in_dispose)
priv = NM_DEVICE_WIFI_GET_PRIVATE (self);
if (priv->active_ap) {
g_object_unref (priv->active_ap);
priv->active_ap = NULL;
}
g_clear_object (&priv->active_ap);
aps = priv->aps;
@ -722,10 +719,7 @@ state_changed_cb (NMDevice *device, GParamSpec *pspec, gpointer user_data)
case NM_DEVICE_STATE_DISCONNECTED:
case NM_DEVICE_STATE_FAILED:
/* Just clear active AP; don't clear the AP list unless wireless is disabled completely */
if (priv->active_ap) {
g_object_unref (priv->active_ap);
priv->active_ap = NULL;
}
g_clear_object (&priv->active_ap);
_nm_object_queue_notify (NM_OBJECT (device), NM_DEVICE_WIFI_ACTIVE_ACCESS_POINT);
priv->rate = 0;
_nm_object_queue_notify (NM_OBJECT (device), NM_DEVICE_WIFI_BITRATE);
@ -764,8 +758,7 @@ access_point_removed (NMDeviceWifi *self, NMAccessPoint *ap)
NMDeviceWifiPrivate *priv = NM_DEVICE_WIFI_GET_PRIVATE (self);
if (ap == priv->active_ap) {
g_object_unref (priv->active_ap);
priv->active_ap = NULL;
g_clear_object (&priv->active_ap);
_nm_object_queue_notify (NM_OBJECT (self), NM_DEVICE_WIFI_ACTIVE_ACCESS_POINT);
priv->rate = 0;

View file

@ -91,7 +91,7 @@ nm_device_wimax_get_hw_address (NMDeviceWimax *wimax)
{
g_return_val_if_fail (NM_IS_DEVICE_WIMAX (wimax), NULL);
return NM_DEVICE_WIMAX_GET_PRIVATE (wimax)->hw_address;
return nm_str_not_empty (NM_DEVICE_WIMAX_GET_PRIVATE (wimax)->hw_address);
}
/**
@ -300,7 +300,7 @@ nm_device_wimax_get_bsid (NMDeviceWimax *self)
{
g_return_val_if_fail (NM_IS_DEVICE_WIMAX (self), NULL);
return NM_DEVICE_WIMAX_GET_PRIVATE (self)->bsid;
return nm_str_not_empty (NM_DEVICE_WIMAX_GET_PRIVATE (self)->bsid);
}
static gboolean

View file

@ -996,7 +996,7 @@ nm_device_get_iface (NMDevice *device)
{
g_return_val_if_fail (NM_IS_DEVICE (device), NULL);
return NM_DEVICE_GET_PRIVATE (device)->iface;
return nm_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->iface);
}
/**
@ -1014,7 +1014,7 @@ nm_device_get_ip_iface (NMDevice *device)
{
g_return_val_if_fail (NM_IS_DEVICE (device), NULL);
return NM_DEVICE_GET_PRIVATE (device)->ip_iface;
return nm_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->ip_iface);
}
/**
@ -1048,7 +1048,7 @@ nm_device_get_udi (NMDevice *device)
{
g_return_val_if_fail (NM_IS_DEVICE (device), NULL);
return NM_DEVICE_GET_PRIVATE (device)->udi;
return nm_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->udi);
}
/**
@ -1065,7 +1065,7 @@ nm_device_get_driver (NMDevice *device)
{
g_return_val_if_fail (NM_IS_DEVICE (device), NULL);
return NM_DEVICE_GET_PRIVATE (device)->driver;
return nm_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->driver);
}
/**
@ -1082,7 +1082,7 @@ nm_device_get_driver_version (NMDevice *device)
{
g_return_val_if_fail (NM_IS_DEVICE (device), NULL);
return NM_DEVICE_GET_PRIVATE (device)->driver_version;
return nm_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->driver_version);
}
/**
@ -1099,7 +1099,7 @@ nm_device_get_firmware_version (NMDevice *device)
{
g_return_val_if_fail (NM_IS_DEVICE (device), NULL);
return NM_DEVICE_GET_PRIVATE (device)->firmware_version;
return nm_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->firmware_version);
}
/**
@ -1124,7 +1124,7 @@ nm_device_get_type_description (NMDevice *device)
g_return_val_if_fail (NM_IS_DEVICE (device), NULL);
if (priv->type_description)
return priv->type_description;
return nm_str_not_empty (priv->type_description);
if (NM_DEVICE_GET_CLASS (device)->get_type_description) {
desc = NM_DEVICE_GET_CLASS (device)->get_type_description (device);
@ -1137,7 +1137,7 @@ nm_device_get_type_description (NMDevice *device)
typename += 8;
priv->type_description = g_ascii_strdown (typename, -1);
return priv->type_description;
return nm_str_not_empty (priv->type_description);
}
/**
@ -2084,16 +2084,9 @@ done:
const char *
nm_device_get_physical_port_id (NMDevice *device)
{
NMDevicePrivate *priv;
g_return_val_if_fail (NM_IS_DEVICE (device), NULL);
priv = NM_DEVICE_GET_PRIVATE (device);
if (priv->physical_port_id && *priv->physical_port_id)
return priv->physical_port_id;
else
return NULL;
return nm_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->physical_port_id);
}
/**

View file

@ -395,7 +395,7 @@ nm_ip_config_get_gateway (NMIPConfig *config)
{
g_return_val_if_fail (NM_IS_IP_CONFIG (config), NULL);
return NM_IP_CONFIG_GET_PRIVATE (config)->gateway;
return nm_str_not_empty (NM_IP_CONFIG_GET_PRIVATE (config)->gateway);
}
/**

View file

@ -382,7 +382,7 @@ nm_manager_get_version (NMManager *manager)
{
g_return_val_if_fail (NM_IS_MANAGER (manager), NULL);
return NM_MANAGER_GET_PRIVATE (manager)->version;
return nm_str_not_empty (NM_MANAGER_GET_PRIVATE (manager)->version);
}
NMState

View file

@ -79,7 +79,7 @@ nm_vpn_connection_get_banner (NMVpnConnection *vpn)
if (priv->vpn_state != NM_VPN_CONNECTION_STATE_ACTIVATED)
return NULL;
return priv->banner;
return nm_str_not_empty (priv->banner);
}
/**

View file

@ -265,13 +265,11 @@ _NM_IN_STRSET_streq (const char *x, const char *s)
/*****************************************************************************/
#define nm_str_not_empty(str) \
({ \
/* implemented as macro to preserve constness */ \
typeof (str) __str = (str); \
_nm_unused const char *__str_type_check = __str; \
((__str && __str[0]) ? __str : ((char *) NULL)); \
})
static inline const char *
nm_str_not_empty (const char *str)
{
return str && str[0] ? str : NULL;
}
static inline char *
nm_strdup_not_empty (const char *str)

View file

@ -166,18 +166,28 @@ ensure_teamd_connection (NMDevice *device)
return !!priv->tdc;
}
static const char *
_get_config (NMDeviceTeam *self)
{
return nm_str_not_empty (NM_DEVICE_TEAM_GET_PRIVATE (self)->config);
}
static gboolean
teamd_read_config (NMDevice *device)
{
NMDeviceTeam *self = NM_DEVICE_TEAM (device);
NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE (self);
char *config = NULL;
const char *config = NULL;
int err;
if (priv->tdc) {
err = teamdctl_config_actual_get_raw_direct (priv->tdc, &config);
err = teamdctl_config_actual_get_raw_direct (priv->tdc, (char **) &config);
if (err)
return FALSE;
if (!config) {
/* set "" to distinguish an empty result from no config at all. */
config = "";
}
}
if (!nm_streq0 (config, priv->config)) {
@ -224,7 +234,7 @@ update_connection (NMDevice *device, NMConnection *connection)
priv->tdc = NULL;
}
g_object_set (G_OBJECT (s_team), NM_SETTING_TEAM_CONFIG, priv->config, NULL);
g_object_set (G_OBJECT (s_team), _get_config (self), NULL);
}
/*****************************************************************************/
@ -768,11 +778,10 @@ get_property (GObject *object, guint prop_id,
GValue *value, GParamSpec *pspec)
{
NMDeviceTeam *self = NM_DEVICE_TEAM (object);
NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE (self);
switch (prop_id) {
case PROP_CONFIG:
g_value_set_string (value, priv->config);
g_value_set_string (value, _get_config (self));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);