From 86f4bdadb087068d774718aa000507e2a517e0f3 Mon Sep 17 00:00:00 2001 From: Eduardo Silva Date: Mon, 11 Mar 2024 11:17:12 -0300 Subject: [PATCH] DNS primary/secondary not required anymore. --- .../wireguard/wireguard_manage_server.html | 2 +- wireguard/forms.py | 2 +- ...0022_alter_wireguardinstance_dns_primary.py | 18 ++++++++++++++++++ wireguard/models.py | 2 +- wireguard_tools/views.py | 4 +++- wireguard_webadmin/settings.py | 2 +- 6 files changed, 25 insertions(+), 5 deletions(-) create mode 100644 wireguard/migrations/0022_alter_wireguardinstance_dns_primary.py diff --git a/templates/wireguard/wireguard_manage_server.html b/templates/wireguard/wireguard_manage_server.html index 95e0051..46d21c4 100644 --- a/templates/wireguard/wireguard_manage_server.html +++ b/templates/wireguard/wireguard_manage_server.html @@ -98,7 +98,7 @@
- +
diff --git a/wireguard/forms.py b/wireguard/forms.py index 02068eb..ebaf6af 100644 --- a/wireguard/forms.py +++ b/wireguard/forms.py @@ -15,7 +15,7 @@ class WireGuardInstanceForm(forms.ModelForm): post_up = forms.CharField(label='Post Up', required=False) post_down = forms.CharField(label='Post Down', required=False) peer_list_refresh_interval = forms.IntegerField(label='Web Refresh Interval', initial=20) - dns_primary = forms.GenericIPAddressField(label='Primary DNS', initial='1.1.1.1') + dns_primary = forms.GenericIPAddressField(label='Primary DNS', initial='1.1.1.1', required=False) dns_secondary = forms.GenericIPAddressField(label='Secondary DNS', initial='1.0.0.1', required=False) class Meta: diff --git a/wireguard/migrations/0022_alter_wireguardinstance_dns_primary.py b/wireguard/migrations/0022_alter_wireguardinstance_dns_primary.py new file mode 100644 index 0000000..eac6aa7 --- /dev/null +++ b/wireguard/migrations/0022_alter_wireguardinstance_dns_primary.py @@ -0,0 +1,18 @@ +# Generated by Django 5.0.2 on 2024-03-11 13:28 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('wireguard', '0021_remove_peerallowedip_missing_from_wireguard'), + ] + + operations = [ + migrations.AlterField( + model_name='wireguardinstance', + name='dns_primary', + field=models.GenericIPAddressField(blank=True, default='1.1.1.1', null=True, protocol='IPv4'), + ), + ] diff --git a/wireguard/models.py b/wireguard/models.py index 447c686..c371384 100644 --- a/wireguard/models.py +++ b/wireguard/models.py @@ -56,7 +56,7 @@ class WireGuardInstance(models.Model): post_up = models.TextField(blank=True, null=True) post_down = models.TextField(blank=True, null=True) peer_list_refresh_interval = models.IntegerField(default=20) - dns_primary = models.GenericIPAddressField(unique=False, protocol='IPv4', default='1.1.1.1') + dns_primary = models.GenericIPAddressField(unique=False, protocol='IPv4', default='1.1.1.1', blank=True, null=True) dns_secondary = models.GenericIPAddressField(unique=False, protocol='IPv4', default='1.0.0.1', blank=True, null=True) pending_changes = models.BooleanField(default=True) legacy_firewall = models.BooleanField(default=False) diff --git a/wireguard_tools/views.py b/wireguard_tools/views.py index ae85a3c..f864826 100644 --- a/wireguard_tools/views.py +++ b/wireguard_tools/views.py @@ -35,12 +35,14 @@ def generate_peer_config(peer_uuid): allowed_ips_line = ", ".join([f"{ip.allowed_ip}/{ip.netmask}" for ip in allowed_ips]) else: allowed_ips_line = "0.0.0.0/0, ::/0" + dns_entries = [wg_instance.dns_primary, wg_instance.dns_secondary] + dns_line = ", ".join(filter(None, dns_entries)) config_lines = [ "[Interface]", f"PrivateKey = {peer.private_key}" if peer.private_key else "", f"Address = {client_address}", - f"DNS = {wg_instance.dns_primary}" + (f", {wg_instance.dns_secondary}" if wg_instance.dns_secondary else ""), + f"DNS = {dns_line}" if dns_line else "", "\n[Peer]", f"PublicKey = {wg_instance.public_key}", f"Endpoint = {wg_instance.hostname}:{wg_instance.listen_port}", diff --git a/wireguard_webadmin/settings.py b/wireguard_webadmin/settings.py index 3cfc67b..d021c1c 100644 --- a/wireguard_webadmin/settings.py +++ b/wireguard_webadmin/settings.py @@ -129,6 +129,6 @@ STATICFILES_DIRS = [ DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' -WIREGUARD_WEBADMIN_VERSION = 9601 +WIREGUARD_WEBADMIN_VERSION = 9602 from wireguard_webadmin.production_settings import * \ No newline at end of file