Merge pull request #13509 from TDT-AG/pr/20200928-ddns-scripts

ddns-scripts: fix regression added by version 2.8.0
This commit is contained in:
Florian Eckert 2020-10-01 14:15:10 +02:00 committed by GitHub
commit a333d71fd0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
85 changed files with 116 additions and 104 deletions

View file

@ -7,8 +7,8 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=ddns-scripts PKG_NAME:=ddns-scripts
PKG_VERSION:=2.8.0 PKG_VERSION:=2.8.1
PKG_RELEASE:=24 PKG_RELEASE:=1
PKG_LICENSE:=GPL-2.0 PKG_LICENSE:=GPL-2.0
@ -25,6 +25,7 @@ endef
define Package/ddns-scripts define Package/ddns-scripts
$(call Package/ddns-scripts/Default) $(call Package/ddns-scripts/Default)
TITLE:=Dynamic DNS Client scripts (with IPv6 support) TITLE:=Dynamic DNS Client scripts (with IPv6 support)
DEPENDS:=+ddns-scripts-services
endef endef
define Package/ddns-scripts/description define Package/ddns-scripts/description
@ -46,57 +47,56 @@ define Package/ddns-scripts/conffiles
endef endef
define Package/ddns-scripts_service define Package/ddns-scripts-services
$(call Package/ddns-scripts/Default) $(call Package/ddns-scripts/Default)
TITLE:=Common ddns providers TITLE:=Common ddns providers
DEPENDS:=ddns-scripts
endef endef
define Package/ddns-scripts_service/description define Package/ddns-scripts-services/description
Dynamic DNS Client definitions for supported services Dynamic DNS Client definitions for supported services
endef endef
define Package/ddns-scripts_cloudflare.com-v4 define Package/ddns-scripts-cloudflare
$(call Package/ddns-scripts/Default) $(call Package/ddns-scripts/Default)
TITLE:=Extension for cloudflare.com API v4 TITLE:=Extension for cloudflare.com API v4
DEPENDS:=ddns-scripts +curl DEPENDS:=ddns-scripts +curl
endef endef
define Package/ddns-scripts_cloudflare.com-v4/description define Package/ddns-scripts-cloudflare/description
Dynamic DNS Client scripts extension for cloudflare.com API v4 (require curl) Dynamic DNS Client scripts extension for cloudflare.com API v4 (require curl)
endef endef
define Package/ddns-scripts_freedns_42_pl define Package/ddns-scripts-freedns
$(call Package/ddns-scripts/Default) $(call Package/ddns-scripts/Default)
TITLE:=Extension for freedns.42.pl TITLE:=Extension for freedns.42.pl
DEPENDS:=ddns-scripts +curl DEPENDS:=ddns-scripts +curl
endef endef
define Package/ddns-scripts_freedns_42_pl/description define Package/ddns-scripts-freedns/description
Dynamic DNS Client scripts extension for "freedns.42.pl". Dynamic DNS Client scripts extension for "freedns.42.pl".
endef endef
define Package/ddns-scripts_godaddy.com-v1 define Package/ddns-scripts-godaddy
$(call Package/ddns-scripts/Default) $(call Package/ddns-scripts/Default)
TITLE:=Extension for godaddy.com API v1 TITLE:=Extension for godaddy.com API v1
DEPENDS:=ddns-scripts +curl DEPENDS:=ddns-scripts +curl
endef endef
define Package/ddns-scripts_godaddy.com-v1/description define Package/ddns-scripts-godaddy/description
Dynamic DNS Client scripts extension for "godaddy.com API v1". Dynamic DNS Client scripts extension for "godaddy.com API v1".
endef endef
define Package/ddns-scripts_digitalocean.com-v2 define Package/ddns-scripts-digitalocean
$(call Package/ddns-scripts/Default) $(call Package/ddns-scripts/Default)
TITLE:=Extention for digitalocean.com API v2 TITLE:=Extention for digitalocean.com API v2
DEPENDS:=ddns-scripts +curl DEPENDS:=ddns-scripts +curl
endef endef
define Package/ddns-scripts_digitalocean.com-v2/description define Package/ddns-scripts-digitalocean/description
Dynamic DNS Client scripts extension for "digitalocean.com API v2". Dynamic DNS Client scripts extension for "digitalocean.com API v2".
The script directly updates a DNS record using the DO API. The script directly updates a DNS record using the DO API.
It requires: It requires:
@ -108,24 +108,24 @@ define Package/ddns-scripts_digitalocean.com-v2/description
endef endef
define Package/ddns-scripts_no-ip_com define Package/ddns-scripts-noip
$(call Package/ddns-scripts/Default) $(call Package/ddns-scripts/Default)
TITLE:=Extension for no-ip.com TITLE:=Extension for no-ip.com
DEPENDS:=ddns-scripts DEPENDS:=ddns-scripts
endef endef
define Package/ddns-scripts_no-ip_com/description define Package/ddns-scripts-noip/description
Dynamic DNS Client scripts extension for "no-ip.com". Dynamic DNS Client scripts extension for "no-ip.com".
endef endef
define Package/ddns-scripts_nsupdate define Package/ddns-scripts-nsupdate
$(call Package/ddns-scripts/Default) $(call Package/ddns-scripts/Default)
TITLE:=Extension for using bind nsupdate. TITLE:=Extension for using bind nsupdate.
DEPENDS:=ddns-scripts +bind-client DEPENDS:=ddns-scripts +bind-client
endef endef
define Package/ddns-scripts_nsupdate/description define Package/ddns-scripts-nsupdate/description
Dynamic DNS Client scripts extension for direct updates using bind nsupdate Dynamic DNS Client scripts extension for direct updates using bind nsupdate
The script directly updates a PowerDNS (or maybe bind server) via nsupdate The script directly updates a PowerDNS (or maybe bind server) via nsupdate
from bind-client package. from bind-client package.
@ -136,13 +136,13 @@ define Package/ddns-scripts_nsupdate/description
endef endef
define Package/ddns-scripts_route53-v1 define Package/ddns-scripts-route53
$(call Package/ddns-scripts/Default) $(call Package/ddns-scripts/Default)
TITLE:=Extension for route53 API v1 TITLE:=Extension for route53 API v1
DEPENDS:=ddns-scripts +curl +openssl-util DEPENDS:=ddns-scripts +curl +openssl-util
endef endef
define Package/ddns-scripts_route53-v1/description define Package/ddns-scripts-route53/description
Dynamic DNS Client scripts extension for Amazon AWS "route53 API v1". Dynamic DNS Client scripts extension for Amazon AWS "route53 API v1".
Note: You must also install ca-certificate or ca-bundle. Note: You must also install ca-certificate or ca-bundle.
It requires: It requires:
@ -152,13 +152,13 @@ define Package/ddns-scripts_route53-v1/description
endef endef
define Package/ddns-scripts_cnkuai_cn define Package/ddns-scripts-cnkuai
$(call Package/ddns-scripts/Default) $(call Package/ddns-scripts/Default)
TITLE:=CnKuai API TITLE:=CnKuai API
DEPENDS:=ddns-scripts +curl +giflib-utils DEPENDS:=ddns-scripts +curl +giflib-utils
endef endef
define Package/ddns-scripts_cnkuai_cn/description define Package/ddns-scripts-cnkuai/description
Dynamic DNS Client scripts extension for "cnkuai.cn". Dynamic DNS Client scripts extension for "cnkuai.cn".
It requires: It requires:
"option username" to be a valid CnKuai control panel id "option username" to be a valid CnKuai control panel id
@ -189,8 +189,6 @@ define Package/ddns-scripts/install
$(INSTALL_DIR) $(1)/usr/share/ddns $(INSTALL_DIR) $(1)/usr/share/ddns
echo "$(PKG_VERSION)-$(PKG_RELEASE)" > $(1)/usr/share/ddns/version echo "$(PKG_VERSION)-$(PKG_RELEASE)" > $(1)/usr/share/ddns/version
$(INSTALL_DATA) ./files/usr/share/ddns/list \
$(1)/usr/share/ddns
$(INSTALL_DIR) $(1)/usr/lib/ddns $(INSTALL_DIR) $(1)/usr/lib/ddns
$(INSTALL_DATA) ./files/usr/lib/ddns/dynamic_dns_functions.sh \ $(INSTALL_DATA) ./files/usr/lib/ddns/dynamic_dns_functions.sh \
@ -224,24 +222,34 @@ exit 0
endef endef
define Package/ddns-scripts_service/install define Package/ddns-scripts-services/install
$(INSTALL_DIR) $(1)/usr/share/ddns/services $(INSTALL_DIR) $(1)/usr/share/ddns/default
$(INSTALL_DATA) ./files/usr/share/ddns/services/* \ $(INSTALL_DATA) ./files/usr/share/ddns/default/* \
$(1)/usr/share/ddns/services $(1)/usr/share/ddns/default
# Remove special services
rm $(1)/usr/share/ddns/default/cloudflare.com-v4.json
rm $(1)/usr/share/ddns/default/freedns.42.pl.json
rm $(1)/usr/share/ddns/default/godaddy.com-v1.json
rm $(1)/usr/share/ddns/default/digitalocean.com-v2.json
rm $(1)/usr/share/ddns/default/no-ip.com.json
rm $(1)/usr/share/ddns/default/bind-nsupdate.json
rm $(1)/usr/share/ddns/default/route53-v1.json
rm $(1)/usr/share/ddns/default/cnkuai.cn.json
endef endef
define Package/ddns-scripts_cloudflare.com-v4/install define Package/ddns-scripts-cloudflare/install
$(INSTALL_DIR) $(1)/usr/lib/ddns $(INSTALL_DIR) $(1)/usr/lib/ddns
$(INSTALL_BIN) ./files/usr/lib/ddns/update_cloudflare_com_v4.sh \ $(INSTALL_BIN) ./files/usr/lib/ddns/update_cloudflare_com_v4.sh \
$(1)/usr/lib/ddns $(1)/usr/lib/ddns
$(INSTALL_DIR) $(1)/usr/share/ddns/services $(INSTALL_DIR) $(1)/usr/share/ddns/default
$(INSTALL_DATA) ./files/usr/share/ddns/services/cloudflare.com-v4.json \ $(INSTALL_DATA) ./files/usr/share/ddns/default/cloudflare.com-v4.json \
$(1)/usr/share/ddns/services/ $(1)/usr/share/ddns/default/
endef endef
define Package/ddns-scripts_cloudflare.com-v4/prerm define Package/ddns-scripts-cloudflare/prerm
#!/bin/sh #!/bin/sh
if [ -z "$${IPKG_INSTROOT}" ]; then if [ -z "$${IPKG_INSTROOT}" ]; then
/etc/init.d/ddns stop /etc/init.d/ddns stop
@ -250,17 +258,17 @@ exit 0
endef endef
define Package/ddns-scripts_freedns_42_pl/install define Package/ddns-scripts-freedns/install
$(INSTALL_DIR) $(1)/usr/lib/ddns $(INSTALL_DIR) $(1)/usr/lib/ddns
$(INSTALL_BIN) ./files/usr/lib/ddns/update_freedns_42_pl.sh \ $(INSTALL_BIN) ./files/usr/lib/ddns/update_freedns_42_pl.sh \
$(1)/usr/lib/ddns $(1)/usr/lib/ddns
$(INSTALL_DIR) $(1)/usr/share/ddns/services $(INSTALL_DIR) $(1)/usr/share/ddns/default
$(INSTALL_DATA) ./files/usr/share/ddns/services/freedns.42.pl.json \ $(INSTALL_DATA) ./files/usr/share/ddns/default/freedns.42.pl.json \
$(1)/usr/share/ddns/services $(1)/usr/share/ddns/default
endef endef
define Package/ddns-scripts_freedns_42_pl/prerm define Package/ddns-scripts-freedns/prerm
#!/bin/sh #!/bin/sh
if [ -z "$${IPKG_INSTROOT}" ]; then if [ -z "$${IPKG_INSTROOT}" ]; then
/etc/init.d/ddns stop /etc/init.d/ddns stop
@ -269,17 +277,17 @@ exit 0
endef endef
define Package/ddns-scripts_godaddy.com-v1/install define Package/ddns-scripts-godaddy/install
$(INSTALL_DIR) $(1)/usr/lib/ddns $(INSTALL_DIR) $(1)/usr/lib/ddns
$(INSTALL_BIN) ./files/usr/lib/ddns/update_godaddy_com_v1.sh \ $(INSTALL_BIN) ./files/usr/lib/ddns/update_godaddy_com_v1.sh \
$(1)/usr/lib/ddns $(1)/usr/lib/ddns
$(INSTALL_DIR) $(1)/usr/share/ddns/services $(INSTALL_DIR) $(1)/usr/share/ddns/default
$(INSTALL_DATA) ./files/usr/share/ddns/services/godaddy.com-v1.json \ $(INSTALL_DATA) ./files/usr/share/ddns/default/godaddy.com-v1.json \
$(1)/usr/share/ddns/services $(1)/usr/share/ddns/default
endef endef
define Package/ddns-scripts_godaddy.com-v1/prerm define Package/ddns-scripts-godaddy/prerm
#!/bin/sh #!/bin/sh
if [ -z "$${IPKG_INSTROOT}" ]; then if [ -z "$${IPKG_INSTROOT}" ]; then
/etc/init.d/ddns stop /etc/init.d/ddns stop
@ -288,17 +296,17 @@ exit 0
endef endef
define Package/ddns-scripts_digitalocean.com-v2/install define Package/ddns-scripts-digitalocean/install
$(INSTALL_DIR) $(1)/usr/lib/ddns $(INSTALL_DIR) $(1)/usr/lib/ddns
$(INSTALL_BIN) ./files/usr/lib/ddns/update_digitalocean_com_v2.sh \ $(INSTALL_BIN) ./files/usr/lib/ddns/update_digitalocean_com_v2.sh \
$(1)/usr/lib/ddns $(1)/usr/lib/ddns
$(INSTALL_DIR) $(1)/usr/share/ddns/services $(INSTALL_DIR) $(1)/usr/share/ddns/default
$(INSTALL_DATA) ./files/usr/share/ddns/services/digitalocean.com-v2.json \ $(INSTALL_DATA) ./files/usr/share/ddns/default/digitalocean.com-v2.json \
$(1)/usr/share/ddns/services $(1)/usr/share/ddns/default
endef endef
define Package/ddns-scripts_digitalocean.com-v2/prerm define Package/ddns-scripts-digitalocean/prerm
#!/bin/sh #!/bin/sh
if [ -z "$${IPKG_INSTROOT}" ]; then if [ -z "$${IPKG_INSTROOT}" ]; then
/etc/init.d/ddns stop /etc/init.d/ddns stop
@ -307,17 +315,17 @@ exit 0
endef endef
define Package/ddns-scripts_no-ip_com/install define Package/ddns-scripts-noip/install
$(INSTALL_DIR) $(1)/usr/lib/ddns $(INSTALL_DIR) $(1)/usr/lib/ddns
$(INSTALL_BIN) ./files/usr/lib/ddns/update_no-ip_com.sh \ $(INSTALL_BIN) ./files/usr/lib/ddns/update_no-ip_com.sh \
$(1)/usr/lib/ddns $(1)/usr/lib/ddns
$(INSTALL_DIR) $(1)/usr/share/ddns/services $(INSTALL_DIR) $(1)/usr/share/ddns/default
$(INSTALL_DATA) ./files/usr/share/ddns/services/no-ip.com.json \ $(INSTALL_DATA) ./files/usr/share/ddns/default/no-ip.com.json \
$(1)/usr/share/ddns/services $(1)/usr/share/ddns/default
endef endef
define Package/ddns-scripts_no-ip_com/prerm define Package/ddns-scripts-noip/prerm
#!/bin/sh #!/bin/sh
if [ -z "$${IPKG_INSTROOT}" ]; then if [ -z "$${IPKG_INSTROOT}" ]; then
/etc/init.d/ddns stop /etc/init.d/ddns stop
@ -326,17 +334,17 @@ exit 0
endef endef
define Package/ddns-scripts_nsupdate/install define Package/ddns-scripts-nsupdate/install
$(INSTALL_DIR) $(1)/usr/lib/ddns $(INSTALL_DIR) $(1)/usr/lib/ddns
$(INSTALL_BIN) ./files/usr/lib/ddns/update_nsupdate.sh \ $(INSTALL_BIN) ./files/usr/lib/ddns/update_nsupdate.sh \
$(1)/usr/lib/ddns $(1)/usr/lib/ddns
$(INSTALL_DIR) $(1)/usr/share/ddns/services $(INSTALL_DIR) $(1)/usr/share/ddns/default
$(INSTALL_DATA) ./files/usr/share/ddns/services/bind-nsupdate.json \ $(INSTALL_DATA) ./files/usr/share/ddns/default/bind-nsupdate.json \
$(1)/usr/share/ddns/services $(1)/usr/share/ddns/default
endef endef
define Package/ddns-scripts_nsupdate/prerm define Package/ddns-scripts-nsupdate/prerm
#!/bin/sh #!/bin/sh
if [ -z "$${IPKG_INSTROOT}" ]; then if [ -z "$${IPKG_INSTROOT}" ]; then
/etc/init.d/ddns stop /etc/init.d/ddns stop
@ -345,17 +353,17 @@ exit 0
endef endef
define Package/ddns-scripts_route53-v1/install define Package/ddns-scripts-route53/install
$(INSTALL_DIR) $(1)/usr/lib/ddns $(INSTALL_DIR) $(1)/usr/lib/ddns
$(INSTALL_BIN) ./files/usr/lib/ddns/update_route53_v1.sh \ $(INSTALL_BIN) ./files/usr/lib/ddns/update_route53_v1.sh \
$(1)/usr/lib/ddns $(1)/usr/lib/ddns
$(INSTALL_DIR) $(1)/usr/share/ddns/services $(INSTALL_DIR) $(1)/usr/share/ddns/default
$(INSTALL_DATA) ./files/usr/share/ddns/services/route53-v1.json \ $(INSTALL_DATA) ./files/usr/share/ddns/default/route53-v1.json \
$(1)/usr/share/ddns/services $(1)/usr/share/ddns/default
endef endef
define Package/ddns-scripts_route53-v1/prerm define Package/ddns-scripts-route53/prerm
#!/bin/sh #!/bin/sh
if [ -z "$${IPKG_INSTROOT}" ]; then if [ -z "$${IPKG_INSTROOT}" ]; then
/etc/init.d/ddns stop /etc/init.d/ddns stop
@ -364,17 +372,17 @@ exit 0
endef endef
define Package/ddns-scripts_cnkuai_cn/install define Package/ddns-scripts-cnkuai/install
$(INSTALL_DIR) $(1)/usr/lib/ddns $(INSTALL_DIR) $(1)/usr/lib/ddns
$(INSTALL_BIN) ./files/usr/lib/ddns/update_cnkuai_cn.sh \ $(INSTALL_BIN) ./files/usr/lib/ddns/update_cnkuai_cn.sh \
$(1)/usr/lib/ddns $(1)/usr/lib/ddns
$(INSTALL_DIR) $(1)/usr/share/ddns/services $(INSTALL_DIR) $(1)/usr/share/ddns/default
$(INSTALL_DATA) ./files/usr/share/ddns/services/cnkuai.cn.json \ $(INSTALL_DATA) ./files/usr/share/ddns/default/cnkuai.cn.json \
$(1)/usr/share/ddns/services $(1)/usr/share/ddns/default
endef endef
define Package/ddns-scripts_cnkuai_cn/prerm define Package/ddns-scripts-cnkuai/prerm
#!/bin/sh #!/bin/sh
if [ -z "$${IPKG_INSTROOT}" ]; then if [ -z "$${IPKG_INSTROOT}" ]; then
/etc/init.d/ddns stop /etc/init.d/ddns stop
@ -384,12 +392,12 @@ endef
$(eval $(call BuildPackage,ddns-scripts)) $(eval $(call BuildPackage,ddns-scripts))
$(eval $(call BuildPackage,ddns-scripts_service)) $(eval $(call BuildPackage,ddns-scripts-services))
$(eval $(call BuildPackage,ddns-scripts_cloudflare.com-v4)) $(eval $(call BuildPackage,ddns-scripts-cloudflare))
$(eval $(call BuildPackage,ddns-scripts_freedns_42_pl)) $(eval $(call BuildPackage,ddns-scripts-freedns))
$(eval $(call BuildPackage,ddns-scripts_godaddy.com-v1)) $(eval $(call BuildPackage,ddns-scripts-godaddy))
$(eval $(call BuildPackage,ddns-scripts_digitalocean.com-v2)) $(eval $(call BuildPackage,ddns-scripts-digitalocean))
$(eval $(call BuildPackage,ddns-scripts_no-ip_com)) $(eval $(call BuildPackage,ddns-scripts-noip))
$(eval $(call BuildPackage,ddns-scripts_nsupdate)) $(eval $(call BuildPackage,ddns-scripts-nsupdate))
$(eval $(call BuildPackage,ddns-scripts_route53-v1)) $(eval $(call BuildPackage,ddns-scripts-route53))
$(eval $(call BuildPackage,ddns-scripts_cnkuai_cn)) $(eval $(call BuildPackage,ddns-scripts-cnkuai))

View file

@ -20,15 +20,15 @@ usage() {
echo "Usage: $(basename "$0") <command> <action> <service>" echo "Usage: $(basename "$0") <command> <action> <service>"
echo "" echo ""
echo "Supported ddns <command>:" echo "Supported ddns <command>:"
echo " service: Command for ddns service provider" echo " service: Command for custom ddns service providers"
echo "" echo ""
echo "Supported ddns 'service' command <action>:" echo "Supported ddns 'service' command <action>:"
echo " update: Update local ddns service list" echo " update: Update local custom ddns service list"
echo " list-available: List all available service providers" echo " list-available: List all available custom service providers"
echo " list-installed: List all installed service providers" echo " list-installed: List all installed custom service providers"
echo " install <service>: Install service provider" echo " install <service>: Install custom service provider"
echo " remove <service>: Remove service provider" echo " remove <service>: Remove custom service provider"
echo " purge: Remove local ddns serivces" echo " purge: Remove local custom ddns services"
exit "$code" exit "$code"
} }
@ -63,16 +63,16 @@ action_list_available() {
if [ -f "${DDNS_PACKAGE_DIR}/list" ]; then if [ -f "${DDNS_PACKAGE_DIR}/list" ]; then
cat "${DDNS_PACKAGE_DIR}/list" cat "${DDNS_PACKAGE_DIR}/list"
else else
echo "No service file found please download first" echo "No custom service list file found. Please download first"
exit 3 exit 3
fi fi
} }
action_list_installed() { action_list_installed() {
if [ -d "${DDNS_PACKAGE_DIR}/services" ]; then if [ -d "${DDNS_PACKAGE_DIR}/custom" ]; then
ls "${DDNS_PACKAGE_DIR}/services" ls "${DDNS_PACKAGE_DIR}/custom"
else else
echo "No services installed" echo "No custom services installed"
exit 4 exit 4
fi fi
} }
@ -83,25 +83,26 @@ action_install() {
local url cacert local url cacert
config_load ddns config_load ddns
config_get url global 'url' "${URL}${DDNS_PACKAGE_DIR}" config_get url global 'url' "${URL}${DDNS_PACKAGE_DIR}/default"
config_get cacert global 'cacert' "IGNORE" config_get cacert global 'cacert' "IGNORE"
url="${url}/services/${service}.json" url="${url}/${service}.json"
if [ -z "$service" ]; then if [ -z "$service" ]; then
usage "4" "No service specified" usage "4" "No custom service specified"
fi fi
mkdir -p "${DDNS_PACKAGE_DIR}/services" mkdir -p "${DDNS_PACKAGE_DIR}/custom"
if [ "$cacert" = "IGNORE" ]; then if [ "$cacert" = "IGNORE" ]; then
uclient-fetch \ uclient-fetch \
--no-check-certificate \ --no-check-certificate \
"${url}" \ "${url}" \
-O "${DDNS_PACKAGE_DIR}/services/${service}.json" -O "${DDNS_PACKAGE_DIR}/custom/${service}.json"
elif [ -f "$cacert" ]; then elif [ -f "$cacert" ]; then
uclient-fetch \ uclient-fetch \
--ca-certifcate="${cacert}" \ --ca-certifcate="${cacert}" \
"${url}" \ "${url}" \
-O "${DDNS_PACKAGE_DIR}/services/${service}.json" -O "${DDNS_PACKAGE_DIR}/custom/${service}.json"
elif [ -n "$cacert" ]; then elif [ -n "$cacert" ]; then
echo "Certification file not found ($cacert)" echo "Certification file not found ($cacert)"
exit 5 exit 5
@ -111,14 +112,14 @@ action_install() {
action_remove() { action_remove() {
local service="$1" local service="$1"
if [ -z "$service" ]; then if [ -z "$service" ]; then
usage "4" "No service specified" usage "4" "No custom service specified"
fi fi
rm "${DDNS_PACKAGE_DIR}/services/${service}.json" rm "${DDNS_PACKAGE_DIR}/custom/${service}.json"
} }
action_purge() { action_purge() {
rm -rf "${DDNS_PACKAGE_DIR}/services" rm -rf "${DDNS_PACKAGE_DIR}/custom"
rm -rf "${DDNS_PACKAGE_DIR}/list" rm -rf "${DDNS_PACKAGE_DIR}/list"
} }

View file

@ -317,19 +317,18 @@ urlencode() {
} }
# extract url or script for given DDNS Provider from # extract url or script for given DDNS Provider from
# directory /usr/share/ddns/services/ipv4/ for IPv4
# or from
# directory /usr/share/ddns/services/ipv6/ for IPv6
# $1 Name of the provider # $1 Name of the provider
# $1 Name of Variable to store url to # $2 Provider directory
# $2 Name of Variable to store script to # $3 Name of Variable to store url to
# $3 Name of Variable to store service answer to # $4 Name of Variable to store script to
# $5 Name of Variable to store service answer to
get_service_data() { get_service_data() {
local provider="$1" local provider="$1"
shift shift
local dir="$1"
shift
. /usr/share/libubox/jshn.sh . /usr/share/libubox/jshn.sh
local dir="/usr/share/ddns/services"
local name data url answer script local name data url answer script
[ $# -ne 3 ] && write_log 12 "Error calling 'get_service_data()' - wrong number of parameters" [ $# -ne 3 ] && write_log 12 "Error calling 'get_service_data()' - wrong number of parameters"

View file

@ -233,7 +233,11 @@ esac
# otherwise update_url is set inside configuration (custom update url) # otherwise update_url is set inside configuration (custom update url)
# or update_script is set inside configuration (custom update script) # or update_script is set inside configuration (custom update script)
[ -n "$service_name" ] && { [ -n "$service_name" ] && {
get_service_data "$service_name" update_url update_script UPD_ANSWER # Check first if we have a custom service provider with this name
get_service_data "$service_name" "/usr/share/ddns/custom" update_url update_script UPD_ANSWER
if [ "$?" != "0" ]; then
get_service_data "$service_name" "/usr/share/ddns/default" update_url update_script UPD_ANSWER
fi
} }
[ -z "$update_url" -a -z "$update_script" ] && write_log 14 "No update_url found/defined or no update_script found/defined!" [ -z "$update_url" -a -z "$update_script" ] && write_log 14 "No update_url found/defined or no update_script found/defined!"