summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBeniamino Galvani <bgalvani@redhat.com>2017-11-25 11:36:55 +0100
committerBeniamino Galvani <bgalvani@redhat.com>2017-11-27 11:12:21 +0100
commit48ff789e8bf991e1ba9fdfea3d19e14a6f395517 (patch)
treec4d6096a48b78a62fef180cd13bf50b0be7e6d52
parentd2d10ad18b3711805e2fba486d671da34e7e5067 (diff)
downloadNetworkManager-bg/ppp-rh1515829.tar.gz
device: ppp: chain up to parent for non-auto IP methodsbg/ppp-rh1515829
The PPP device only handles automatic configuration, everything else should be handled by NMDevice.
-rw-r--r--src/devices/nm-device-ppp.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/devices/nm-device-ppp.c b/src/devices/nm-device-ppp.c
index a8ae7e309d..aa3fe0553b 100644
--- a/src/devices/nm-device-ppp.c
+++ b/src/devices/nm-device-ppp.c
@@ -21,6 +21,7 @@
#include "nm-device-private.h"
#include "nm-manager.h"
#include "nm-setting-pppoe.h"
+#include "nm-setting-ip4-config.h"
#include "platform/nm-platform.h"
#include "ppp/nm-ppp-manager.h"
#include "ppp/nm-ppp-manager-call.h"
@@ -199,9 +200,20 @@ act_stage3_ip4_config_start (NMDevice *device,
{
NMDevicePpp *self = NM_DEVICE_PPP (device);
NMDevicePppPrivate *priv = NM_DEVICE_PPP_GET_PRIVATE (self);
+ NMSettingIPConfig *s_ip4;
+ NMDeviceClass *dev_class;
_LOGT (LOGD_DEVICE | LOGD_PPP, "ip4 config start");
+ s_ip4 = (NMSettingIPConfig *) nm_device_get_applied_setting (device, NM_TYPE_SETTING_IP4_CONFIG);
+ if (!nm_streq0 (nm_setting_ip_config_get_method (s_ip4),
+ NM_SETTING_IP4_CONFIG_METHOD_AUTO)) {
+ dev_class = NM_DEVICE_CLASS (nm_device_ppp_parent_class);
+ return dev_class->act_stage3_ip4_config_start (device,
+ out_config,
+ out_failure_reason);
+ }
+
if (priv->ip4_config) {
if (out_config)
*out_config = g_steal_pointer (&priv->ip4_config);