mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-01-06 05:00:15 +01:00
device: use NMSettings directly instead of NMConnectionProvider in subclasses
Instead of accessing the singleton getter nm_settings_get(), obtain the settings instance from the device instance itself via nm_device_get_settings().
This commit is contained in:
parent
b9fc9cd389
commit
8e1443457d
11 changed files with 78 additions and 51 deletions
|
|
@ -25,30 +25,26 @@
|
|||
#include "nm-device-ethernet-utils.h"
|
||||
|
||||
char *
|
||||
nm_device_ethernet_utils_get_default_wired_name (const GSList *connections)
|
||||
nm_device_ethernet_utils_get_default_wired_name (NMConnection *const *connections)
|
||||
{
|
||||
const GSList *iter;
|
||||
char *cname = NULL;
|
||||
int i = 0;
|
||||
char *temp;
|
||||
guint j;
|
||||
int i;
|
||||
|
||||
/* Find the next available unique connection name */
|
||||
while (!cname && (i++ < 10000)) {
|
||||
char *temp;
|
||||
gboolean found = FALSE;
|
||||
|
||||
for (i = 1; i <= 10000; i++) {
|
||||
temp = g_strdup_printf (_("Wired connection %d"), i);
|
||||
for (iter = connections; iter; iter = iter->next) {
|
||||
if (g_strcmp0 (nm_connection_get_id (NM_CONNECTION (iter->data)), temp) == 0) {
|
||||
found = TRUE;
|
||||
for (j = 0; connections[j]; j++) {
|
||||
if (nm_streq0 (nm_connection_get_id (connections[j]), temp)) {
|
||||
g_free (temp);
|
||||
break;
|
||||
goto next;
|
||||
}
|
||||
}
|
||||
|
||||
if (found == FALSE)
|
||||
cname = temp;
|
||||
return temp;
|
||||
next:
|
||||
;
|
||||
}
|
||||
|
||||
return cname;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -19,8 +19,6 @@
|
|||
#ifndef __NETWORKMANAGER_DEVICE_ETHERNET_UTILS_H__
|
||||
#define __NETWORKMANAGER_DEVICE_ETHERNET_UTILS_H__
|
||||
|
||||
#include "nm-default.h"
|
||||
|
||||
char *nm_device_ethernet_utils_get_default_wired_name (const GSList *connections);
|
||||
char *nm_device_ethernet_utils_get_default_wired_name (NMConnection *const *connections);
|
||||
|
||||
#endif /* NETWORKMANAGER_DEVICE_ETHERNET_UTILS_H */
|
||||
|
|
|
|||
|
|
@ -21,6 +21,8 @@
|
|||
|
||||
#include "nm-default.h"
|
||||
|
||||
#include "nm-device-ethernet.h"
|
||||
|
||||
#include <netinet/in.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
|
@ -29,7 +31,6 @@
|
|||
|
||||
#include <gudev/gudev.h>
|
||||
|
||||
#include "nm-device-ethernet.h"
|
||||
#include "nm-device-private.h"
|
||||
#include "nm-activation-request.h"
|
||||
#include "NetworkManagerUtils.h"
|
||||
|
|
@ -44,7 +45,7 @@
|
|||
#include "nm-settings-connection.h"
|
||||
#include "nm-config.h"
|
||||
#include "nm-device-ethernet-utils.h"
|
||||
#include "nm-connection-provider.h"
|
||||
#include "nm-settings.h"
|
||||
#include "nm-device-factory.h"
|
||||
#include "nm-core-internal.h"
|
||||
#include "NetworkManagerUtils.h"
|
||||
|
|
@ -1435,7 +1436,7 @@ static NMConnection *
|
|||
new_default_connection (NMDevice *self)
|
||||
{
|
||||
NMConnection *connection;
|
||||
const GSList *connections;
|
||||
NMSettingsConnection *const*connections;
|
||||
NMSetting *setting;
|
||||
const char *hw_address;
|
||||
gs_free char *defname = NULL;
|
||||
|
|
@ -1453,8 +1454,8 @@ new_default_connection (NMDevice *self)
|
|||
setting = nm_setting_connection_new ();
|
||||
nm_connection_add_setting (connection, setting);
|
||||
|
||||
connections = nm_connection_provider_get_connections (nm_connection_provider_get ());
|
||||
defname = nm_device_ethernet_utils_get_default_wired_name (connections);
|
||||
connections = nm_settings_get_connections (nm_device_get_settings (self), NULL);
|
||||
defname = nm_device_ethernet_utils_get_default_wired_name ((NMConnection *const*) connections);
|
||||
if (!defname)
|
||||
return NULL;
|
||||
|
||||
|
|
|
|||
|
|
@ -20,19 +20,20 @@
|
|||
|
||||
#include "nm-default.h"
|
||||
|
||||
#include "nm-device-ip-tunnel.h"
|
||||
|
||||
#include <string.h>
|
||||
#include <netinet/in.h>
|
||||
#include <linux/if.h>
|
||||
#include <linux/ip.h>
|
||||
#include <linux/if_tunnel.h>
|
||||
|
||||
#include "nm-device-ip-tunnel.h"
|
||||
#include "nm-device-private.h"
|
||||
#include "nm-manager.h"
|
||||
#include "nm-platform.h"
|
||||
#include "nm-device-factory.h"
|
||||
#include "nm-core-internal.h"
|
||||
#include "nm-connection-provider.h"
|
||||
#include "nm-settings.h"
|
||||
#include "nm-activation-request.h"
|
||||
#include "nm-ip4-config.h"
|
||||
|
||||
|
|
@ -385,8 +386,8 @@ update_connection (NMDevice *device, NMConnection *connection)
|
|||
NMConnection *parent_connection;
|
||||
|
||||
/* Don't change a parent specified by UUID if it's still valid */
|
||||
parent_connection = nm_connection_provider_get_connection_by_uuid (nm_connection_provider_get (),
|
||||
setting_parent);
|
||||
parent_connection = (NMConnection *) nm_settings_get_connection_by_uuid (nm_device_get_settings (device),
|
||||
setting_parent);
|
||||
if (parent_connection && nm_device_check_connection_compatible (parent, parent_connection))
|
||||
new_parent = NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,11 +20,12 @@
|
|||
|
||||
#include "nm-default.h"
|
||||
|
||||
#include "nm-device-macvlan.h"
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#include "nm-device-macvlan.h"
|
||||
#include "nm-device-private.h"
|
||||
#include "nm-connection-provider.h"
|
||||
#include "nm-settings.h"
|
||||
#include "nm-activation-request.h"
|
||||
#include "nm-manager.h"
|
||||
#include "nm-platform.h"
|
||||
|
|
@ -488,7 +489,7 @@ update_connection (NMDevice *device, NMConnection *connection)
|
|||
NMConnection *parent_connection;
|
||||
|
||||
/* Don't change a parent specified by UUID if it's still valid */
|
||||
parent_connection = nm_connection_provider_get_connection_by_uuid (nm_connection_provider_get (), setting_parent);
|
||||
parent_connection = (NMConnection *) nm_settings_get_connection_by_uuid (nm_device_get_settings (device), setting_parent);
|
||||
if (parent_connection && nm_device_check_connection_compatible (priv->parent, parent_connection))
|
||||
new_parent = NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,6 +42,8 @@ enum NMActStageReturn {
|
|||
|
||||
#define NM_DEVICE_CAP_INTERNAL_MASK 0xc0000000
|
||||
|
||||
NMSettings *nm_device_get_settings (NMDevice *self);
|
||||
|
||||
void nm_device_set_ip_iface (NMDevice *self, const char *iface);
|
||||
|
||||
void nm_device_activate_schedule_stage3_ip_config_start (NMDevice *device);
|
||||
|
|
|
|||
|
|
@ -20,15 +20,16 @@
|
|||
|
||||
#include "nm-default.h"
|
||||
|
||||
#include "nm-device-vlan.h"
|
||||
|
||||
#include <sys/socket.h>
|
||||
|
||||
#include "nm-device-vlan.h"
|
||||
#include "nm-manager.h"
|
||||
#include "nm-utils.h"
|
||||
#include "NetworkManagerUtils.h"
|
||||
#include "nm-device-private.h"
|
||||
#include "nm-enum-types.h"
|
||||
#include "nm-connection-provider.h"
|
||||
#include "nm-settings.h"
|
||||
#include "nm-activation-request.h"
|
||||
#include "nm-ip4-config.h"
|
||||
#include "nm-platform.h"
|
||||
|
|
@ -515,7 +516,7 @@ update_connection (NMDevice *device, NMConnection *connection)
|
|||
NMConnection *parent_connection;
|
||||
|
||||
/* Don't change a parent specified by UUID if it's still valid */
|
||||
parent_connection = nm_connection_provider_get_connection_by_uuid (nm_connection_provider_get (), setting_parent);
|
||||
parent_connection = (NMConnection *) nm_settings_get_connection_by_uuid (nm_device_get_settings (device), setting_parent);
|
||||
if (parent_connection && nm_device_check_connection_compatible (priv->parent, parent_connection))
|
||||
new_parent = NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,9 +20,10 @@
|
|||
|
||||
#include "nm-default.h"
|
||||
|
||||
#include "nm-device-vxlan.h"
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#include "nm-device-vxlan.h"
|
||||
#include "nm-device-private.h"
|
||||
#include "nm-manager.h"
|
||||
#include "nm-platform.h"
|
||||
|
|
@ -30,7 +31,7 @@
|
|||
#include "nm-device-factory.h"
|
||||
#include "nm-setting-vxlan.h"
|
||||
#include "nm-setting-wired.h"
|
||||
#include "nm-connection-provider.h"
|
||||
#include "nm-settings.h"
|
||||
#include "nm-activation-request.h"
|
||||
#include "nm-ip4-config.h"
|
||||
|
||||
|
|
@ -411,8 +412,8 @@ update_connection (NMDevice *device, NMConnection *connection)
|
|||
NMConnection *parent_connection;
|
||||
|
||||
/* Don't change a parent specified by UUID if it's still valid */
|
||||
parent_connection = nm_connection_provider_get_connection_by_uuid (nm_connection_provider_get (),
|
||||
setting_parent);
|
||||
parent_connection = (NMConnection *) nm_settings_get_connection_by_uuid (nm_device_get_settings (device),
|
||||
setting_parent);
|
||||
if (parent_connection && nm_device_check_connection_compatible (parent, parent_connection))
|
||||
new_parent = NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -550,6 +550,12 @@ NM_UTILS_LOOKUP_STR_DEFINE_STATIC (_reason_to_string, NMDeviceStateReason,
|
|||
|
||||
/***********************************************************/
|
||||
|
||||
NMSettings *
|
||||
nm_device_get_settings (NMDevice *self)
|
||||
{
|
||||
return NM_DEVICE_GET_PRIVATE (self)->settings;
|
||||
}
|
||||
|
||||
static void
|
||||
init_ip4_config_dns_priority (NMDevice *self, NMIP4Config *config)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -21,13 +21,14 @@
|
|||
|
||||
#include "nm-default.h"
|
||||
|
||||
#include "nm-device-wifi.h"
|
||||
|
||||
#include <netinet/in.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include "nm-device.h"
|
||||
#include "nm-device-wifi.h"
|
||||
#include "nm-device-private.h"
|
||||
#include "nm-utils.h"
|
||||
#include "NetworkManagerUtils.h"
|
||||
|
|
@ -45,8 +46,9 @@
|
|||
#include "nm-platform.h"
|
||||
#include "nm-auth-utils.h"
|
||||
#include "nm-settings-connection.h"
|
||||
#include "nm-enum-types.h"
|
||||
#include "nm-settings.h"
|
||||
#include "nm-connection-provider.h"
|
||||
#include "nm-enum-types.h"
|
||||
#include "nm-core-internal.h"
|
||||
#include "nm-config.h"
|
||||
|
||||
|
|
@ -1224,7 +1226,7 @@ build_hidden_probe_list (NMDeviceWifi *self)
|
|||
if (G_UNLIKELY (nullssid == NULL))
|
||||
nullssid = g_byte_array_new ();
|
||||
|
||||
connections = nm_connection_provider_get_best_connections (nm_connection_provider_get (),
|
||||
connections = nm_connection_provider_get_best_connections ((NMConnectionProvider *) nm_device_get_settings ((NMDevice *) self),
|
||||
max_scan_ssids - 1,
|
||||
NM_SETTING_WIRELESS_SETTING_NAME,
|
||||
NULL,
|
||||
|
|
@ -1456,10 +1458,12 @@ schedule_ap_list_dump (NMDeviceWifi *self)
|
|||
}
|
||||
|
||||
static void
|
||||
try_fill_ssid_for_hidden_ap (NMAccessPoint *ap)
|
||||
try_fill_ssid_for_hidden_ap (NMDeviceWifi *self,
|
||||
NMAccessPoint *ap)
|
||||
{
|
||||
const char *bssid;
|
||||
const GSList *connections, *iter;
|
||||
NMSettingsConnection *const*connections;
|
||||
guint i;
|
||||
|
||||
g_return_if_fail (nm_ap_get_ssid (ap) == NULL);
|
||||
|
||||
|
|
@ -1468,9 +1472,9 @@ try_fill_ssid_for_hidden_ap (NMAccessPoint *ap)
|
|||
|
||||
/* Look for this AP's BSSID in the seen-bssids list of a connection,
|
||||
* and if a match is found, copy over the SSID */
|
||||
connections = nm_connection_provider_get_connections (nm_connection_provider_get ());
|
||||
for (iter = connections; iter; iter = g_slist_next (iter)) {
|
||||
NMConnection *connection = NM_CONNECTION (iter->data);
|
||||
connections = nm_settings_get_connections (nm_device_get_settings ((NMDevice *) self), NULL);
|
||||
for (i = 0; connections[i]; i++) {
|
||||
NMConnection *connection = (NMConnection *) connections[i];
|
||||
NMSettingWireless *s_wifi;
|
||||
|
||||
s_wifi = nm_connection_get_setting_wireless (connection);
|
||||
|
|
@ -1520,7 +1524,7 @@ supplicant_iface_new_bss_cb (NMSupplicantInterface *iface,
|
|||
ssid = nm_ap_get_ssid (ap);
|
||||
if (!ssid || nm_utils_is_empty_ssid (ssid->data, ssid->len)) {
|
||||
/* Try to fill the SSID from the AP database */
|
||||
try_fill_ssid_for_hidden_ap (ap);
|
||||
try_fill_ssid_for_hidden_ap (self, ap);
|
||||
|
||||
ssid = nm_ap_get_ssid (ap);
|
||||
if (ssid && (nm_utils_is_empty_ssid (ssid->data, ssid->len) == FALSE)) {
|
||||
|
|
|
|||
|
|
@ -41,12 +41,28 @@ _new_connection (const char *id)
|
|||
|
||||
/*******************************************/
|
||||
|
||||
static char *
|
||||
_get_default_wired_name (GSList *list)
|
||||
{
|
||||
gs_free NMConnection **v = NULL;
|
||||
guint l, i;
|
||||
|
||||
l = g_slist_length (list);
|
||||
v = g_new0 (NMConnection *, l + 1);
|
||||
for (i = 0; list; list = list->next, i++)
|
||||
v[i] = NM_CONNECTION (list->data);
|
||||
g_assert (i == l);
|
||||
return nm_device_ethernet_utils_get_default_wired_name (v);
|
||||
}
|
||||
|
||||
/*******************************************/
|
||||
|
||||
static void
|
||||
test_defname_no_connections (void)
|
||||
{
|
||||
gs_free char *name = NULL;
|
||||
|
||||
name = nm_device_ethernet_utils_get_default_wired_name (NULL);
|
||||
name = _get_default_wired_name (NULL);
|
||||
g_assert_cmpstr (name, ==, "Wired connection 1");
|
||||
}
|
||||
|
||||
|
|
@ -62,7 +78,7 @@ test_defname_no_conflict (void)
|
|||
list = g_slist_append (list, _new_connection ("work wifi"));
|
||||
list = g_slist_append (list, _new_connection ("random gsm connection"));
|
||||
|
||||
name = nm_device_ethernet_utils_get_default_wired_name (list);
|
||||
name = _get_default_wired_name (list);
|
||||
g_assert_cmpstr (name, ==, "Wired connection 1");
|
||||
|
||||
g_slist_free_full (list, g_object_unref);
|
||||
|
|
@ -80,7 +96,7 @@ test_defname_conflict (void)
|
|||
list = g_slist_append (list, _new_connection ("Wired connection 1"));
|
||||
list = g_slist_append (list, _new_connection ("random gsm connection"));
|
||||
|
||||
name = nm_device_ethernet_utils_get_default_wired_name (list);
|
||||
name = _get_default_wired_name (list);
|
||||
g_assert_cmpstr (name, ==, "Wired connection 2");
|
||||
|
||||
g_slist_free_full (list, g_object_unref);
|
||||
|
|
@ -102,7 +118,7 @@ test_defname_multiple_conflicts (void)
|
|||
list = g_slist_append (list, _new_connection ("work wifi"));
|
||||
list = g_slist_append (list, _new_connection ("a vpn"));
|
||||
|
||||
name = nm_device_ethernet_utils_get_default_wired_name (list);
|
||||
name = _get_default_wired_name (list);
|
||||
g_assert_cmpstr (name, ==, "Wired connection 4");
|
||||
|
||||
g_slist_free_full (list, g_object_unref);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue