From 27805f8ff28f57d31021c41b0ef047cb0c4f798c Mon Sep 17 00:00:00 2001 From: Joseph Henry Date: Tue, 18 Jul 2023 13:04:40 -0700 Subject: [PATCH] Add low-bandwidth mode --- src/Controls.cpp | 6 ++++++ src/NodeService.cpp | 10 ++++++++++ src/NodeService.hpp | 3 +++ 3 files changed, 19 insertions(+) diff --git a/src/Controls.cpp b/src/Controls.cpp index 536868f..6bc3456 100644 --- a/src/Controls.cpp +++ b/src/Controls.cpp @@ -133,6 +133,12 @@ int zts_init_set_roots(const void* roots_data, unsigned int len) return zts_service->setRoots(roots_data, len); } +int zts_init_set_low_bandwidth_mode(bool enabled) +{ + ACQUIRE_SERVICE_OFFLINE(); + return zts_service->setLowBandwidthMode(enabled); +} + int zts_init_set_port(unsigned short port) { ACQUIRE_SERVICE_OFFLINE(); diff --git a/src/NodeService.cpp b/src/NodeService.cpp index 15b18ad..71e1dca 100644 --- a/src/NodeService.cpp +++ b/src/NodeService.cpp @@ -1829,6 +1829,16 @@ int NodeService::setRoots(const void* rootsData, unsigned int len) return ZTS_ERR_OK; } +int_fast32_t NodeService::setLowBandwidthMode(bool enabled) +{ + Mutex::Lock _lr(_run_m); + if (_run) { + return ZTS_ERR_SERVICE; + } + _node->setLowBandwidthMode(enabled); + return ZTS_ERR_OK; +} + int NodeService::addInterfacePrefixToBlacklist(const char* prefix, unsigned int len) { if (! prefix || len == 0 || len > 15) { diff --git a/src/NodeService.hpp b/src/NodeService.hpp index d9a9925..edd241c 100644 --- a/src/NodeService.hpp +++ b/src/NodeService.hpp @@ -398,6 +398,9 @@ class NodeService { /** Set the roots definition */ int setRoots(const void* data, unsigned int len); + /** Enable or disable low-bandwidth mode (sends less ambient traffic, network updates happen less frequently) */ + int setLowBandwidthMode(bool enabled); + /** Add Interface prefix to blacklist (prevents ZeroTier from using that interface) */ int addInterfacePrefixToBlacklist(const char* prefix, unsigned int len);