Browse Source

Merge pull request #2491 from zerotier/fix/standardize-linkSelectMethod-naming

fix: standardize bond link selection method JSON field naming
Joseph Henry 1 week ago
parent
commit
a8ead37312
1 changed files with 11 additions and 1 deletions
  1. 11 1
      service/OneService.cpp

+ 11 - 1
service/OneService.cpp

@@ -2612,7 +2612,17 @@ class OneServiceImpl : public OneService {
 					}
 					_node->bondController()->addCustomLink(customPolicyStr, new Link(linkNameStr, ipvPref, mtu, capacity, enabled, linkMode, failoverToStr));
 				}
-				std::string linkSelectMethodStr(OSUtils::jsonString(customPolicy["activeReselect"], "always"));
+				// Check for new field name first, fall back to legacy field name for backward compatibility
+				std::string linkSelectMethodStr;
+				if (customPolicy.contains("linkSelectMethod")) {
+					linkSelectMethodStr = OSUtils::jsonString(customPolicy["linkSelectMethod"], "always");
+				} else {
+					linkSelectMethodStr = OSUtils::jsonString(customPolicy["activeReselect"], "always");
+					if (customPolicy.contains("activeReselect")) {
+						fprintf(stderr, "warning: 'activeReselect' is deprecated, please use 'linkSelectMethod' instead in policy '%s'\n", customPolicyStr.c_str());
+					}
+				}
+				
 				if (linkSelectMethodStr == "always") {
 					newTemplateBond->setLinkSelectMethod(ZT_BOND_RESELECTION_POLICY_ALWAYS);
 				}