about summary refs log tree commit diff
path: root/libnm-util/nm-setting-bond.c
diff options
context:
space:
mode:
Diffstat (limited to 'libnm-util/nm-setting-bond.c')
-rw-r--r--libnm-util/nm-setting-bond.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/libnm-util/nm-setting-bond.c b/libnm-util/nm-setting-bond.c
index a3dbd766..e8e7b639 100644
--- a/libnm-util/nm-setting-bond.c
+++ b/libnm-util/nm-setting-bond.c
@@ -257,11 +257,16 @@ gboolean nm_setting_bond_add_option (NMSettingBond *setting,
 
 	g_hash_table_insert (priv->options, g_strdup (name), g_strdup (value));
 
-	if (!strcmp (name, NM_SETTING_BOND_OPTION_MIIMON)) {
+	if (   !strcmp (name, NM_SETTING_BOND_OPTION_MIIMON)
+	    && strcmp (value, "0") != 0) {
 		g_hash_table_remove (priv->options, NM_SETTING_BOND_OPTION_ARP_INTERVAL);
 		g_hash_table_remove (priv->options, NM_SETTING_BOND_OPTION_ARP_IP_TARGET);
-	} else if (!strcmp (name, NM_SETTING_BOND_OPTION_ARP_INTERVAL))
+	} else if (   !strcmp (name, NM_SETTING_BOND_OPTION_ARP_INTERVAL)
+	           && strcmp (value, "0") != 0) {
 		g_hash_table_remove (priv->options, NM_SETTING_BOND_OPTION_MIIMON);
+		g_hash_table_remove (priv->options, NM_SETTING_BOND_OPTION_DOWNDELAY);
+		g_hash_table_remove (priv->options, NM_SETTING_BOND_OPTION_UPDELAY);
+	}
 
 	return TRUE;
 }
@@ -293,7 +298,7 @@ nm_setting_bond_remove_option (NMSettingBond *setting,
  *
  * Returns a list of valid bond options.
  *
- * Returns: (transfer none): a NULL-terminated array of strings of valid bond options.
+ * Returns: (transfer none): a %NULL-terminated array of strings of valid bond options.
  **/
 const char **
 nm_setting_bond_get_valid_options  (NMSettingBond *setting)