mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-01-21 07:55:00 +00:00
- As of bind 9.16, the option to enable DNSSEC 'dnssec-enable' is obsolete and has no effect[1]. The option 'dnssec-validation' controls DNSSEC validation and is set to 'auto' by default. 'auto' means that DNSSEC validation is enabled and default trust anchor is used for DNS root zone. DNSSEC signatures are also passed onto a client whenever available. Current stable, Debian Buster, has version 9.16[3]. - As of bind 9.18, the option to enable DNSSEC 'dnssec-enable' is not recognized and causes the daemon to fail to start[2]. Debian next, Debian Bookworm, has version 9.18[3]. Therefore, in testing and unstable, bind fails to start of installation from FreedomBox. - There is no use-case for changing the current default behavior. Links: 1) https://bind9.readthedocs.io/en/v9_16_32/reference.html#dnssec-validation-option 2) https://bind9.readthedocs.io/en/v9_18_6/reference.html 3) https://tracker.debian.org/pkg/bind9 Tests: - Run functional and unit tests. - Option to enable/disable DNSSEC is removed. - When bind is installed on testing without the patch, it fails to start. When the patch is applied, bind will be upgraded, the dnssec-enable option is removed from the configuration file /etc/bind/named.conf.options and bind is running. Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org> Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
64 lines
1.9 KiB
Python
64 lines
1.9 KiB
Python
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
"""Views for BIND module."""
|
|
|
|
from django.contrib import messages
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
from plinth.modules import names
|
|
from plinth.views import AppView
|
|
|
|
from . import privileged
|
|
from .forms import BindForm
|
|
|
|
|
|
class BindAppView(AppView): # pylint: disable=too-many-ancestors
|
|
"""A specialized view for configuring Bind."""
|
|
|
|
app_id = 'bind'
|
|
form_class = BindForm
|
|
template_name = 'bind.html'
|
|
|
|
def get_context_data(self, *args, **kwargs):
|
|
"""Get/append information for domains and additional names."""
|
|
context = super().get_context_data(**kwargs)
|
|
|
|
served_domains = privileged.get_served_domains()
|
|
context['domains_table'] = []
|
|
for key, val in served_domains.items():
|
|
if key == 'localhost.':
|
|
continue
|
|
|
|
context['domains_table'].append({
|
|
'type': 'Domain Name',
|
|
'domain_name': key[:-1:],
|
|
'serving': 'Yes',
|
|
'ip_address': ', '.join(val),
|
|
})
|
|
|
|
for item in names.components.DomainName.list():
|
|
context['domains_table'].append({
|
|
'type': item.domain_type.display_name,
|
|
'domain_name': item.name,
|
|
'serving': '-',
|
|
'ip_address': ''
|
|
})
|
|
|
|
return context
|
|
|
|
def get_initial(self):
|
|
"""Return the values to fill in the form."""
|
|
initial = super().get_initial()
|
|
initial.update(privileged.get_config())
|
|
return initial
|
|
|
|
def form_valid(self, form):
|
|
"""Change the configurations of Bind service."""
|
|
data = form.cleaned_data
|
|
old_config = privileged.get_config()
|
|
|
|
if old_config['forwarders'] != data['forwarders']:
|
|
privileged.configure(data['forwarders'])
|
|
messages.success(self.request, _('Configuration updated'))
|
|
|
|
return super().form_valid(form)
|