zerotier generate: retry if port allocation fails

This commit is contained in:
lassulus
2024-02-01 10:11:30 +01:00
parent 5cc2413000
commit 1a6e99f4ff

View File

@@ -7,6 +7,7 @@ import os
import signal import signal
import socket import socket
import subprocess import subprocess
import sys
import time import time
import urllib.request import urllib.request
from collections.abc import Iterator from collections.abc import Iterator
@@ -148,9 +149,15 @@ class NetworkController:
# TODO: allow merging more network configuration here # TODO: allow merging more network configuration here
def create_network_controller() -> NetworkController: def create_network_controller() -> NetworkController:
e = ClanError("Bug, should never happen")
for _ in range(10):
try:
with zerotier_controller() as controller: with zerotier_controller() as controller:
network = controller.create_network() network = controller.create_network()
return NetworkController(network["nwid"], controller.identity) return NetworkController(network["nwid"], controller.identity)
except ClanError: # probably failed to allocate port, so retry
print("failed to create network, retrying..., probabl", file=sys.stderr)
raise e
def create_identity() -> Identity: def create_identity() -> Identity: