summary refs log tree commit diff
path: root/libnm-core/nm-setting-bridge.c
diff options
context:
space:
mode:
Diffstat (limited to 'libnm-core/nm-setting-bridge.c')
-rw-r--r--libnm-core/nm-setting-bridge.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/libnm-core/nm-setting-bridge.c b/libnm-core/nm-setting-bridge.c
index 51c6ac5a..d00271b7 100644
--- a/libnm-core/nm-setting-bridge.c
+++ b/libnm-core/nm-setting-bridge.c
@@ -196,10 +196,14 @@ static inline gboolean
 check_range (guint32 val,
              guint32 min,
              guint32 max,
+             gboolean zero,
              const char *prop,
              GError **error)
 {
-	if ((val != 0) && (val < min || val > max)) {
+	if (zero && val == 0)
+		return TRUE;
+
+	if (val < min || val > max) {
 		g_set_error (error,
 		             NM_CONNECTION_ERROR,
 		             NM_CONNECTION_ERROR_INVALID_PROPERTY,
@@ -228,6 +232,7 @@ verify (NMSetting *setting, NMConnection *connection, GError **error)
 	if (!check_range (priv->forward_delay,
 	                  BR_MIN_FORWARD_DELAY,
 	                  BR_MAX_FORWARD_DELAY,
+	                  !priv->stp,
 	                  NM_SETTING_BRIDGE_FORWARD_DELAY,
 	                  error))
 		return FALSE;
@@ -235,6 +240,7 @@ verify (NMSetting *setting, NMConnection *connection, GError **error)
 	if (!check_range (priv->hello_time,
 	                  BR_MIN_HELLO_TIME,
 	                  BR_MAX_HELLO_TIME,
+	                  !priv->stp,
 	                  NM_SETTING_BRIDGE_HELLO_TIME,
 	                  error))
 		return FALSE;
@@ -242,6 +248,7 @@ verify (NMSetting *setting, NMConnection *connection, GError **error)
 	if (!check_range (priv->max_age,
 	                  BR_MIN_MAX_AGE,
 	                  BR_MAX_MAX_AGE,
+	                  !priv->stp,
 	                  NM_SETTING_BRIDGE_MAX_AGE,
 	                  error))
 		return FALSE;
@@ -249,6 +256,7 @@ verify (NMSetting *setting, NMConnection *connection, GError **error)
 	if (!check_range (priv->ageing_time,
 	                  BR_MIN_AGEING_TIME,
 	                  BR_MAX_AGEING_TIME,
+	                  !priv->stp,
 	                  NM_SETTING_BRIDGE_AGEING_TIME,
 	                  error))
 		return FALSE;