ddns-scripts: fixes for cloudflare v4 3675/head
authorChristian Schoenebeck <christian.schoenebeck@gmail.com>
Sun, 18 Dec 2016 19:35:39 +0000 (20:35 +0100)
committerChristian Schoenebeck <christian.schoenebeck@gmail.com>
Sun, 18 Dec 2016 19:35:39 +0000 (20:35 +0100)
- update_cloudflare_com_v4.sh: enclose urls in single quotes
- dynamic_dns_functions.sh: force to return only one ip, if using nslookup to get registered ip

Signed-off-by: Christian Schoenebeck <christian.schoenebeck@gmail.com>
net/ddns-scripts/Makefile
net/ddns-scripts/files/dynamic_dns_functions.sh
net/ddns-scripts/files/update_cloudflare_com_v4.sh

index 713e00e1c5895305620d96fa07efb26cf34d3a9e..a9938c4eab1b8330aaa7d9f3be392eba94862290 100755 (executable)
@@ -12,7 +12,7 @@ PKG_NAME:=ddns-scripts
 PKG_VERSION:=2.7.6
 # Release == build
 # increase on changes of services files or tld_names.dat
-PKG_RELEASE:=5
+PKG_RELEASE:=6
 
 PKG_LICENSE:=GPL-2.0
 PKG_MAINTAINER:=Christian Schoenebeck <christian.schoenebeck@gmail.com>
index f8a260c0e28f579e2affa93ceb0080ebd63d13a0..9a2a64aeae5445372f5e1ae306147acb498fb7c7 100755 (executable)
@@ -1123,7 +1123,7 @@ get_registered_ip() {
                else
                        if [ -n "$BIND_HOST" ]; then
                                if [ $is_glue -eq 1 ]; then
-                                       __DATA=$(cat $DATFILE | grep "^$lookup_host" | grep -m 1 -o "$__REGEX" )
+                                       __DATA=$(cat $DATFILE | grep "^$lookup_host" | grep -om1 "$__REGEX" )
                                else
                                        __DATA=$(cat $DATFILE | awk -F "address " '/has/ {print $2; exit}' )
                                fi
@@ -1132,9 +1132,9 @@ get_registered_ip() {
                        elif [ -n "$DRILL" ]; then
                                __DATA=$(cat $DATFILE | awk '/^'"$lookup_host"'/ {print $5; exit}' )
                        elif [ -n "$HOSTIP" ]; then
-                               __DATA=$(cat $DATFILE | grep -m 1 -o "$__REGEX")
+                               __DATA=$(cat $DATFILE | grep -om1 "$__REGEX")
                        elif [ -n "$NSLOOKUP" ]; then
-                               __DATA=$(cat $DATFILE | sed -ne "/^Name:/,\$ { s/^Address[0-9 ]\{0,\}: \($__REGEX\).*$/\\1/p }" )
+                               __DATA=$(cat $DATFILE | sed -e '1,/Name:/d' | grep -om1 "$__REGEX" )
                        fi
                        [ -n "$__DATA" ] && {
                                write_log 7 "Registered IP '$__DATA' detected"
index 621203c1f87437bc9f0d35c2ab500e63699d67ce..f07cd94704f000c328699aab9ebf8e0f3e43258c 100755 (executable)
@@ -118,7 +118,7 @@ __PRGBASE="$__PRGBASE --header 'Content-Type: application/json' "
 # __PRGBASE="$__PRGBASE --header 'Accept: application/json' "
 
 # read zone id for registered domain.TLD
-__RUNPROG="$__PRGBASE --request GET $__URLBASE/zones?name=$__DOMAIN"
+__RUNPROG="$__PRGBASE --request GET '$__URLBASE/zones?name=$__DOMAIN'"
 cloudflare_transfer || return 1
 # extract zone id
 __ZONEID=$(grep -o '"id":"[^"]*' $DATFILE | grep -o '[^"]*$' | head -1)
@@ -128,7 +128,7 @@ __ZONEID=$(grep -o '"id":"[^"]*' $DATFILE | grep -o '[^"]*$' | head -1)
 }
 
 # read record id for A or AAAA record of host.domain.TLD
-__RUNPROG="$__PRGBASE --request GET $__URLBASE/zones/$__ZONEID/dns_records?name=$__HOST&type=$__TYPE"
+__RUNPROG="$__PRGBASE --request GET '$__URLBASE/zones/$__ZONEID/dns_records?name=$__HOST&type=$__TYPE'"
 cloudflare_transfer || return 1
 # extract record id
 __RECID=$(grep -o '"id":"[^"]*' $DATFILE | grep -o '[^"]*$' | head -1)
@@ -171,7 +171,7 @@ cat > $DATFILE << EOF
 EOF
 
 # let's complete transfer command
-__RUNPROG="$__PRGBASE --request PUT --data @$DATFILE $__URLBASE/zones/$__ZONEID/dns_records/$__RECID"
+__RUNPROG="$__PRGBASE --request PUT --data @$DATFILE '$__URLBASE/zones/$__ZONEID/dns_records/$__RECID'"
 cloudflare_transfer || return 1
 
 return 0