mirror of
https://git.openwrt.org/feed/packages.git
synced 2024-06-14 03:13:54 +02:00
ddns-scripts: New ddns script for polish service FreeDNS.42.pl
new ddns script for polish service FreeDNS.42.pl where you can host your own domains for free Signed-off-by: Michal Lipka <michal@sysadmin.care> (commits from PR #6150 squashed together)
This commit is contained in:
parent
d76e4050c5
commit
269b4ce218
|
@ -12,7 +12,7 @@ PKG_NAME:=ddns-scripts
|
|||
PKG_VERSION:=2.7.7
|
||||
# Release == build
|
||||
# increase on changes of services files or tld_names.dat
|
||||
PKG_RELEASE:=7
|
||||
PKG_RELEASE:=8
|
||||
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
PKG_MAINTAINER:=Christian Schoenebeck <christian.schoenebeck@gmail.com>
|
||||
|
@ -66,13 +66,23 @@ endef
|
|||
###### *************************************************************************
|
||||
define Package/ddns-scripts_cloudflare.com-v4
|
||||
$(call Package/ddns-scripts/Default)
|
||||
TITLE:=CloudFlare.com API v4 (require cURL)
|
||||
TITLE:=CloudFlare.com API v4 (requires cURL)
|
||||
DEPENDS:=ddns-scripts +curl
|
||||
endef
|
||||
define Package/ddns-scripts_cloudflare.com-v4/description
|
||||
Dynamic DNS Client scripts extension for CloudFlare.com API-v4 (require/install cURL)
|
||||
endef
|
||||
|
||||
###### *************************************************************************
|
||||
define Package/ddns-scripts_freedns_42_pl
|
||||
$(call Package/ddns-scripts/Default)
|
||||
TITLE:=DDNS extension for FreeDNS.42.pl (requires cURL)
|
||||
DEPENDS:=ddns-scripts +curl
|
||||
endef
|
||||
define Package/ddns-scripts_freedns_42_pl/description
|
||||
Dynamic DNS Client scripts extension for freedns.42.pl
|
||||
endef
|
||||
|
||||
###### *************************************************************************
|
||||
define Package/ddns-scripts_godaddy.com-v1
|
||||
$(call Package/ddns-scripts/Default)
|
||||
|
@ -282,6 +292,44 @@ define Package/ddns-scripts_cloudflare.com-v4/prerm
|
|||
exit 0 # suppress errors
|
||||
endef
|
||||
|
||||
###### *************************************************************************
|
||||
define Package/ddns-scripts_freedns_42_pl/preinst
|
||||
#!/bin/sh
|
||||
# if NOT run buildroot then stop service
|
||||
[ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1
|
||||
exit 0 # suppress errors
|
||||
endef
|
||||
define Package/ddns-scripts_freedns_42_pl/install
|
||||
$(INSTALL_DIR) $(1)/etc/uci-defaults
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/files/ddns.defaults $(1)/etc/uci-defaults/ddns_freedns_42_pl
|
||||
$(INSTALL_DIR) $(1)/usr/lib/ddns
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/files/update_freedns_42_pl.sh $(1)/usr/lib/ddns
|
||||
endef
|
||||
define Package/ddns-scripts_freedns_42_pl/postinst
|
||||
#!/bin/sh
|
||||
# remove old services file entries
|
||||
/bin/sed -i '/freedns\.42\.pl/d' $${IPKG_INSTROOT}/etc/ddns/services >/dev/null 2>&1
|
||||
# and create new
|
||||
printf "%s\\t%s\\n" '"freedns.42.pl"' '"update_freedns_42_pl.sh"' >> $${IPKG_INSTROOT}/etc/ddns/services
|
||||
# on real system restart service if enabled
|
||||
[ -z "$${IPKG_INSTROOT}" ] && {
|
||||
[ -x /etc/uci-defaults/ddns_freedns_42_pl ] && \
|
||||
/etc/uci-defaults/ddns_freedns_42_pl && \
|
||||
rm -f /etc/uci-defaults/ddns_freedns_42_pl >/dev/null 2>&1
|
||||
/etc/init.d/ddns enabled && \
|
||||
/etc/init.d/ddns start >/dev/null 2>&1
|
||||
}
|
||||
exit 0 # suppress errors
|
||||
endef
|
||||
define Package/ddns-scripts_freedns_42_pl/prerm
|
||||
#!/bin/sh
|
||||
# if NOT run buildroot then stop service
|
||||
[ -z "$${IPKG_INSTROOT}" ] && /etc/init.d/ddns stop >/dev/null 2>&1
|
||||
# remove services file entries
|
||||
/bin/sed -i '/freedns\.42\.pl/d' $${IPKG_INSTROOT}/etc/ddns/services >/dev/null 2>&1
|
||||
exit 0 # suppress errors
|
||||
endef
|
||||
|
||||
###### *************************************************************************
|
||||
define Package/ddns-scripts_godaddy.com-v1/preinst
|
||||
#!/bin/sh
|
||||
|
@ -447,6 +495,7 @@ endef
|
|||
$(eval $(call BuildPackage,ddns-scripts))
|
||||
$(eval $(call BuildPackage,ddns-scripts_cloudflare))
|
||||
$(eval $(call BuildPackage,ddns-scripts_cloudflare.com-v4))
|
||||
$(eval $(call BuildPackage,ddns-scripts_freedns_42_pl))
|
||||
$(eval $(call BuildPackage,ddns-scripts_godaddy.com-v1))
|
||||
$(eval $(call BuildPackage,ddns-scripts_no-ip_com))
|
||||
$(eval $(call BuildPackage,ddns-scripts_nsupdate))
|
||||
|
|
|
@ -178,6 +178,8 @@ update_config() {
|
|||
$uc_uci set $g_cfgfile.$uc_name.$uc_var="dyn.com";;
|
||||
free\.editdns\.net)
|
||||
$uc_uci set $g_cfgfile.$uc_name.$uc_var="editdns.net";;
|
||||
FreeDNS\.42\.pl)
|
||||
$uc_uci set $g_cfgfile.$uc_name.$uc_var="freedns.42.pl";;
|
||||
domains\.google\.com)
|
||||
$uc_uci set $g_cfgfile.$uc_name.$uc_var="google.com";;
|
||||
loopia\.com)
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
#
|
||||
#.cloudflare.com-v1 !!! Please install additional package "ddns-scripts_cloudflare"
|
||||
#.cloudflare.com-v4 !!! Please install additional package "ddns-scripts_cloudflare.com-v4"
|
||||
#.FreeDNS.42.pl !!! Please install additional package "ddns-scripts_freedns_42_pl"
|
||||
#.godaddy.com-v1 !!! Please install additional package "ddns-scripts_godaddy.com-v1"
|
||||
#.no-ip.com / noip.com !!! Please install additional package "ddns-scripts_no-ip_com"
|
||||
#.route53-v1 !!! Please install additional package "ddns-scripts_route53-v1"
|
||||
|
|
17
net/ddns-scripts/files/update_freedns_42_pl.sh
Executable file
17
net/ddns-scripts/files/update_freedns_42_pl.sh
Executable file
|
@ -0,0 +1,17 @@
|
|||
#.Distributed under the terms of the GNU General Public License (GPL) version 2.0
|
||||
#.2018 Michal Lipka <michal at sysadmin dot care>
|
||||
local __DUMMY
|
||||
local __URL="https://freedns.42.pl/xmlrpc.php"
|
||||
[ -z "$username" ] && write_log 14 "Service section not configured correctly! Missing 'username'"
|
||||
[ -z "$password" ] && write_log 14 "Service section not configured correctly! Missing 'password'"
|
||||
[ $ip_dynamic -eq 1 ] && __IP='\<dynamic\>'
|
||||
PROG="$(which curl) -sk"
|
||||
write_log 7 "sending update to freedns.42.pl with ip $__IP"
|
||||
XMLDATA="<?xml version='1.0'?><methodCall><methodName>xname.updateArecord</methodName><params><param><value><struct><member><name>name</name><value><string>[RECORDNAME]</string></value></member><member><name>zone</name><value><string>[ZONENAME]</string></value></member><member><name>oldaddress</name><value><string>*</string></value></member><member><name>updatereverse</name><value><string>0</string></value></member><member><name>user</name><value><string>[USERNAME]</string></value></member><member><name>ttl</name><value><string>600</string></value></member><member><name>newaddress</name><value><string>[IP]</string></value></member><member><name>password</name><value><string>[PASSWORD]</string></value></member></struct></value></param></params></methodCall>"
|
||||
XMLDATA=$(echo $XMLDATA | sed -e "s#\[USERNAME\]#$URL_USER#g" -e "s#\[PASSWORD\]#$URL_PASS#g" \
|
||||
-e "s#\[ZONENAME\]#$zone#g" -e "s#\[RECORDNAME\]#$record#g" -e "s#\[IP\]#$__IP#g")
|
||||
$PROG -d "$XMLDATA" -o $DATFILE $__URL || return 1
|
||||
write_log 7 "'freedns.42.pl' answered:\n$(cat $DATFILE)"
|
||||
grep "<fault>" $DATFILE > /dev/null 2>&1 && return 1
|
||||
grep '<name>serial</name>' $DATFILE >/dev/null 2>&1
|
||||
return $?
|
Loading…
Reference in New Issue
Block a user