From 4968e0d57a566cd6bfa44b596133ef2f96713234 Mon Sep 17 00:00:00 2001 From: Martin Butt Date: Mon, 10 Oct 2022 21:13:39 -0700 Subject: [PATCH] Add 'edit' option to custom DNS and CNAME Signed-off-by: Martin Butt --- advanced/Scripts/webpage.sh | 57 +++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/advanced/Scripts/webpage.sh b/advanced/Scripts/webpage.sh index e02e03f9..68c0b9c5 100755 --- a/advanced/Scripts/webpage.sh +++ b/advanced/Scripts/webpage.sh @@ -692,6 +692,33 @@ AddCustomDNSAddress() { fi } +EditCustomDNSAddress() { + echo -e " ${TICK} Editing custom DNS entry..." + + ip="${args[2]}" + host="${args[3]}" + reload="${args[4]}" + + validHost="$(checkDomain "${host}")" + if [[ -n "${validHost}" ]]; then + if valid_ip "${ip}" || valid_ip6 "${ip}" ; then + sed -i "/\s\+${validHost}$/Id" "${dnscustomfile}" + echo "${ip} ${validHost}" >> "${dnscustomfile}" + else + echo -e " ${CROSS} Invalid IP has been passed" + exit 1 + fi + else + echo " ${CROSS} Invalid Domain passed!" + exit 1 + fi + + # Restart dnsmasq to load new custom DNS entries only if reload is not false + if [[ ! $reload == "false" ]]; then + RestartDNS + fi +} + RemoveCustomDNSAddress() { echo -e " ${TICK} Removing custom DNS entry..." @@ -744,6 +771,34 @@ AddCustomCNAMERecord() { fi } +EditCustomCNAMERecord() { + echo -e " ${TICK} Editing custom CNAME record..." + + domain="${args[2]}" + target="${args[3]}" + reload="${args[4]}" + + validDomain="$(checkDomain "${domain}")" + if [[ -n "${validDomain}" ]]; then + validTarget="$(checkDomain "${target}")" + if [[ -n "${validTarget}" ]]; then + sed -i "/cname=${validDomain},/Id" "${dnscustomcnamefile}" + echo "cname=${validDomain},${validTarget}" >> "${dnscustomcnamefile}" + else + echo " ${CROSS} Invalid Target Passed!" + exit 1 + fi + else + echo " ${CROSS} Invalid Domain passed!" + exit 1 + fi + + # Restart dnsmasq to update removed custom CNAME records only if $reload not false + if [[ ! $reload == "false" ]]; then + RestartDNS + fi +} + RemoveCustomCNAMERecord() { echo -e " ${TICK} Removing custom CNAME record..." @@ -817,8 +872,10 @@ main() { "clearaudit" ) clearAudit;; "-l" | "privacylevel" ) SetPrivacyLevel;; "addcustomdns" ) AddCustomDNSAddress;; + "editcustomdns" ) EditCustomDNSAddress;; "removecustomdns" ) RemoveCustomDNSAddress;; "addcustomcname" ) AddCustomCNAMERecord;; + "editcustomcname" ) EditCustomCNAMERecord;; "removecustomcname" ) RemoveCustomCNAMERecord;; "ratelimit" ) SetRateLimit;; * ) helpFunc;;