From 815c20c8222f18d32623dca7ed7eb76774db2e47 Mon Sep 17 00:00:00 2001 From: Lennon Day Reynolds Date: Thu, 17 Jul 2025 15:22:30 -0700 Subject: [PATCH 1/2] windows installer changes: add auto-startup shortcut for UI and auto-restart backend on failure --- .gitignore | 1 + ext/installfiles/windows/ZeroTier One.aip | 55 +++++++++++++++-------- 2 files changed, 37 insertions(+), 19 deletions(-) diff --git a/.gitignore b/.gitignore index ba8b4afca..04a7d1eac 100755 --- a/.gitignore +++ b/.gitignore @@ -140,3 +140,4 @@ __pycache__ snap/.snapcraft tcp-proxy/tcp-proxy rustybits/target +ext/installfiles/windows/*.back*.aip diff --git a/ext/installfiles/windows/ZeroTier One.aip b/ext/installfiles/windows/ZeroTier One.aip index 43b3223f5..3066eb788 100644 --- a/ext/installfiles/windows/ZeroTier One.aip +++ b/ext/installfiles/windows/ZeroTier One.aip @@ -1,8 +1,5 @@ - - - - + @@ -33,16 +30,18 @@ - + - - - + + + + + @@ -51,6 +50,7 @@ + @@ -112,6 +112,10 @@ + + + + @@ -147,6 +151,7 @@ + @@ -156,6 +161,7 @@ + @@ -254,6 +260,7 @@ + @@ -261,6 +268,7 @@ + @@ -282,6 +290,7 @@ + @@ -359,15 +368,6 @@ - - - - - - - - - @@ -379,6 +379,17 @@ + + + + + + + + + + + @@ -392,11 +403,12 @@ - - + + + @@ -458,6 +470,10 @@ + + + + @@ -468,6 +484,7 @@ + From ecec45697bdd9106442b70f031df6832afe37736 Mon Sep 17 00:00:00 2001 From: Aaron Johnson <4023+aaronjohnson@users.noreply.github.com> Date: Mon, 28 Jul 2025 10:30:42 -0700 Subject: [PATCH 2/2] fix: standardize bond link selection method JSON field naming MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds support for "linkSelectMethod" as the JSON configuration field name while maintaining backward compatibility with the legacy "activeReselect" field name. This change aligns the JSON field name with the internal API naming convention (setLinkSelectMethod/getLinkSelectMethod) and follows the established pattern in the codebase where JSON field names match their corresponding setter method names. The implementation: - Checks for the new field name first, then falls back to the legacy name - Emits a deprecation warning when "activeReselect" is used - Ensures existing configurations continue to work without modification Resolves terminology inconsistency identified in docs PR #263 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- service/OneService.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/service/OneService.cpp b/service/OneService.cpp index 8c7cd8386..adf0409fe 100644 --- a/service/OneService.cpp +++ b/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); }