summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2008-10-30 04:31:29 +0000
committerDan Williams <dcbw@redhat.com>2008-10-30 04:31:29 +0000
commitb955a8197e07b71f10942c3f1a197f5f1b3b0f90 (patch)
tree134707b4b9f7a2639c31274b1b6e46556830ce11 /src
parentbfb72436631fcfc07478d7474b88959471b17e9a (diff)
downloadNetworkManager-b955a8197e07b71f10942c3f1a197f5f1b3b0f90.tar.gz
2008-10-30 Dan Williams <dcbw@redhat.com>
Patch from Alexander Sack <asac@canonical.com> Fix "ppp connections don't honour ip4 connection settings" * src/nm-device-ethernet.c - (real_act_stage4_get_ip4_config): merge ip4config settings with results from ppp manager * src/nm-serial-device.c - (real_act_stage4_get_ip4_config): merge ip4config settings with results from ppp manager git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4234 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
Diffstat (limited to 'src')
-rw-r--r--src/nm-device-ethernet.c9
-rw-r--r--src/nm-serial-device.c13
2 files changed, 22 insertions, 0 deletions
diff --git a/src/nm-device-ethernet.c b/src/nm-device-ethernet.c
index 4ef4ee1e42..7f8fa9a839 100644
--- a/src/nm-device-ethernet.c
+++ b/src/nm-device-ethernet.c
@@ -1333,6 +1333,7 @@ real_act_stage4_get_ip4_config (NMDevice *device,
g_return_val_if_fail (config != NULL, NM_ACT_STAGE_RETURN_FAILURE);
g_return_val_if_fail (*config == NULL, NM_ACT_STAGE_RETURN_FAILURE);
+ g_return_val_if_fail (reason != NULL, NM_ACT_STAGE_RETURN_FAILURE);
if (!priv->ppp_manager) {
/* Regular ethernet connection. */
@@ -1356,9 +1357,17 @@ real_act_stage4_get_ip4_config (NMDevice *device,
nm_ip4_config_set_mtu (*config, mtu);
}
} else {
+ NMConnection *connection;
+ NMSettingIP4Config *s_ip4;
+
+ connection = nm_act_request_get_connection (nm_device_get_act_request (device));
+ g_assert (connection);
+ s_ip4 = (NMSettingIP4Config *) nm_connection_get_setting (connection, NM_TYPE_SETTING_IP4_CONFIG);
+
/* PPPoE */
*config = priv->pending_ip4_config;
priv->pending_ip4_config = NULL;
+ nm_utils_merge_ip4_config (*config, s_ip4);
ret = NM_ACT_STAGE_RETURN_SUCCESS;
}
diff --git a/src/nm-serial-device.c b/src/nm-serial-device.c
index 4b3c102b6d..eeea3b7556 100644
--- a/src/nm-serial-device.c
+++ b/src/nm-serial-device.c
@@ -21,6 +21,7 @@
#include "nm-marshal.h"
#include "nm-utils.h"
#include "nm-serial-device-glue.h"
+#include "NetworkManagerUtils.h"
static gboolean serial_debug = FALSE;
@@ -1057,9 +1058,21 @@ real_act_stage4_get_ip4_config (NMDevice *device,
NMDeviceStateReason *reason)
{
NMSerialDevicePrivate *priv = NM_SERIAL_DEVICE_GET_PRIVATE (device);
+ NMConnection *connection;
+ NMSettingIP4Config *s_ip4;
+
+ g_return_val_if_fail (config != NULL, NM_ACT_STAGE_RETURN_FAILURE);
+ g_return_val_if_fail (*config == NULL, NM_ACT_STAGE_RETURN_FAILURE);
+ g_return_val_if_fail (reason != NULL, NM_ACT_STAGE_RETURN_FAILURE);
+
+ connection = nm_act_request_get_connection (nm_device_get_act_request (device));
+ g_assert (connection);
+
+ s_ip4 = (NMSettingIP4Config *) nm_connection_get_setting (connection, NM_TYPE_SETTING_IP4_CONFIG);
*config = priv->pending_ip4_config;
priv->pending_ip4_config = NULL;
+ nm_utils_merge_ip4_config (*config, s_ip4);
return NM_ACT_STAGE_RETURN_SUCCESS;
}