diff --git a/coldbrew/vpn/models.py b/coldbrew/vpn/models.py index 8ec957a..16d7bc8 100644 --- a/coldbrew/vpn/models.py +++ b/coldbrew/vpn/models.py @@ -33,11 +33,13 @@ class VPN(models.Model): self.public_key = get_public_key(self.private_key) - while not self.port: - port = random.randint(10000, 40000) + if not self.port: + pool = list(range(10000, 40000)) - if not VPN.objects.filter(port=port).exists(): - self.port = port + for vpn in VPN.objects.all(): + pool.remove(vpn.port) + + self.port = random.choice(pool) super().save(*args, **kwargs)