libnm: merge branch 'th/libnm-various-fixes'
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/merge_requests/319
This commit is contained in:
@@ -1073,7 +1073,8 @@ get_property (GObject *object, guint prop_id,
|
||||
g_value_take_boxed (value,
|
||||
priv->seen_bssids
|
||||
? nm_utils_strv_dup (priv->seen_bssids->pdata,
|
||||
priv->seen_bssids->len)
|
||||
priv->seen_bssids->len,
|
||||
TRUE)
|
||||
: NULL);
|
||||
break;
|
||||
case PROP_HIDDEN:
|
||||
|
@@ -1728,7 +1728,9 @@ nm_utils_ip6_dns_to_variant (char **dns)
|
||||
* @value: a #GVariant of type 'aay'
|
||||
*
|
||||
* Utility function to convert a #GVariant of type 'aay' representing a list of
|
||||
* IPv6 addresses into an array of IP address strings.
|
||||
* IPv6 addresses into an array of IP address strings. Each "ay" entry must be
|
||||
* a IPv6 address in binary form (16 bytes long). Invalid entries are silently
|
||||
* ignored.
|
||||
*
|
||||
* Returns: (transfer full) (type utf8): a %NULL-terminated array of IP address strings.
|
||||
**/
|
||||
@@ -1750,14 +1752,9 @@ nm_utils_ip6_dns_from_variant (GVariant *value)
|
||||
gsize length;
|
||||
const struct in6_addr *ip = g_variant_get_fixed_array (ip_var, &length, 1);
|
||||
|
||||
if (length != sizeof (struct in6_addr)) {
|
||||
g_warning ("%s: ignoring invalid IP6 address of length %d",
|
||||
__func__, (int) length);
|
||||
g_variant_unref (ip_var);
|
||||
continue;
|
||||
}
|
||||
if (length == sizeof (struct in6_addr))
|
||||
dns[i++] = nm_utils_inet6_ntop_dup (ip);
|
||||
|
||||
dns[i++] = nm_utils_inet6_ntop_dup (ip);
|
||||
g_variant_unref (ip_var);
|
||||
}
|
||||
dns[i] = NULL;
|
||||
|
@@ -163,7 +163,7 @@ nm_access_point_get_bssid (NMAccessPoint *ap)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_ACCESS_POINT (ap), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_ACCESS_POINT_GET_PRIVATE (ap)->bssid);
|
||||
return _nml_coerce_property_str_not_empty (NM_ACCESS_POINT_GET_PRIVATE (ap)->bssid);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -579,7 +579,7 @@ nm_access_point_class_init (NMAccessPointClass *ap_class)
|
||||
obj_properties[PROP_MODE] =
|
||||
g_param_spec_enum (NM_ACCESS_POINT_MODE, "", "",
|
||||
NM_TYPE_802_11_MODE,
|
||||
NM_802_11_MODE_INFRA,
|
||||
NM_802_11_MODE_UNKNOWN,
|
||||
G_PARAM_READABLE |
|
||||
G_PARAM_STATIC_STRINGS);
|
||||
|
||||
|
@@ -109,7 +109,7 @@ nm_active_connection_get_id (NMActiveConnection *connection)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_ACTIVE_CONNECTION (connection), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->id);
|
||||
return _nml_coerce_property_str_not_empty (NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->id);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -126,7 +126,7 @@ nm_active_connection_get_uuid (NMActiveConnection *connection)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_ACTIVE_CONNECTION (connection), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->uuid);
|
||||
return _nml_coerce_property_str_not_empty (NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->uuid);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -143,7 +143,7 @@ nm_active_connection_get_connection_type (NMActiveConnection *connection)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_ACTIVE_CONNECTION (connection), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->type);
|
||||
return _nml_coerce_property_str_not_empty (NM_ACTIVE_CONNECTION_GET_PRIVATE (connection)->type);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -3958,7 +3958,7 @@ nm_client_class_init (NMClientClass *client_class)
|
||||
*/
|
||||
obj_properties[PROP_NETWORKING_ENABLED] =
|
||||
g_param_spec_boolean (NM_CLIENT_NETWORKING_ENABLED, "", "",
|
||||
TRUE,
|
||||
FALSE,
|
||||
G_PARAM_READWRITE |
|
||||
G_PARAM_STATIC_STRINGS);
|
||||
|
||||
@@ -3982,7 +3982,7 @@ nm_client_class_init (NMClientClass *client_class)
|
||||
**/
|
||||
obj_properties[PROP_WIRELESS_HARDWARE_ENABLED] =
|
||||
g_param_spec_boolean (NM_CLIENT_WIRELESS_HARDWARE_ENABLED, "", "",
|
||||
TRUE,
|
||||
FALSE,
|
||||
G_PARAM_READABLE |
|
||||
G_PARAM_STATIC_STRINGS);
|
||||
|
||||
@@ -4191,7 +4191,7 @@ nm_client_class_init (NMClientClass *client_class)
|
||||
**/
|
||||
obj_properties[PROP_DNS_MODE] =
|
||||
g_param_spec_string (NM_CLIENT_DNS_MODE, "", "",
|
||||
"",
|
||||
NULL,
|
||||
G_PARAM_READABLE |
|
||||
G_PARAM_STATIC_STRINGS);
|
||||
|
||||
@@ -4204,7 +4204,7 @@ nm_client_class_init (NMClientClass *client_class)
|
||||
**/
|
||||
obj_properties[PROP_DNS_RC_MANAGER] =
|
||||
g_param_spec_string (NM_CLIENT_DNS_RC_MANAGER, "", "",
|
||||
"",
|
||||
NULL,
|
||||
G_PARAM_READABLE |
|
||||
G_PARAM_STATIC_STRINGS);
|
||||
|
||||
@@ -4230,7 +4230,7 @@ nm_client_class_init (NMClientClass *client_class)
|
||||
* Since: 1.12
|
||||
*/
|
||||
obj_properties[PROP_CHECKPOINTS] =
|
||||
g_param_spec_boxed (NM_MANAGER_CHECKPOINTS, "", "",
|
||||
g_param_spec_boxed (NM_CLIENT_CHECKPOINTS, "", "",
|
||||
G_TYPE_PTR_ARRAY,
|
||||
G_PARAM_READABLE |
|
||||
G_PARAM_STATIC_STRINGS);
|
||||
|
@@ -61,6 +61,7 @@ _NM_DEPRECATED_SYNC_WRITABLE_PROPERTY
|
||||
#define NM_CLIENT_DNS_MODE "dns-mode"
|
||||
#define NM_CLIENT_DNS_RC_MANAGER "dns-rc-manager"
|
||||
#define NM_CLIENT_DNS_CONFIGURATION "dns-configuration"
|
||||
#define NM_CLIENT_CHECKPOINTS "checkpoints"
|
||||
|
||||
#define NM_CLIENT_DEVICE_ADDED "device-added"
|
||||
#define NM_CLIENT_DEVICE_REMOVED "device-removed"
|
||||
|
@@ -56,7 +56,7 @@ nm_device_bond_get_hw_address (NMDeviceBond *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE_BOND (device), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_DEVICE_BOND_GET_PRIVATE (device)->hw_address);
|
||||
return _nml_coerce_property_str_not_empty (NM_DEVICE_BOND_GET_PRIVATE (device)->hw_address);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -56,7 +56,7 @@ nm_device_bridge_get_hw_address (NMDeviceBridge *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE_BRIDGE (device), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_DEVICE_BRIDGE_GET_PRIVATE (device)->hw_address);
|
||||
return _nml_coerce_property_str_not_empty (NM_DEVICE_BRIDGE_GET_PRIVATE (device)->hw_address);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -57,7 +57,7 @@ nm_device_bt_get_hw_address (NMDeviceBt *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE_BT (device), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_DEVICE_BT_GET_PRIVATE (device)->hw_address);
|
||||
return _nml_coerce_property_str_not_empty (NM_DEVICE_BT_GET_PRIVATE (device)->hw_address);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -52,7 +52,7 @@ nm_device_dummy_get_hw_address (NMDeviceDummy *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE_DUMMY (device), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_DEVICE_DUMMY_GET_PRIVATE (device)->hw_address);
|
||||
return _nml_coerce_property_str_not_empty (NM_DEVICE_DUMMY_GET_PRIVATE (device)->hw_address);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
@@ -61,7 +61,7 @@ nm_device_ethernet_get_hw_address (NMDeviceEthernet *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE_ETHERNET (device), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_DEVICE_ETHERNET_GET_PRIVATE (device)->hw_address);
|
||||
return _nml_coerce_property_str_not_empty (NM_DEVICE_ETHERNET_GET_PRIVATE (device)->hw_address);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -78,7 +78,7 @@ nm_device_ethernet_get_permanent_hw_address (NMDeviceEthernet *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE_ETHERNET (device), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_DEVICE_ETHERNET_GET_PRIVATE (device)->perm_hw_address);
|
||||
return _nml_coerce_property_str_not_empty (NM_DEVICE_ETHERNET_GET_PRIVATE (device)->perm_hw_address);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -52,7 +52,7 @@ nm_device_generic_get_hw_address (NMDeviceGeneric *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE_GENERIC (device), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_DEVICE_GENERIC_GET_PRIVATE (device)->hw_address);
|
||||
return _nml_coerce_property_str_not_empty (NM_DEVICE_GENERIC_GET_PRIVATE (device)->hw_address);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
@@ -62,7 +62,7 @@ get_type_description (NMDevice *device)
|
||||
{
|
||||
NMDeviceGenericPrivate *priv = NM_DEVICE_GENERIC_GET_PRIVATE (device);
|
||||
|
||||
return nm_str_not_empty (priv->type_description);
|
||||
return _nml_coerce_property_str_not_empty (priv->type_description);
|
||||
}
|
||||
|
||||
static const char *
|
||||
|
@@ -53,7 +53,7 @@ nm_device_infiniband_get_hw_address (NMDeviceInfiniband *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE_INFINIBAND (device), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_DEVICE_INFINIBAND_GET_PRIVATE (device)->hw_address);
|
||||
return _nml_coerce_property_str_not_empty (NM_DEVICE_INFINIBAND_GET_PRIVATE (device)->hw_address);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -105,7 +105,7 @@ nm_device_ip_tunnel_get_local (NMDeviceIPTunnel *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE_IP_TUNNEL (device), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_DEVICE_IP_TUNNEL_GET_PRIVATE (device)->local);
|
||||
return _nml_coerce_property_str_not_empty (NM_DEVICE_IP_TUNNEL_GET_PRIVATE (device)->local);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -121,7 +121,7 @@ nm_device_ip_tunnel_get_remote (NMDeviceIPTunnel *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE_IP_TUNNEL (device), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_DEVICE_IP_TUNNEL_GET_PRIVATE (device)->remote);
|
||||
return _nml_coerce_property_str_not_empty (NM_DEVICE_IP_TUNNEL_GET_PRIVATE (device)->remote);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -186,7 +186,7 @@ nm_device_ip_tunnel_get_input_key (NMDeviceIPTunnel *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE_IP_TUNNEL (device), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_DEVICE_IP_TUNNEL_GET_PRIVATE (device)->input_key);
|
||||
return _nml_coerce_property_str_not_empty (NM_DEVICE_IP_TUNNEL_GET_PRIVATE (device)->input_key);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -202,7 +202,7 @@ nm_device_ip_tunnel_get_output_key (NMDeviceIPTunnel *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE_IP_TUNNEL (device), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_DEVICE_IP_TUNNEL_GET_PRIVATE (device)->output_key);
|
||||
return _nml_coerce_property_str_not_empty (NM_DEVICE_IP_TUNNEL_GET_PRIVATE (device)->output_key);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -28,7 +28,6 @@ typedef struct {
|
||||
char *mode;
|
||||
gboolean no_promisc;
|
||||
gboolean tap;
|
||||
char *hw_address;
|
||||
} NMDeviceMacvlanPrivate;
|
||||
|
||||
struct _NMDeviceMacvlan {
|
||||
@@ -78,7 +77,7 @@ nm_device_macvlan_get_mode (NMDeviceMacvlan *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE_MACVLAN (device), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_DEVICE_MACVLAN_GET_PRIVATE (device)->mode);
|
||||
return _nml_coerce_property_str_not_empty (NM_DEVICE_MACVLAN_GET_PRIVATE (device)->mode);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -127,13 +126,15 @@ nm_device_macvlan_get_tap (NMDeviceMacvlan *device)
|
||||
* device, and must not be modified.
|
||||
*
|
||||
* Since: 1.2
|
||||
*
|
||||
* This property is not implemented yet, and the function always return NULL.
|
||||
**/
|
||||
const char *
|
||||
nm_device_macvlan_get_hw_address (NMDeviceMacvlan *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE_MACVLAN (device), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_DEVICE_MACVLAN_GET_PRIVATE (device)->hw_address);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
@@ -188,7 +189,6 @@ init_dbus (NMObject *object)
|
||||
{ NM_DEVICE_MACVLAN_MODE, &priv->mode },
|
||||
{ NM_DEVICE_MACVLAN_NO_PROMISC, &priv->no_promisc },
|
||||
{ NM_DEVICE_MACVLAN_TAP, &priv->tap },
|
||||
{ NM_DEVICE_MACVLAN_HW_ADDRESS, &priv->hw_address },
|
||||
{ NULL },
|
||||
};
|
||||
|
||||
@@ -205,7 +205,6 @@ finalize (GObject *object)
|
||||
NMDeviceMacvlanPrivate *priv = NM_DEVICE_MACVLAN_GET_PRIVATE (object);
|
||||
|
||||
g_free (priv->mode);
|
||||
g_free (priv->hw_address);
|
||||
g_clear_object (&priv->parent);
|
||||
|
||||
G_OBJECT_CLASS (nm_device_macvlan_parent_class)->finalize (object);
|
||||
@@ -315,6 +314,8 @@ nm_device_macvlan_class_init (NMDeviceMacvlanClass *gre_class)
|
||||
* The hardware (MAC) address of the device.
|
||||
*
|
||||
* Since: 1.2
|
||||
*
|
||||
* This property is not implemented yet, and the function always return NULL.
|
||||
**/
|
||||
obj_properties[PROP_HW_ADDRESS] =
|
||||
g_param_spec_string (NM_DEVICE_MACVLAN_HW_ADDRESS, "", "",
|
||||
|
@@ -55,7 +55,7 @@ nm_device_olpc_mesh_get_hw_address (NMDeviceOlpcMesh *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE_OLPC_MESH (device), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_DEVICE_OLPC_MESH_GET_PRIVATE (device)->hw_address);
|
||||
return _nml_coerce_property_str_not_empty (NM_DEVICE_OLPC_MESH_GET_PRIVATE (device)->hw_address);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -58,7 +58,7 @@ nm_device_team_get_hw_address (NMDeviceTeam *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE_TEAM (device), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_DEVICE_TEAM_GET_PRIVATE (device)->hw_address);
|
||||
return _nml_coerce_property_str_not_empty (NM_DEVICE_TEAM_GET_PRIVATE (device)->hw_address);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -111,7 +111,7 @@ nm_device_team_get_config (NMDeviceTeam *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE_TEAM (device), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_DEVICE_TEAM_GET_PRIVATE (device)->config);
|
||||
return _nml_coerce_property_str_not_empty (NM_DEVICE_TEAM_GET_PRIVATE (device)->config);
|
||||
}
|
||||
|
||||
static const char *
|
||||
|
@@ -67,7 +67,7 @@ nm_device_tun_get_hw_address (NMDeviceTun *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE_TUN (device), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_DEVICE_TUN_GET_PRIVATE (device)->hw_address);
|
||||
return _nml_coerce_property_str_not_empty (NM_DEVICE_TUN_GET_PRIVATE (device)->hw_address);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -85,7 +85,7 @@ nm_device_tun_get_mode (NMDeviceTun *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE_TUN (device), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_DEVICE_TUN_GET_PRIVATE (device)->mode);
|
||||
return _nml_coerce_property_str_not_empty (NM_DEVICE_TUN_GET_PRIVATE (device)->mode);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -58,7 +58,7 @@ nm_device_vlan_get_hw_address (NMDeviceVlan *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE_VLAN (device), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_DEVICE_VLAN_GET_PRIVATE (device)->hw_address);
|
||||
return _nml_coerce_property_str_not_empty (NM_DEVICE_VLAN_GET_PRIVATE (device)->hw_address);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -38,7 +38,6 @@ NM_GOBJECT_PROPERTIES_DEFINE_BASE (
|
||||
typedef struct {
|
||||
NMDevice *parent;
|
||||
char *hw_address;
|
||||
gboolean carrier;
|
||||
guint id;
|
||||
char *group;
|
||||
char *local;
|
||||
@@ -87,7 +86,7 @@ nm_device_vxlan_get_hw_address (NMDeviceVxlan *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE_VXLAN (device), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_DEVICE_VXLAN_GET_PRIVATE (device)->hw_address);
|
||||
return _nml_coerce_property_str_not_empty (NM_DEVICE_VXLAN_GET_PRIVATE (device)->hw_address);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -99,13 +98,16 @@ nm_device_vxlan_get_hw_address (NMDeviceVxlan *device)
|
||||
* Returns: %TRUE if the device has carrier.
|
||||
*
|
||||
* Since: 1.2
|
||||
*
|
||||
* This property is not implemented yet, and the function always returns
|
||||
* FALSE.
|
||||
**/
|
||||
gboolean
|
||||
nm_device_vxlan_get_carrier (NMDeviceVxlan *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE_VXLAN (device), FALSE);
|
||||
|
||||
return NM_DEVICE_VXLAN_GET_PRIVATE (device)->carrier;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -154,7 +156,7 @@ nm_device_vxlan_get_group (NMDeviceVxlan *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE_VXLAN (device), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_DEVICE_VXLAN_GET_PRIVATE (device)->group);
|
||||
return _nml_coerce_property_str_not_empty (NM_DEVICE_VXLAN_GET_PRIVATE (device)->group);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -170,7 +172,7 @@ nm_device_vxlan_get_local (NMDeviceVxlan *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE_VXLAN (device), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_DEVICE_VXLAN_GET_PRIVATE (device)->local);
|
||||
return _nml_coerce_property_str_not_empty (NM_DEVICE_VXLAN_GET_PRIVATE (device)->local);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -415,7 +417,6 @@ init_dbus (NMObject *object)
|
||||
NMDeviceVxlanPrivate *priv = NM_DEVICE_VXLAN_GET_PRIVATE (object);
|
||||
const NMPropertiesInfo property_info[] = {
|
||||
{ NM_DEVICE_VXLAN_HW_ADDRESS, &priv->hw_address },
|
||||
{ NM_DEVICE_VXLAN_CARRIER, &priv->carrier },
|
||||
{ NM_DEVICE_VXLAN_PARENT, &priv->parent, NULL, NM_TYPE_DEVICE },
|
||||
{ NM_DEVICE_VXLAN_ID, &priv->id },
|
||||
{ NM_DEVICE_VXLAN_GROUP, &priv->group },
|
||||
@@ -559,6 +560,8 @@ nm_device_vxlan_class_init (NMDeviceVxlanClass *vxlan_class)
|
||||
* Whether the device has carrier.
|
||||
*
|
||||
* Since: 1.2
|
||||
*
|
||||
* This property is not implemented yet, and the property is always FALSE.
|
||||
**/
|
||||
obj_properties[PROP_CARRIER] =
|
||||
g_param_spec_boolean (NM_DEVICE_VXLAN_CARRIER, "", "",
|
||||
|
@@ -73,7 +73,7 @@ nm_device_wifi_p2p_get_hw_address (NMDeviceWifiP2P *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE_WIFI_P2P (device), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_DEVICE_WIFI_P2P_GET_PRIVATE (device)->hw_address);
|
||||
return _nml_coerce_property_str_not_empty (NM_DEVICE_WIFI_P2P_GET_PRIVATE (device)->hw_address);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -92,7 +92,7 @@ nm_device_wifi_get_hw_address (NMDeviceWifi *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE_WIFI (device), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_DEVICE_WIFI_GET_PRIVATE (device)->hw_address);
|
||||
return _nml_coerce_property_str_not_empty (NM_DEVICE_WIFI_GET_PRIVATE (device)->hw_address);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -109,7 +109,7 @@ nm_device_wifi_get_permanent_hw_address (NMDeviceWifi *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE_WIFI (device), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_DEVICE_WIFI_GET_PRIVATE (device)->perm_hw_address);
|
||||
return _nml_coerce_property_str_not_empty (NM_DEVICE_WIFI_GET_PRIVATE (device)->perm_hw_address);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -50,7 +50,7 @@ nm_device_wpan_get_hw_address (NMDeviceWpan *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE_WPAN (device), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_DEVICE_WPAN_GET_PRIVATE (device)->hw_address);
|
||||
return _nml_coerce_property_str_not_empty (NM_DEVICE_WPAN_GET_PRIVATE (device)->hw_address);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
@@ -609,7 +609,7 @@ nm_device_class_init (NMDeviceClass *device_class)
|
||||
**/
|
||||
obj_properties[PROP_AUTOCONNECT] =
|
||||
g_param_spec_boolean (NM_DEVICE_AUTOCONNECT, "", "",
|
||||
TRUE,
|
||||
FALSE,
|
||||
G_PARAM_READWRITE |
|
||||
G_PARAM_STATIC_STRINGS);
|
||||
|
||||
@@ -797,7 +797,7 @@ nm_device_class_init (NMDeviceClass *device_class)
|
||||
**/
|
||||
obj_properties[PROP_MTU] =
|
||||
g_param_spec_uint (NM_DEVICE_MTU, "", "",
|
||||
0, G_MAXUINT32, 1500,
|
||||
0, G_MAXUINT32, 0,
|
||||
G_PARAM_READABLE |
|
||||
G_PARAM_STATIC_STRINGS);
|
||||
|
||||
@@ -860,7 +860,7 @@ nm_device_get_iface (NMDevice *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE (device), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->iface);
|
||||
return _nml_coerce_property_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->iface);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -878,7 +878,7 @@ nm_device_get_ip_iface (NMDevice *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE (device), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->ip_iface);
|
||||
return _nml_coerce_property_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->ip_iface);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -912,7 +912,7 @@ nm_device_get_udi (NMDevice *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE (device), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->udi);
|
||||
return _nml_coerce_property_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->udi);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -929,7 +929,7 @@ nm_device_get_driver (NMDevice *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE (device), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->driver);
|
||||
return _nml_coerce_property_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->driver);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -946,7 +946,7 @@ nm_device_get_driver_version (NMDevice *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE (device), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->driver_version);
|
||||
return _nml_coerce_property_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->driver_version);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -963,7 +963,7 @@ nm_device_get_firmware_version (NMDevice *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE (device), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->firmware_version);
|
||||
return _nml_coerce_property_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->firmware_version);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -988,7 +988,7 @@ nm_device_get_type_description (NMDevice *device)
|
||||
g_return_val_if_fail (NM_IS_DEVICE (device), NULL);
|
||||
|
||||
if (priv->type_description)
|
||||
return nm_str_not_empty (priv->type_description);
|
||||
return _nml_coerce_property_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);
|
||||
@@ -1001,7 +1001,7 @@ nm_device_get_type_description (NMDevice *device)
|
||||
typename += 8;
|
||||
priv->type_description = g_ascii_strdown (typename, -1);
|
||||
|
||||
return nm_str_not_empty (priv->type_description);
|
||||
return _nml_coerce_property_str_not_empty (priv->type_description);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1861,7 +1861,7 @@ nm_device_get_physical_port_id (NMDevice *device)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_DEVICE (device), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->physical_port_id);
|
||||
return _nml_coerce_property_str_not_empty (NM_DEVICE_GET_PRIVATE (device)->physical_port_id);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -377,7 +377,7 @@ nm_ip_config_get_gateway (NMIPConfig *config)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_IP_CONFIG (config), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_IP_CONFIG_GET_PRIVATE (config)->gateway);
|
||||
return _nml_coerce_property_str_not_empty (NM_IP_CONFIG_GET_PRIVATE (config)->gateway);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -7,6 +7,7 @@
|
||||
#define __NM_LIBNM_UTILS_H__
|
||||
|
||||
#include "nm-types.h"
|
||||
#include "nm-glib-aux/nm-ref-string.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
@@ -106,6 +107,36 @@ void _nml_dbus_log (NMLDBusLogLevel level,
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
static inline const char *
|
||||
_nml_coerce_property_str_not_null (const char *str)
|
||||
{
|
||||
return str ?: "";
|
||||
}
|
||||
|
||||
static inline const char *
|
||||
_nml_coerce_property_str_not_empty (const char *str)
|
||||
{
|
||||
return str && str[0] ? str : NULL;
|
||||
}
|
||||
|
||||
static inline const char *
|
||||
_nml_coerce_property_object_path (NMRefString *path)
|
||||
{
|
||||
if (!path)
|
||||
return NULL;
|
||||
if (nm_streq (path->str, "/"))
|
||||
return NULL;
|
||||
return path->str;
|
||||
}
|
||||
|
||||
static inline const char *const*
|
||||
_nml_coerce_property_strv_not_null (char **strv)
|
||||
{
|
||||
return ((const char *const*) strv) ?: NM_PTRARRAY_EMPTY (const char *);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
char *nm_utils_wincaps_to_dash (const char *caps);
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@@ -436,7 +436,7 @@ nm_manager_get_version (NMManager *manager)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_MANAGER (manager), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_MANAGER_GET_PRIVATE (manager)->version);
|
||||
return _nml_coerce_property_str_not_empty (NM_MANAGER_GET_PRIVATE (manager)->version);
|
||||
}
|
||||
|
||||
NMState
|
||||
|
@@ -67,7 +67,7 @@ nm_vpn_connection_get_banner (NMVpnConnection *vpn)
|
||||
{
|
||||
g_return_val_if_fail (NM_IS_VPN_CONNECTION (vpn), NULL);
|
||||
|
||||
return nm_str_not_empty (NM_VPN_CONNECTION_GET_PRIVATE (vpn)->banner);
|
||||
return _nml_coerce_property_str_not_empty (NM_VPN_CONNECTION_GET_PRIVATE (vpn)->banner);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -49,4 +49,23 @@ nm_ref_string_get_len (NMRefString *rstr)
|
||||
return rstr ? rstr->len : 0u;
|
||||
}
|
||||
|
||||
static inline gboolean
|
||||
NM_IS_REF_STRING (const NMRefString *rstr)
|
||||
{
|
||||
#if NM_MORE_ASSERTS > 10
|
||||
if (rstr) {
|
||||
nm_auto_ref_string NMRefString *r2 = NULL;
|
||||
|
||||
r2 = nm_ref_string_new_len (rstr->str, rstr->len);
|
||||
nm_assert (rstr == r2);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Technically, %NULL is also a valid NMRefString (according to nm_ref_string_new(),
|
||||
* nm_ref_string_get_str() and nm_ref_string_unref()). However, NM_IS_REF_STRING()
|
||||
* does not think so. If callers want to allow %NULL, they need to check
|
||||
* separately. */
|
||||
return !!rstr;
|
||||
}
|
||||
|
||||
#endif /* __NM_REF_STRING_H__ */
|
||||
|
@@ -2393,6 +2393,10 @@ nm_utils_strv_make_deep_copied_n (const char **strv, gsize len)
|
||||
* is negative or zero (in which case %NULL will be returned).
|
||||
* @len: the length of strings in @str. If negative, strv is assumed
|
||||
* to be a NULL terminated array.
|
||||
* @deep_copied: if %TRUE, clones the individual strings. In that case,
|
||||
* the returned array must be freed with g_strfreev(). Otherwise, the
|
||||
* strings themself are not copied. You must take care of who owns the
|
||||
* strings yourself.
|
||||
*
|
||||
* Like g_strdupv(), with two differences:
|
||||
*
|
||||
@@ -2407,10 +2411,13 @@ nm_utils_strv_make_deep_copied_n (const char **strv, gsize len)
|
||||
* array with g_strfreev(). Allowing that would be error prone.
|
||||
*
|
||||
* Returns: (transfer full): a clone of the strv array. Always
|
||||
* %NULL terminated.
|
||||
* %NULL terminated. Depending on @deep_copied, the strings are
|
||||
* cloned or not.
|
||||
*/
|
||||
char **
|
||||
nm_utils_strv_dup (gpointer strv, gssize len)
|
||||
nm_utils_strv_dup (gpointer strv,
|
||||
gssize len,
|
||||
gboolean deep_copied)
|
||||
{
|
||||
gsize i, l;
|
||||
char **v;
|
||||
@@ -2438,7 +2445,10 @@ nm_utils_strv_dup (gpointer strv, gssize len)
|
||||
g_return_val_if_reached (v);
|
||||
}
|
||||
|
||||
v[i] = g_strdup (src[i]);
|
||||
if (deep_copied)
|
||||
v[i] = g_strdup (src[i]);
|
||||
else
|
||||
v[i] = (char *) src[i];
|
||||
}
|
||||
v[l] = NULL;
|
||||
return v;
|
||||
|
@@ -990,7 +990,9 @@ nm_utils_strv_make_deep_copied_nonnull (const char **strv)
|
||||
return nm_utils_strv_make_deep_copied (strv) ?: g_new0 (char *, 1);
|
||||
}
|
||||
|
||||
char **nm_utils_strv_dup (gpointer strv, gssize len);
|
||||
char **nm_utils_strv_dup (gpointer strv,
|
||||
gssize len,
|
||||
gboolean deep_copied);
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
|
@@ -1663,7 +1663,7 @@ set_property (GObject *object,
|
||||
specs = g_slist_prepend (specs, spec);
|
||||
}
|
||||
|
||||
priv->no_auto_default.arr = nm_utils_strv_dup (value_arr, j);
|
||||
priv->no_auto_default.arr = nm_utils_strv_dup (value_arr, j, TRUE);
|
||||
priv->no_auto_default.specs = g_slist_reverse (specs);
|
||||
}
|
||||
break;
|
||||
|
Reference in New Issue
Block a user