Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/pi-hole/pi-hole.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian König <ckoenig@posteo.de>2022-10-21 13:25:23 +0300
committerChristian König <ckoenig@posteo.de>2022-10-21 14:02:21 +0300
commitc322458dcb568604c94b6c359863b21fd88dc13a (patch)
tree946a31b60a2c60646248f12b124a407fc2b1050f
parent469a267150bbe845c256f13c61c9f595ccfdb08b (diff)
Escape dots in local DNS records/CNAMES before removing them
Signed-off-by: Christian König <ckoenig@posteo.de>
-rwxr-xr-xadvanced/Scripts/webpage.sh11
1 files changed, 10 insertions, 1 deletions
diff --git a/advanced/Scripts/webpage.sh b/advanced/Scripts/webpage.sh
index e02e03f9..f4a452fe 100755
--- a/advanced/Scripts/webpage.sh
+++ b/advanced/Scripts/webpage.sh
@@ -627,6 +627,12 @@ checkDomain()
echo "${validDomain}"
}
+escapeDots()
+{
+ escaped=$(sed 's/\./\\./g' <<< "$1" )
+ echo "${escaped}"
+}
+
addAudit()
{
shift # skip "-a"
@@ -702,6 +708,7 @@ RemoveCustomDNSAddress() {
validHost="$(checkDomain "${host}")"
if [[ -n "${validHost}" ]]; then
if valid_ip "${ip}" || valid_ip6 "${ip}" ; then
+ validHost=$(escapeDots "${validHost}")
sed -i "/^${ip} ${validHost}$/Id" "${dnscustomfile}"
else
echo -e " ${CROSS} Invalid IP has been passed"
@@ -755,7 +762,9 @@ RemoveCustomCNAMERecord() {
if [[ -n "${validDomain}" ]]; then
validTarget="$(checkDomain "${target}")"
if [[ -n "${validTarget}" ]]; then
- sed -i "/cname=${validDomain},${validTarget}$/Id" "${dnscustomcnamefile}"
+ validDomain=$(escapeDots "${validDomain}")
+ validTarget=$(escapeDots "${validTarget}")
+ sed -i "/^cname=${validDomain},${validTarget}$/Id" "${dnscustomcnamefile}"
else
echo " ${CROSS} Invalid Target Passed!"
exit 1