diff options
| author | Michael Biebl <biebl@debian.org> | 2017-01-23 23:35:34 +0100 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2017-01-23 23:35:34 +0100 |
| commit | 892c1a56bfb94fa4c0409673ca5a762d1ba67a78 (patch) | |
| tree | 8b61046eaf26867082441804828160a44f5b33c0 /src/nm-act-request.c | |
| parent | f759d9a648636660552008595fb7b100a3fc2b64 (diff) | |
| parent | d462f64d6044349b0a4e3581cf2c97bbab7aec97 (diff) | |
Merge tag 'upstream/1.5.91' into experimental
Upstream version 1.5.91
Diffstat (limited to 'src/nm-act-request.c')
| -rw-r--r-- | src/nm-act-request.c | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/src/nm-act-request.c b/src/nm-act-request.c index 3a04667b..03964896 100644 --- a/src/nm-act-request.c +++ b/src/nm-act-request.c @@ -495,31 +495,39 @@ static void get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { + NMActiveConnection *active; NMDevice *device; - - device = nm_active_connection_get_device (NM_ACTIVE_CONNECTION (object)); - if (!device) { - g_value_set_string (value, "/"); - return; - } + char *name; switch (prop_id) { case PROP_IP4_CONFIG: - g_object_get_property (G_OBJECT (device), NM_DEVICE_IP4_CONFIG, value); + name = NM_DEVICE_IP4_CONFIG; break; case PROP_DHCP4_CONFIG: - g_object_get_property (G_OBJECT (device), NM_DEVICE_DHCP4_CONFIG, value); + name = NM_DEVICE_DHCP4_CONFIG; break; case PROP_IP6_CONFIG: - g_object_get_property (G_OBJECT (device), NM_DEVICE_IP6_CONFIG, value); + name = NM_DEVICE_IP6_CONFIG; break; case PROP_DHCP6_CONFIG: - g_object_get_property (G_OBJECT (device), NM_DEVICE_DHCP6_CONFIG, value); + name = NM_DEVICE_DHCP6_CONFIG; break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; + return; } + + active = NM_ACTIVE_CONNECTION (object); + device = nm_active_connection_get_device (active); + if ( !device + || !NM_IN_SET (nm_active_connection_get_state (active), + NM_ACTIVE_CONNECTION_STATE_ACTIVATED, + NM_ACTIVE_CONNECTION_STATE_DEACTIVATING)) { + g_value_set_string (value, "/"); + return; + } + + g_object_get_property (G_OBJECT (device), name, value); } static void |