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