aboutsummaryrefslogtreecommitdiffstats
path: root/mod/bridge-port-to
diff options
context:
space:
mode:
Diffstat (limited to 'mod/bridge-port-to')
-rw-r--r--mod/bridge-port-to10
1 files changed, 8 insertions, 2 deletions
diff --git a/mod/bridge-port-to b/mod/bridge-port-to
index 36b827b..dec5eb1 100644
--- a/mod/bridge-port-to
+++ b/mod/bridge-port-to
@@ -17,6 +17,7 @@
:foreach BridgePort in=[ /interface/bridge/port/find where !(comment=[]) ] do={
:local BridgePortVal [ /interface/bridge/port/get $BridgePort ];
+ :local InterfaceReEnable [ :toarray "" ];
:foreach Config,BridgeDefault in=[ $ParseKeyValueStore ($BridgePortVal->"comment") ] do={
:if ($Config = $BridgePortTo) do={
:local DHCPClient [ /ip/dhcp-client/find where interface=$BridgePortVal->"interface" comment="toggle with bridge port" ];
@@ -44,8 +45,7 @@
}
/interface/ethernet/disable [ find where name=$BridgePortVal->"interface" ];
/interface/bridge/port/set disabled=no bridge=$BridgeDefault $BridgePort;
- :delay 500ms;
- /interface/ethernet/enable [ find where name=$BridgePortVal->"interface" ];
+ :set InterfaceReEnable ($InterfaceReEnable, $BridgePortVal->"interface");
} else={
$LogPrintExit2 debug $0 ("Interface " . $BridgePortVal->"interface" . " already connected to " . $BridgePortTo . \
" bridge " . $BridgeDefault . ".") false;
@@ -53,5 +53,11 @@
}
}
}
+ :if ([ :len $InterfaceReEnable ] > 0) do={
+ :delay 2s;
+ :foreach Interface in=$InterfaceReEnable do={
+ /interface/ethernet/enable [ find where name=$Interface ];
+ }
+ }
}
}