summaryrefslogtreecommitdiff
path: root/node/Network.cpp
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2015-04-14 17:57:51 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2015-04-14 17:57:51 -0700
commit67f1f1892f6e627897720b0b43937da31679b281 (patch)
treea69c6e04e39a3071155a54b3e86bc99f50f546b9 /node/Network.cpp
parente205e5fdfea608e38a2a138aa8738c0885537c04 (diff)
downloadinfinitytier-67f1f1892f6e627897720b0b43937da31679b281.tar.gz
infinitytier-67f1f1892f6e627897720b0b43937da31679b281.zip
Bunch of tap stuff, IP address assignment hookups, etc.
Diffstat (limited to 'node/Network.cpp')
-rw-r--r--node/Network.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/node/Network.cpp b/node/Network.cpp
index 0575f48c..ba0ee984 100644
--- a/node/Network.cpp
+++ b/node/Network.cpp
@@ -436,7 +436,12 @@ void Network::learnBridgedMulticastGroup(const MulticastGroup &mg,uint64_t now)
void Network::setEnabled(bool enabled)
{
Mutex::Lock _l(_lock);
- _enabled = enabled;
+ if (_enabled != enabled) {
+ _enabled = enabled;
+ ZT1_VirtualNetworkConfig ctmp;
+ _externalConfig(&ctmp);
+ _portError = RR->node->configureVirtualNetworkPort(_id,ZT1_VIRTUAL_NETWORK_CONFIG_OPERATION_CONFIG_UPDATE,&ctmp);
+ }
}
void Network::destroy()
@@ -478,6 +483,7 @@ void Network::_externalConfig(ZT1_VirtualNetworkConfig *ec) const
ec->bridge = (_config) ? ((_config->allowPassiveBridging() || (std::find(_config->activeBridges().begin(),_config->activeBridges().end(),RR->identity.address()) != _config->activeBridges().end())) ? 1 : 0) : 0;
ec->broadcastEnabled = (_config) ? (_config->enableBroadcast() ? 1 : 0) : 0;
ec->portError = _portError;
+ ec->enabled = (_enabled) ? 1 : 0;
ec->netconfRevision = (_config) ? (unsigned long)_config->revision() : 0;
ec->multicastSubscriptionCount = std::min((unsigned int)_myMulticastGroups.size(),(unsigned int)ZT1_MAX_NETWORK_MULTICAST_SUBSCRIPTIONS);