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;;