summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nm-config.c11
-rw-r--r--src/nm-config.h1
-rw-r--r--src/nm-manager.c6
3 files changed, 16 insertions, 2 deletions
diff --git a/src/nm-config.c b/src/nm-config.c
index 8262d78721..9b484f0638 100644
--- a/src/nm-config.c
+++ b/src/nm-config.c
@@ -2187,6 +2187,7 @@ _nm_config_state_set (NMConfig *self,
#define DEVICE_RUN_STATE_KEYFILE_KEY_DEVICE_ROUTE_METRIC_DEFAULT_ASPIRED "route-metric-default-aspired"
#define DEVICE_RUN_STATE_KEYFILE_KEY_DEVICE_ROUTE_METRIC_DEFAULT_EFFECTIVE "route-metric-default-effective"
#define DEVICE_RUN_STATE_KEYFILE_KEY_DEVICE_ROOT_PATH "root-path"
+#define DEVICE_RUN_STATE_KEYFILE_KEY_DEVICE_NEXT_SERVER "next-server"
NM_UTILS_LOOKUP_STR_DEFINE_STATIC (_device_state_managed_type_to_str, NMConfigDeviceStateManagedType,
NM_UTILS_LOOKUP_DEFAULT_NM_ASSERT ("unknown"),
@@ -2385,6 +2386,7 @@ nm_config_device_state_write (int ifindex,
int nm_owned,
guint32 route_metric_default_aspired,
guint32 route_metric_default_effective,
+ const char *next_server,
const char *root_path)
{
char path[NM_STRLEN (NM_CONFIG_DEVICE_STATE_DIR) + 60];
@@ -2439,6 +2441,12 @@ nm_config_device_state_write (int ifindex,
route_metric_default_aspired);
}
}
+ if (next_server) {
+ g_key_file_set_string (kf,
+ DEVICE_RUN_STATE_KEYFILE_GROUP_DEVICE,
+ DEVICE_RUN_STATE_KEYFILE_KEY_DEVICE_NEXT_SERVER,
+ next_server);
+ }
if (root_path) {
g_key_file_set_string (kf,
DEVICE_RUN_STATE_KEYFILE_GROUP_DEVICE,
@@ -2451,13 +2459,14 @@ nm_config_device_state_write (int ifindex,
g_error_free (local);
return FALSE;
}
- _LOGT ("device-state: write #%d (%s); managed=%s%s%s%s%s%s%s, route-metric-default=%"G_GUINT32_FORMAT"-%"G_GUINT32_FORMAT"%s%s%s",
+ _LOGT ("device-state: write #%d (%s); managed=%s%s%s%s%s%s%s, route-metric-default=%"G_GUINT32_FORMAT"-%"G_GUINT32_FORMAT"%s%s%s%s%s%s",
ifindex, path,
_device_state_managed_type_to_str (managed),
NM_PRINT_FMT_QUOTED (connection_uuid, ", connection-uuid=", connection_uuid, "", ""),
NM_PRINT_FMT_QUOTED (perm_hw_addr_fake, ", perm-hw-addr-fake=", perm_hw_addr_fake, "", ""),
route_metric_default_aspired,
route_metric_default_effective,
+ NM_PRINT_FMT_QUOTED (next_server, ", next-server=", next_server, "", ""),
NM_PRINT_FMT_QUOTED (root_path, ", root-path=", root_path, "", ""));
return TRUE;
}
diff --git a/src/nm-config.h b/src/nm-config.h
index 66f1b69c09..01f85ba79f 100644
--- a/src/nm-config.h
+++ b/src/nm-config.h
@@ -270,6 +270,7 @@ gboolean nm_config_device_state_write (int ifindex,
int nm_owned,
guint32 route_metric_default_aspired,
guint32 route_metric_default_effective,
+ const char *next_server,
const char *root_path);
void nm_config_device_state_prune_unseen (GHashTable *seen_ifindexes);
diff --git a/src/nm-manager.c b/src/nm-manager.c
index b6beb61286..06bf216737 100644
--- a/src/nm-manager.c
+++ b/src/nm-manager.c
@@ -6421,6 +6421,7 @@ nm_manager_write_device_state (NMManager *self, NMDevice *device)
guint32 route_metric_default_effective;
int nm_owned;
NMDhcp4Config *dhcp4_config;
+ const char *next_server = NULL;
const char *root_path = NULL;
ifindex = nm_device_get_ip_ifindex (device);
@@ -6458,8 +6459,10 @@ nm_manager_write_device_state (NMManager *self, NMDevice *device)
TRUE, &route_metric_default_aspired);
dhcp4_config = nm_device_get_dhcp4_config (device);
- if (dhcp4_config)
+ if (dhcp4_config) {
root_path = nm_dhcp4_config_get_option (dhcp4_config, "root_path");
+ next_server = nm_dhcp4_config_get_option (dhcp4_config, "next_server");
+ }
return nm_config_device_state_write (ifindex,
managed_type,
@@ -6468,6 +6471,7 @@ nm_manager_write_device_state (NMManager *self, NMDevice *device)
nm_owned,
route_metric_default_aspired,
route_metric_default_effective,
+ next_server,
root_path);
}