summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2018-04-15 18:18:43 +0200
committerChristian Poessinger <christian@poessinger.com>2018-04-15 18:19:50 +0200
commit38e2a80870cd2407377458dee2b4e08aef24b088 (patch)
tree54d682419ecdcca55bae81930267799a01d12f20
parentdf78ae1e4411c15f27f5f29b172b71504c444637 (diff)
downloadvyatta-cfg-system-38e2a80870cd2407377458dee2b4e08aef24b088.tar.gz
vyatta-cfg-system-38e2a80870cd2407377458dee2b4e08aef24b088.zip
T588: Remove DNS forwarder restart command in favour if XML interface definition
-rw-r--r--Makefile.am1
-rw-r--r--debian/changelog6
-rw-r--r--debian/control1
-rwxr-xr-xscripts/dns-forwarding/vyatta-dns-forwarding.pl274
4 files changed, 6 insertions, 276 deletions
diff --git a/Makefile.am b/Makefile.am
index 23a716b5..77088eaa 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -60,7 +60,6 @@ sbin_SCRIPTS += scripts/snmp/vyatta-snmp.pl
sbin_SCRIPTS += scripts/snmp/vyatta-snmp-v3.pl
sbin_SCRIPTS += scripts/snmp/if-mib-alias
sbin_SCRIPTS += scripts/telnetd.init
-sbin_SCRIPTS += scripts/dns-forwarding/vyatta-dns-forwarding.pl
sbin_SCRIPTS += scripts/dynamic-dns/vyatta-dynamic-dns.pl
sbin_SCRIPTS += scripts/vyatta-system-nameservers
sbin_SCRIPTS += scripts/vyatta-interfaces.pl
diff --git a/debian/changelog b/debian/changelog
index 215f2a1e..a1ec904a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+vyatta-cfg-system (0.20.44+vyos2+current11) unstable; urgency=medium
+
+ * T588: Remove DNS forwarder restart command in favour if XML interface definition
+
+ -- Christian Poessinger <christian@poessinger.com> Wed, 11 Apr 2018 20:35:32 +0200
+
vyatta-cfg-system (0.20.44+vyos2+current10) unstable; urgency=medium
* T157: Remove "install system" command
diff --git a/debian/control b/debian/control
index 5edd8be0..1b6d08a6 100644
--- a/debian/control
+++ b/debian/control
@@ -42,7 +42,6 @@ Depends: adduser,
tasksel,
snmp,
tcpdump,
- dnsmasq,
mdadm,
ddclient (>= 3.8.2+vyos2+current1),
dnsutils,
diff --git a/scripts/dns-forwarding/vyatta-dns-forwarding.pl b/scripts/dns-forwarding/vyatta-dns-forwarding.pl
deleted file mode 100755
index 00a64b3e..00000000
--- a/scripts/dns-forwarding/vyatta-dns-forwarding.pl
+++ /dev/null
@@ -1,274 +0,0 @@
-#!/usr/bin/perl
-#
-# Module: vyatta-dns-forwarding.pl
-#
-# **** License ****
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# This code was originally developed by Vyatta, Inc.
-# Portions created by Vyatta are Copyright (C) 2008 Vyatta, Inc.
-# All Rights Reserved.
-#
-# Author: Mohit Mehta
-# Date: August 2008
-# Description: Script to glue Vyatta CLI to dnsmasq daemon
-#
-# **** End License ****
-#
-
-use lib "/opt/vyatta/share/perl5/";
-use Vyatta::Config;
-use Vyatta::Misc;
-use Getopt::Long;
-
-use strict;
-use warnings;
-
-my $dnsforwarding_conf = '/etc/dnsmasq.d/vyos.conf';
-
-sub dnsforwarding_restart {
- system("systemctl restart dnsmasq");
-}
-
-sub dnsforwarding_stop {
- system("systemctl stop dnsmasq");
-}
-
-sub dnsforwarding_get_constants {
- my $output;
-
- my $date = `date`;
- chomp $date;
- $output = "#\n# autogenerated by vyatta-dns-forwarding.pl on $date\n#\n";
- $output .= "log-facility=/var/log/dnsmasq.log\n";
- $output .= "no-poll\n";
- $output .= "edns-packet-max=4096\n";
- $output .= "bind-interfaces\n";
- system("rm -f /var/log/dnsmasq.log; touch /var/log/dnsmasq.log");
- return $output;
-}
-
-sub dnsforwarding_get_values {
-
- my $outside_cli = shift;
-
- my $output = '';
- my $config = new Vyatta::Config;
- my $use_dnsmasq_conf = 0;
- my (@listen_interfaces, $cache_size, @use_nameservers, $use_system_nameservers, @use_dhcp_nameservers, @domains, $server, $ignore_hosts_file, $query_all_servers);
-
- $config->setLevel("service dns forwarding");
-
- if ($outside_cli == 1) {
- @listen_interfaces = $config->returnOrigValues("listen-on");
- $cache_size = $config->returnOrigValue("cache-size");
- @use_nameservers = $config->returnOrigValues("name-server");
- $use_system_nameservers = $config->existsOrig("system");
- @use_dhcp_nameservers = $config->returnOrigValues("dhcp");
- @domains = $config->listOrigNodes("domain");
- $ignore_hosts_file = $config->returnOrigValue("ignore-hosts-file");
- $query_all_servers = $config->returnOrigValue("query-all-servers");
-
- } else {
- @listen_interfaces = $config->returnValues("listen-on");
- $cache_size = $config->returnValue("cache-size");
- @use_nameservers = $config->returnValues("name-server");
- $use_system_nameservers = $config->exists("system");
- @use_dhcp_nameservers = $config->returnValues("dhcp");
- @domains = $config->listNodes("domain");
- $ignore_hosts_file = $config->exists("ignore-hosts-file");
- $query_all_servers = $config->exists("query-all-servers");
- }
-
- if (@listen_interfaces != 0) {
- foreach my $interface (@listen_interfaces) {
- $output .= "interface=$interface\n";
- }
- }
-
- if (defined $cache_size) {
- $output .= "cache-size=$cache_size\n";
- }
-
- if (defined $query_all_servers) {
- $output .= "all-servers\n";
- }
-
- if (defined $ignore_hosts_file) {
- $output .= "no-hosts\n";
- }
-
- if (@use_nameservers != 0) {
- $use_dnsmasq_conf = 1;
- foreach my $cli_nameserver (@use_nameservers) {
- $output .= "server=$cli_nameserver\t# statically configured\n";
- }
- }
-
- if (defined($use_system_nameservers)) {
- $use_dnsmasq_conf = 1;
- my $sys_config = new Vyatta::Config;
- $sys_config->setLevel("system");
- my @system_nameservers;
- if ($outside_cli == 1) {
- @system_nameservers = $sys_config->returnOrigValues("name-server");
- } else {
- @system_nameservers = $sys_config->returnValues("name-server");
- }
- if (@system_nameservers > 0) {
- foreach my $system_nameserver (@system_nameservers) {
- $output .= "server=$system_nameserver\t# system\n";
- }
- }
- }
- if (@domains != 0) {
- foreach my $domain (@domains) {
- my @domain_servers;
- if ($outside_cli == 1) {
- @domain_servers = $config->returnValues("domain $domain server");
- } else {
- @domain_servers = $config->returnValues("domain $domain server");
- }
- if (@domain_servers > 0) {
- foreach my $domain_server (@domain_servers) {
- $output .= "server=/$domain/$domain_server\t# domain-override\n";
- }
- }
- }
- }
-
- if (@use_dhcp_nameservers != 0) {
- $use_dnsmasq_conf = 1;
- foreach my $interface (@use_dhcp_nameservers) {
- my $dhcp_nameserver_count=`grep nameserver /etc/resolv.conf.dhclient-new-$interface 2>/dev/null | wc -l`;
- if ($dhcp_nameserver_count > 0) {
- my @dhcp_nameservers = `grep nameserver /etc/resolv.conf.dhclient-new-$interface`;
- for my $each_nameserver (@dhcp_nameservers) {
- my @nameserver = split(/ /, $each_nameserver, 2);
- my $ns = $nameserver[1];
- chomp $ns;
- $output .= "server=$ns\t# dhcp $interface\n";
- }
- }
- }
- }
-
- if ($use_dnsmasq_conf == 1) {
- $output .= "resolv-file=/etc/resolv.conf\n";
- }
-
- return $output;
-}
-
-sub dnsforwarding_write_file {
- my ($config) = @_;
-
- open(my $fh, '>', $dnsforwarding_conf) || die "Couldn't open $dnsforwarding_conf - $!";
- print $fh $config;
- close $fh;
-}
-
-sub check_nameserver {
-
- my $cmd = `cat /etc/resolv.conf 2>/dev/null | awk {'print \$1'} | grep \^nameserver\$ | wc -l`;
- return $cmd;
-}
-
-sub check_system_nameserver {
-
- my $config = new Vyatta::Config;
- $config->setLevel("system");
- my @system_nameservers = $config->returnValues("name-server");
- return(@system_nameservers);
-
-}
-
-sub check_dhcp_interface {
-
- my $interface = shift;
-
- die "DNS forwarding error: $interface is not using DHCP to get an IP address\n"
- unless Vyatta::Misc::is_dhcp_enabled($interface);
-
- if (-e "/var/run/vyatta/dhclient/dhclient_release_$interface") {
-
- # dhcp released for the interface
- print "DNS forwarding warning: DHCP lease for $interface has been released by user\n";
- }
-
- return 1;
-}
-
-#
-# main
-#
-
-my ($update_dnsforwarding, $stop_dnsforwarding, $restart_dnsforwarding, $system_nameserver, $dhcp_interface, $outside_cli);
-
-GetOptions(
- "update-dnsforwarding!" => \$update_dnsforwarding,
- "stop-dnsforwarding!" => \$stop_dnsforwarding,
- "restart-dnsforwarding!" => \$restart_dnsforwarding,
- "system-nameserver!" => \$system_nameserver,
- "outside-cli!" => \$outside_cli,
- "dhcp-interface=s" => \$dhcp_interface
-);
-
-if (defined $system_nameserver) {
- my $system_nameserver_exists = check_system_nameserver();
- if ($system_nameserver_exists < 1){
- print "DNS forwarding warning: No name-servers set under 'system name-server'\n";
- }
-}
-
-if (defined $dhcp_interface) {
- if (!check_dhcp_interface($dhcp_interface)){
- exit 1;
- }
-}
-
-if (defined $update_dnsforwarding) {
- my $config;
- my $vyatta_config = new Vyatta::Config;
-
- $vyatta_config->setLevel("service dns forwarding");
- my $use_system_nameservers = $vyatta_config->exists("system");
- my @use_dhcp_nameservers = $vyatta_config->returnValues("dhcp");
- my @use_nameservers = $vyatta_config->returnValues("name-server");
-
- if (!(defined $use_system_nameservers) && (@use_dhcp_nameservers == 0) && (@use_nameservers == 0)) {
- my $nameserver_exists = check_nameserver();
- if ($nameserver_exists < 1){
- print "DNS forwarding warning: Currently, no name-servers to forward DNS queries\n";
- }
- }
-
- my $called_from_outside_cli = 0;
- if (defined $outside_cli){
- $called_from_outside_cli = 1;
- }
- $config = dnsforwarding_get_constants();
- $config .= dnsforwarding_get_values($called_from_outside_cli);
- dnsforwarding_write_file($config);
- dnsforwarding_restart();
-}
-
-if (defined $stop_dnsforwarding) {
- dnsforwarding_stop();
-}
-
-if (defined $restart_dnsforwarding) {
- dnsforwarding_restart();
-}
-
-exit 0;
-
-# end of file
-