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
This commit is contained in:
Dan Williams
2008-10-30 04:31:29 +00:00
parent bfb7243663
commit b955a8197e
3 changed files with 36 additions and 0 deletions

View File

@@ -1,3 +1,17 @@
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
2008-10-29 Dan Williams <dcbw@redhat.com> 2008-10-29 Dan Williams <dcbw@redhat.com>
* libnm-util/libnm-util.ver * libnm-util/libnm-util.ver

View File

@@ -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 (*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) { if (!priv->ppp_manager) {
/* Regular ethernet connection. */ /* Regular ethernet connection. */
@@ -1356,9 +1357,17 @@ real_act_stage4_get_ip4_config (NMDevice *device,
nm_ip4_config_set_mtu (*config, mtu); nm_ip4_config_set_mtu (*config, mtu);
} }
} else { } 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 */ /* PPPoE */
*config = priv->pending_ip4_config; *config = priv->pending_ip4_config;
priv->pending_ip4_config = NULL; priv->pending_ip4_config = NULL;
nm_utils_merge_ip4_config (*config, s_ip4);
ret = NM_ACT_STAGE_RETURN_SUCCESS; ret = NM_ACT_STAGE_RETURN_SUCCESS;
} }

View File

@@ -21,6 +21,7 @@
#include "nm-marshal.h" #include "nm-marshal.h"
#include "nm-utils.h" #include "nm-utils.h"
#include "nm-serial-device-glue.h" #include "nm-serial-device-glue.h"
#include "NetworkManagerUtils.h"
static gboolean serial_debug = FALSE; static gboolean serial_debug = FALSE;
@@ -1057,9 +1058,21 @@ real_act_stage4_get_ip4_config (NMDevice *device,
NMDeviceStateReason *reason) NMDeviceStateReason *reason)
{ {
NMSerialDevicePrivate *priv = NM_SERIAL_DEVICE_GET_PRIVATE (device); 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; *config = priv->pending_ip4_config;
priv->pending_ip4_config = NULL; priv->pending_ip4_config = NULL;
nm_utils_merge_ip4_config (*config, s_ip4);
return NM_ACT_STAGE_RETURN_SUCCESS; return NM_ACT_STAGE_RETURN_SUCCESS;
} }